Karolin Varner
b1a7d94295
feat: Support for custom osk (output key) domain separators in Rosenpass app
...
This allows for custom protocol extensions with custom domain
separators to be used without modifying the Rosenpass source code
2025-06-25 19:48:29 +02:00
Jan Winkelmann (keks)
91707cc430
Address feedback
2025-06-23 16:39:22 +02:00
Jan Winkelmann (keks)
5097d9fce1
Add benchmarking for cryptographic primitives and protocol performance
...
This commit introduces two kinds of benchmarks:
1. Cryptographic Primitives. Measures the performance of all available
implementations of cryptographic algorithms using traditional
benchmarking. Uses criterion.
2. Protocol Runs. Measures the time each step in the protocol takes.
Measured using a tracing-based approach.
The benchmarks are run on CI and an interactive visual overview is
written to the gh-pages branch. If a benchmark takes more than twice the
time than the reference commit (for PR: the main branch), the action
fails.
2025-06-23 16:39:22 +02:00
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
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
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