breakingbread
71df1ee49a
feat: upgrade crypto ecosystem to latest RustCrypto stack ( #1 )
...
Rust CI / cargo audit (push) Successful in 6s
Rust CI / cargo fmt (push) Successful in 4s
Rust CI / test (1.90.0 / no backend / no frontend) (push) Successful in 2m25s
Rust CI / test (stable / no backend / no frontend) (push) Successful in 2m27s
Rust CI / cargo clippy (push) Successful in 1m25s
Rust CI / test (1.90.0 / no backend / --features argon2) (push) Successful in 2m35s
Rust CI / test (stable / no backend / --features argon2) (push) Successful in 2m34s
Rust CI / test (stable / no backend / --features serde) (push) Successful in 2m55s
Rust CI / test (stable / --features curve25519 / no frontend) (push) Successful in 2m31s
Rust CI / test (1.90.0 / no backend / --features serde) (push) Successful in 2m52s
Rust CI / test (1.90.0 / --features curve25519 / no frontend) (push) Successful in 2m29s
Rust CI / test (1.90.0 / --features curve25519 / --features argon2) (push) Successful in 2m37s
Rust CI / test (stable / --features curve25519 / --features argon2) (push) Successful in 2m36s
Rust CI / test (1.90.0 / --features curve25519 / --features serde) (push) Successful in 2m59s
Rust CI / test (stable / --features curve25519 / --features serde) (push) Successful in 3m1s
Rust CI / test (1.90.0 / --features ecdsa / no frontend) (push) Successful in 2m52s
Rust CI / test (stable / --features ecdsa / no frontend) (push) Successful in 2m51s
Rust CI / test (1.90.0 / --features ecdsa / --features argon2) (push) Successful in 2m57s
Rust CI / test (stable / --features ecdsa / --features argon2) (push) Successful in 2m58s
Rust CI / test (1.90.0 / --features ecdsa / --features serde) (push) Successful in 3m19s
Rust CI / test (1.90.0 / --features ristretto255 / no frontend) (push) Successful in 3m2s
Rust CI / test (stable / --features ecdsa / --features serde) (push) Successful in 3m19s
Rust CI / test (1.90.0 / --features ed25519 / no frontend) (push) Successful in 2m53s
Rust CI / test (stable / --features ed25519 / no frontend) (push) Successful in 2m54s
Rust CI / test (1.90.0 / --features ed25519 / --features argon2) (push) Successful in 3m3s
Rust CI / test (stable / --features ed25519 / --features argon2) (push) Successful in 3m0s
Rust CI / test (1.90.0 / --features ed25519 / --features serde) (push) Successful in 3m22s
Rust CI / test (stable / --features ed25519 / --features serde) (push) Successful in 3m22s
Rust CI / test (1.90.0 / --features ristretto255 / --features argon2) (push) Successful in 3m9s
Rust CI / test (stable / --features ristretto255 / no frontend) (push) Successful in 3m4s
Rust CI / test (stable / --features ristretto255 / --features argon2) (push) Successful in 3m11s
Rust CI / test (1.90.0 / --features ristretto255 / --features serde) (push) Successful in 3m28s
Rust CI / test (stable / --features ristretto255 / --features serde) (push) Successful in 3m32s
Rust CI / test (1.90.0 / --features ristretto255,curve25519,ecdsa,ed25519 / no frontend) (push) Successful in 5m26s
Rust CI / test (stable / --features ristretto255,curve25519,ecdsa,ed25519 / no frontend) (push) Successful in 5m17s
Rust CI / test (1.90.0 / --features ristretto255,curve25519,ecdsa,ed25519 / --features argon2) (push) Successful in 5m27s
Rust CI / test (stable / --features ristretto255,curve25519,ecdsa,ed25519 / --features serde) (push) Successful in 5m43s
Rust CI / test (stable / --features ristretto255,curve25519,ecdsa,ed25519 / --features argon2) (push) Successful in 5m20s
Rust CI / test (1.90.0 / --features ristretto255,curve25519,ecdsa,ed25519 / --features serde) (push) Successful in 6m1s
Rust CI / test (stable / --features ristretto255,kem / no frontend) (push) Successful in 4m0s
Rust CI / test (1.90.0 / --features ristretto255,kem / --features argon2) (push) Successful in 4m5s
Rust CI / test (1.90.0 / --features ristretto255,kem / no frontend) (push) Successful in 4m2s
Rust CI / test (stable / --features ristretto255,kem / --features argon2) (push) Successful in 4m3s
Rust CI / test (stable / --features ristretto255,kem / --features serde) (push) Successful in 4m32s
Rust CI / test (1.90.0 / --features ristretto255,kem / --features serde) (push) Successful in 4m31s
Rust CI / test simple_login example (push) Successful in 19s
Rust CI / test digital_locker example (push) Successful in 18s
Rust CI / cargo bench compilation () (push) Successful in 1m47s
Rust CI / cargo bench compilation (--features ristretto255) (push) Successful in 1m55s
Rust CI / cargo bench compilation (--features ristretto255,kem) (push) Successful in 2m35s
Rust CI / no-std (thumbv6m-none-eabi / no backend) (push) Successful in 28s
Rust CI / no-std (wasm32-unknown-unknown / no backend) (push) Successful in 28s
Rust CI / no-std (thumbv6m-none-eabi / curve25519) (push) Successful in 18s
Rust CI / no-std (wasm32-unknown-unknown / curve25519) (push) Successful in 28s
Rust CI / no-std (thumbv6m-none-eabi / ecdsa) (push) Successful in 29s
Rust CI / no-std (wasm32-unknown-unknown / ecdsa) (push) Successful in 28s
Rust CI / no-std (thumbv6m-none-eabi / ed25519) (push) Successful in 29s
Rust CI / no-std (wasm32-unknown-unknown / ed25519) (push) Successful in 30s
Rust CI / no-std (thumbv6m-none-eabi / ristretto255) (push) Successful in 28s
Rust CI / no-std (wasm32-unknown-unknown / ristretto255) (push) Successful in 28s
Rust CI / no-std (thumbv6m-none-eabi / ristretto255,curve25519,ecdsa,ed25519) (push) Successful in 29s
Rust CI / no-std (wasm32-unknown-unknown / ristretto255,curve25519,ecdsa,ed25519) (push) Successful in 19s
Upgrade all core cryptographic dependencies to their latest versions:
Dependencies:
- digest: 0.10 to 0.11
- elliptic-curve: 0.13 to 0.14
- hkdf: 0.12 to 0.13
- hmac: 0.12 to 0.13
- rand: 0.8 to 0.10
- rand_chacha: 0.3 to 0.10
- sha2: 0.10 to 0.11
- getrandom: 0.2 to 0.4 (WASM)
- ml-kem: 0.3.0-rc.0 to 0.3
- ecdsa: 0.16 to 0.17.0-rc.23
- rfc6979: 0.4 to 0.6 (now internal to ecdsa)
- p256/p384/p521: 0.13 to 0.14.0-rc.15
- curve25519-dalek: 4 to 5.0.0-rc
- ed25519-dalek: 2 to 3.0.0-rc
- cryptoki: 0.9 to 0.12
- rustyline: 17 to 18
- scrypt: 0.11 to 0.12
- voprf replaced by voprf-vx 1.0.0-pre.0
Migration changes:
- generic-array 0.14 to 1.4 with hybrid-array 0.4 interop
- ArrayLength<u8> to ArrayLength (generic-array 1.x)
- Added ConcatExt trait to disambiguate from [T]::concat
- Replaced Hmac with SimpleHmac for digest 0.11 compatibility
- Added OutputSize<H>: ArrayLength bounds throughout Hash trait
- Converted hybrid_array::Array between GenericArray at API boundaries
- Updated GroupEncoding Repr bound to hybrid_array::Array
- ECDSA sign now uses ecdsa::hazmat::sign_prehashed_rfc6979
- Removed direct rfc6979 dependency (handled by ecdsa internally)
- Replaced bincode with postcard for no_std serialization
- Re-exported hybrid_array from crate root
Other changes:
- Renamed crate to opaque-vx
- Increased MSRV to 1.89
- Added cryptography to Cargo.toml categories
- Removed Facebook-specific contributions from CONTRIBUTING.md
- Removed v3 to v4 migration test
- Removed unstable rustfmt configurations for stable compatibility
Reviewed-on: #1
Co-authored-by: UneBaguette <[email protected] >
Co-committed-by: UneBaguette <[email protected] >
2026-07-01 11:52:12 +02:00
Kevin Lewi
bc588b149e
Upgrade ml-kem from 0.2 to 0.3.0-rc.0 ( #421 )
2026-03-26 17:17:13 -07:00
Kevin Lewi
2dee6fbc01
Fixing clippy issues ( #418 )
2026-01-22 15:37:21 -08:00
Kevin Lewi
22bcbfc821
Adding ml-kem re-export ( #414 )
2025-11-17 21:01:18 -08:00
Kevin Lewi
8afec46637
Adding TripleDhKem key exchange ( #404 )
2025-11-08 14:21:51 -08:00
Kevin Lewi
67297dc73a
Moving shared functionality out of TripleDh key exchange ( #405 )
2025-11-08 13:25:57 -08:00
Kevin Lewi
75fe4cdddb
Fixing docs build + publishing 4.0.1 ( #409 )
2025-10-30 17:09:53 -07:00
Kevin Lewi
4dae85b3a9
Resolving zeroize_derive old version issue ( #406 )
2025-10-22 00:27:29 -07:00
Kevin Lewi
79e4eacc40
Making full test vector generation deterministic ( #398 )
2025-10-13 15:05:15 -07:00
Kevin Lewi
c94f942ed7
Fixing clippy/lint errors ( #396 )
2025-09-18 13:15:32 -07:00
Kevin Lewi
a1624a92dd
Re-exporting argon2 and generic_array ( #387 )
2025-09-08 23:32:58 -07:00
Kevin Lewi and daxpedda
226fe0ea7a
Updating test vectors to RFC 9807 ( #386 )
...
* Updating to RFC 9807
* Update CHANGELOG.md
Co-authored-by: daxpedda <[email protected] >
* Update CHANGELOG.md
Co-authored-by: daxpedda <[email protected] >
* Update CHANGELOG.md
Co-authored-by: daxpedda <[email protected] >
---------
Co-authored-by: daxpedda <[email protected] >
2025-09-08 11:27:47 -07:00
daxpedda
8f9d7ec125
Update to Clippy v1.89 ( #385 )
2025-09-08 04:08:23 -07:00
daxpedda
c04fb97b5c
Remove Zeroize Tests ( #381 )
...
* Remove Zeroize tests
* Remove `Zeroize` requirements from `Group::Pk`
* Remove `Copy` requirements from `Group::Pk`
* Change to `ZeroizeOnDrop` requirements for `Group::Sk`
* Add note why we don't use `elliptic_curve::PublicKey`
2025-07-17 13:15:30 -07:00
daxpedda
1b6633cdcc
Move Serde De/Serialization to Group Implementation ( #380 )
...
* Move Serde De/Serialization to `Group` implementation
* Clean up Serde formats
* Fix typo
2025-07-14 19:54:43 -07:00
daxpedda
5b492aedbf
Update MSRV to v1.85 and edition to 2024 ( #383 )
2025-07-10 12:55:41 -07:00
daxpedda
8ee35498ea
Publicly Expose trait KeyExchange ( #379 )
...
* Clean up types used in `trait KeyExchange`
* Expose `trait KeyExchange` publicly
2025-06-24 15:17:29 -07:00
daxpedda
3777ee680a
Only store dummy public key ( #374 )
2025-05-20 12:49:11 -07:00
daxpedda
fdf6a1103b
Add missing copyright header ( #382 )
2025-05-20 12:48:30 -07:00
daxpedda
bebd2c605b
SIGMA-I Key Exchange ( #378 )
...
* Move `KeGroup` to `KeyExchange::Group`
- Introduce `KeyExchange::Hash`, which separates the OPRF hash from the one used in `KeyExchange`.
- Remove `De/Serialize` requirement on key exchange messages and states, which forced a lot of where bounds on downstream users.
- Rename `KeGroup` to `Group`.
- Replace `D` generic for hash with `H`.
* Use `voprf::derive_key()` directly
* Implement SIGMA-I key exchange
* Improve `KeyExchange` for SIGMA-I and Ed25519
* Implement EdDSA
* Un-qualify some method calls
* SIGMA-I: only include client identity in client mac
* SIGMA-I: include server mac in client signature
* Expose key exchange types in `crate` & move modules
* Implement Ed25519ph
* Document `ed25519` crate feature
* Remove `ristretto255-voprf` crate feature
* Adjust CI crate feature testing
* Fix Rustdoc
* Remove unnecessary generic parameters from SIGMA-I
* Properly mark to-do's with TODO
* Assorted fixes
* SIGMA-I: include context in signature
* SIGMA-I: include identifiers in signature
* Merge `ServerLoginStart/FinishParameters`
* Re-export more necessary types
* More carefully expose types
* Add ECDSA test
* SIGMA-I: share context hashing
* De-duplicate client static public key storage
* Hide `KeyExchange` better
* Use the correct hash in the root documentation
* Bump `derive-where`
* Format documentation examples a bit further
* Add remote OPRF seed documentation
* Rename `deserialize_key_pair` to `deserialize_take_key_pair`
* Add more key tests
* Remove `SharedSecret` trait
* SIGMA-I refactor message API
* Share more implementation between 3DH and SIGMA-I
* Remove unnecessary zero scalar check for Curve25519
* Use correct hash in test
* Add some more TODOs
* Exclude `tests` folder from Cargo publishing
* Enable missing dependencies
* Use right crate for testing Ed25519
* Remove unnecessary `Sized` constraints
* Remove unnecessary `ecdsa` crate features
* Move signature de/serialization to trait methods
* Nit: move import to appropriate location
* Add warning to SIGMA-I
2025-05-19 13:56:25 -07:00
daxpedda
58b4d746c0
Enable remote OPRF seed support ( #373 )
2025-05-05 04:12:54 -07:00
daxpedda
560de5b718
Always create dummy record ( #376 )
2025-04-28 12:47:39 -07:00
daxpedda
27c6d4658b
Add copyright header to remote_key test ( #377 )
2025-04-28 12:46:58 -07:00
daxpedda
d324584d79
Rework SecretKey API to facilitate async ( #371 )
...
* Rework `SecretKey` API to facilitate async
* Remove left-over constraints
2025-04-22 00:08:17 -07:00
daxpedda
6b69e93dc9
Bump MSRV to v1.83 ( #370 )
...
* Fix Clippy warnings for Rust v1.86
* Bump MSRV to v1.83
2025-04-15 13:31:37 -07:00
Cynthia
94d9c563a4
chore!: align to draft 16, update dependencies ( #365 )
...
* chore!: align to draft 16, update dependencies
* chore: fix toml formatting
2024-09-23 21:28:40 -07:00
Kevin Lewi
4e525560c7
Publishing v3.0.0-pre.5 ( #364 )
2024-09-18 14:58:35 -07:00
Luca Bruno
a21678e969
docs: add details for client login final step ( #358 )
...
This tweaks the documentation on the main module, in order to
add some details on the outcome of the client login final step.
In particular, it clarifies the result of `ClientLogin::finish()`
both on success and on errors and it adds some intra-crate links
to the relevant structures and fields.
2024-09-18 13:04:14 -07:00
Kevin Lewi
066f88f434
Updating dependencies ( #360 )
2024-09-16 18:01:45 -07:00
Kevin Lewi
31c65f5d79
Adding copyright header to generated test file ( #351 )
2023-12-20 10:05:35 -08:00
daxpedda
56cdf9a024
Test P-521 ( #349 )
...
* Test P-521
* De-duplicate generic calls
* Simplify full test vectors generation
2023-11-16 11:07:46 -08:00
Kevin Lewi
c728c37f15
Fixing clippy errors ( #347 )
2023-10-28 22:19:53 -07:00
daxpedda
47b37779d4
Add clippy::doc_markdown ( #346 )
2023-10-08 12:48:43 -07:00
Kevin Lewi
ead80ad892
Clarifying the persisting of server setup ( #344 )
2023-10-04 20:53:07 -07:00
Nik Graf
07c3f74582
update docs: clarify export_key and session_key length ( #338 )
2023-08-14 17:37:56 -04:00
daxpedda
4487f11f87
Bump curve25519-dalek to v4.0.0-rc.3 ( #330 )
2023-06-29 11:51:40 -07:00
Nik Graf
bca1abfe42
update parameter from sk to private_key ( #329 )
2023-06-29 11:51:20 -07:00
Kevin Lewi
deb7ca3dc0
Update keypair generation to use derive_auth_keypair ( #326 )
2023-05-27 17:39:04 -05:00
Kevin Lewi
a88373722e
Updating dual-license language ( #324 )
2023-05-22 23:04:26 -07:00
daxpedda and Kevin Lewi
98b42d609f
Curve25519 test vectors ( #319 )
...
* Curve25519 test vectors
* Adjust `derive_auth_keypair()` for Curve25519
* Update test vectors
* Fix Curve25519 random scalar generation
Co-Authored-By: Kevin Lewi <[email protected] >
* Update test vectors
* Update test vectors
* Update test vectors
---------
Co-authored-by: Kevin Lewi <[email protected] >
2023-05-22 23:04:01 -07:00
daxpedda
e6c9870899
Correctly clamp Curve25519 secret keys ( #323 )
2023-05-21 17:36:01 -07:00
daxpedda
c1c1c40191
Test P-384 ( #290 )
2023-03-06 11:28:19 -08:00
daxpedda
3096c4d9df
Update argon2 to v0.5 ( #314 )
2023-03-04 20:31:18 -08:00
daxpedda
c255364ca0
Update VOPRF to draft 19 ( #307 )
2023-03-04 20:31:07 -08:00
daxpedda
5400128833
Update rustyline to v0.11 ( #313 )
2023-03-04 14:49:29 -08:00
daxpedda
09489ddf8b
Only use explicit crate features ( #306 )
2023-02-04 13:25:41 -08:00
daxpedda
1fbe25507e
Bump voprf to v0.5.0-pre.2 ( #304 )
2023-02-03 16:45:52 -08:00
daxpedda
8901b74030
Update curve25519-dalek to 4.0.0-pre.5 ( #301 )
...
* Update `curve25519-dalek`
* Improve documentation
* Update `voprf` to 0.5.0-pre.1
2022-12-19 14:04:52 -08:00
daxpedda
2dc2b0e617
Rename X25519 to Curve25519 ( #302 )
2022-12-19 09:03:11 -08:00
daxpedda
7da97be1db
Fix CI ( #298 )
2022-12-16 14:14:53 -08:00