Commit Graph

62 Commits

Author SHA1 Message Date
David Niehues
b47d3a9deb style(ciphers): fix formatting 2025-04-05 17:31:32 +02:00
Jan Winkelmann (keks)
954162b61f cleanup 2025-04-03 17:04:00 +02:00
David Niehues
8bb54b9cca doc(ciphers): correct formatting 2025-04-03 16:55:03 +02:00
David Niehues
ebf6403ea7 doc(ciphers + rosenpass): improve the documentation 2025-04-03 16:55:03 +02:00
David Niehues
62d408eade dev(ciphers): implement the Display trait for the KeyedHash that allows to choose a hash. 2025-04-03 16:55:03 +02:00
David Niehues
b21a95dbbd doc(rp+rosenpass+ciphers+cipher-traits): Apply cargo fmt formatting 2025-04-03 16:55:03 +02:00
David Niehues
33901d598a test(ciphers): Adapt SHAKE256 tests to longer including the output length. 2025-04-03 16:55:03 +02:00
David Niehues
6f71767529 dev(ciphers): remove keyed hash module 2025-04-03 16:55:03 +02:00
Jan Winkelmann (keks)
38f371e3d7 Fix examples in Doc-Comments 2025-04-03 16:15:03 +02:00
Jan Winkelmann (keks)
2dba9205e7 Address Feedback 2025-04-03 16:14:55 +02:00
Jan Winkelmann (keks)
b16619b1d3 fix doc example tests 2025-04-03 16:14:51 +02:00
Jan Winkelmann (keks)
576ad5f6d0 respect experiment_libcrux_blake2 feature flag 2025-04-03 16:14:47 +02:00
Jan Winkelmann (keks)
6494518460 add fine-grained features 2025-04-03 16:14:19 +02:00
Jan Winkelmann (keks)
185e92108e add blake2 from libcrux 2025-04-03 16:14:19 +02:00
Jan Winkelmann (keks)
253243a8c8 add kyber512 from libcrux 2025-04-03 16:14:19 +02:00
Jan Winkelmann (keks)
075d9ffff3 update libcrux chachapoly to use libcrux-chacha20poly1305 2025-04-03 16:14:19 +02:00
Jan Winkelmann (keks)
01a1408044 address feedback 2025-04-03 16:12:44 +02:00
Jan Winkelmann (keks)
b84e0beae8 introduce traits for all the primitives and algorithms. A bit more cleanup. 2025-04-03 16:12:44 +02:00
Jan Winkelmann (keks)
a1f41953b7 Reorganize the ciphers crate 2025-04-03 16:12:23 +02:00
Jan Winkelmann (keks)
32ae8f7051 Rename hash selection enum to KeyedHash, restructure traits 2025-04-03 16:11:55 +02:00
Jan Winkelmann (keks)
b94ddd980d remove superfluous associated types 2025-04-03 16:11:55 +02:00
Jan Winkelmann (keks)
44e46895aa fmt 2025-04-03 15:57:43 +02:00
David Niehues
6d25c13fd1 dev(ciphers): make the libcrux implementation of chachapoly return an error instead of panicking when decryption fails. This makes tests decryptions possible. 2025-03-19 11:29:11 +01:00
David Niehues
30e158f594 dev(ciphers): change HashDomain and related structures to use EitherShakeOrBlake. Docu pending 2025-03-19 11:29:11 +01:00
David Niehues
cf74584f51 tests(ciphers): add rudimentary tests for the shake256 implementation 2025-03-19 11:29:11 +01:00
David Niehues
793cfd227f dev(ciphers): provide EitherShakeOrBlake for 32 bytes KEY_LEN and 32 bytes of HASH_LEN based on SHAKE256 and the incorrect blake2b-hmac 2025-03-19 11:29:11 +01:00
David Niehues
54c8e91db4 doc(ciphers): fix typo in comment 2025-03-19 11:29:11 +01:00
David Niehues
1b0179e751 dev(ciphers): provide implementations of KeyedHash and KeyedHashInstance for the incorrect hmac for blake2b. 2025-03-19 11:29:11 +01:00
David Niehues
760ecdc457 dev(ciphers): add EitherHash enum and thus the functionality for choosing a hash function at runtime 2025-03-19 11:29:11 +01:00
David Niehues
6a9bbddde3 dev(ciphers): move blake2b.rs and incorrect_hmac_blake2b.rs to dedicated hash_functions directory 2025-03-19 11:29:11 +01:00
David Niehues
530f81b9d5 dev(ciphers): use InferredHash to provide KeyedHashInstance for SHAKE256 2025-03-19 11:29:11 +01:00
David Niehues
b96df1588c dev(ciphers): add InferredKeyedHash to instantiate KeyedHashFunctions generically 2025-03-19 11:29:11 +01:00
David Niehues
5a2555a327 dev(ciphers): add implementation of shake256 2025-03-19 11:29:11 +01:00
David Niehues
ac3f21c4bd dev: add sha3 dependency 2025-03-19 11:29:11 +01:00
David Niehues
61b8b28e86 style(ciphers): improve style in doc-tests around using the the ?-operator in the ciphers crate 2024-12-17 11:57:54 +01:00
David Niehues
a6bac74d48 docs(ciphers+cipher-traits):fix most broken doc-links in the ciphers and cipher-traits crates.
Some links in the documentation of the ciphers and cipher-traits were broken or linked to private fields.
This PR fixes most of these occasions and some more warnings in cargo doc.

The reaming issues are links to chacha20poly1305_ietf, that are broken because the feature experiment_libcrux corresponding feature is enabled. Analogously, disabling the feature would lead to broken links to chacha20poly1305_ietf_libcrux.
2024-12-16 16:33:18 +01:00
David Niehues
a789f801ab fix formatting 2024-12-10 12:35:22 +01:00
David Niehues
be06f8adec add tests and documentation for hash_domain.rs 2024-12-10 12:35:22 +01:00
David Niehues
03d3c70e2e document lib.rs and mod.rs, and format documentation for incorrect_hmac_blake2b.rs 2024-12-10 12:35:22 +01:00
David Niehues
94ba99d89b add documentation for hash_domain.rs 2024-12-10 12:35:22 +01:00
David Niehues
667a994253 add documentation for blake2b hmac 2024-12-10 12:35:22 +01:00
David Niehues
9561ea4a47 add documentation for xchacha20polxy1305_ietf.rs and improve documentaion for other implementations for chacha20poly1305 2024-12-10 12:35:22 +01:00
David Niehues
fb641f8568 document chacha20poly1305 as implemented in RustCrypto 2024-12-10 12:35:22 +01:00
David Niehues
6e16956bc7 document chacha20poly1305 as implemented in libcrux 2024-12-10 12:35:22 +01:00
David Niehues
eeb738b649 add documentation and doc-tests for blake2b.rs 2024-12-10 12:35:21 +01:00
Karolin Varner
b483612cb7 feat(protocol): Hash-based retransmission mechanism
See the updated whitepaper for details.

Fixes: #331
2024-12-07 12:36:40 +01:00
Paul Spooren
b0706354d3 chore: Format all Cargo.toml files
Signed-off-by: Paul Spooren <mail@aparcar.org>
2024-10-01 11:22:45 +01:00
Karolin Varner
37f7b3e4e9 fix: Consistently use feature flag experiment_libcrux
Before this, some parts of the code used an incorrect feature flag
name, preventing libcrux from being used.
2024-08-03 14:03:31 +02:00
Karolin Varner
99ac3c0902 feat: Experimental support for encryption using libcrux
Libcrux is a library for formally verified implementations of
cryptographic primitives. It uses multiple back ends; one of which is
libjade. A cryptographic library written in the jasmin assembly
language for high assurance cryptographic implementations.

To use compile with the experiment_libcrux feature enabled:

    cargo build --features experiment_libcrux
2024-07-03 21:46:40 +02:00
Emil Engler
bd6a6e5dce ciphers: Remove needless borrow for nonce array 2024-04-25 11:08:54 +02:00