daxpedda and GitHub
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 and GitHub
58b4d746c0
Enable remote OPRF seed support ( #373 )
2025-05-05 04:12:54 -07:00
daxpedda and GitHub
b16cf8ce05
Enable curve25519-dalek/serde ( #375 )
2025-04-28 12:48:06 -07:00
daxpedda and GitHub
560de5b718
Always create dummy record ( #376 )
2025-04-28 12:47:39 -07:00
daxpedda and GitHub
27c6d4658b
Add copyright header to remote_key test ( #377 )
2025-04-28 12:46:58 -07:00
daxpedda and GitHub
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 and GitHub
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
daxpedda and GitHub
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
daxpedda and GitHub
47b37779d4
Add clippy::doc_markdown ( #346 )
2023-10-08 12:48:43 -07:00
daxpedda and GitHub
4487f11f87
Bump curve25519-dalek to v4.0.0-rc.3 ( #330 )
2023-06-29 11:51:40 -07:00
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 and GitHub
e6c9870899
Correctly clamp Curve25519 secret keys ( #323 )
2023-05-21 17:36:01 -07:00
daxpedda and GitHub
7b205b73eb
Bump voprf to v0.5.0-pre.4 ( #322 )
2023-05-21 02:06:34 -07:00
daxpedda and GitHub
c1c1c40191
Test P-384 ( #290 )
2023-03-06 11:28:19 -08:00
daxpedda and GitHub
3096c4d9df
Update argon2 to v0.5 ( #314 )
2023-03-04 20:31:18 -08:00
daxpedda and GitHub
c255364ca0
Update VOPRF to draft 19 ( #307 )
2023-03-04 20:31:07 -08:00
daxpedda and GitHub
5400128833
Update rustyline to v0.11 ( #313 )
2023-03-04 14:49:29 -08:00
daxpedda and GitHub
09489ddf8b
Only use explicit crate features ( #306 )
2023-02-04 13:25:41 -08:00
daxpedda and GitHub
1fbe25507e
Bump voprf to v0.5.0-pre.2 ( #304 )
2023-02-03 16:45:52 -08:00
daxpedda and GitHub
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 and GitHub
2dc2b0e617
Rename X25519 to Curve25519 ( #302 )
2022-12-19 09:03:11 -08:00
daxpedda and GitHub
7da97be1db
Fix CI ( #298 )
2022-12-16 14:14:53 -08:00
daxpedda and GitHub
a0cab10663
Update dependencies ( #288 )
...
* Fix Clippy
* Update dependencies
2022-12-10 21:30:05 -08:00
daxpedda and GitHub
cdb5222235
Add Dependabot ( #287 )
...
* Fix Clippy
* Add Dependabot
2022-12-10 14:23:53 -08:00
daxpedda and GitHub
d2bdcb391e
Fix Clippy ( #289 )
2022-12-10 14:21:56 -08:00
daxpedda and GitHub
384207acbb
General Improvements ( #268 )
...
* Move `elliptic-curve` implementation to points to allow `Zeroize`
* Simplify `Ristretto255::random_scalar` implementation
* Fix `Ristretto255` deserialization
* Remove unnecessary check in `Ristretto255::random_scalar`
* Base `X25519` implementation on `curve25519-dalek`
* Constrain public and secret key to `Copy`
* Replace manual `ZeroizeOnDrop` implementation with `derive`
* Update dependencies
* Add `warn(unused_crate_dependencies)`
* Sync crate feature naming with `voprf`
* Remove unnecessary dependency crate features
* Never produce a zero scalar
* Rename `OprfGroup` to `OprfCs`
* Rename `TripleDH` to `TripleDh`
* Remove `slow-hash` crate feature
* Rename `NoOpHash` to `Identity`
* Rename `SlowHash` to `Ksf`
* Move `KeyExchange` type definitions down
* Deserialize secret and public keys from slices
* Remove `PrivateKey::from_bytes`
* Rename `From/ToBytes` to `De/Serialize`
* Re-export `serde_` as `serde`
* Custom `De/Serialize` implementation for keys
* Remove custom `De/Serialize` implementation
* Run Taplo v0.6
2022-04-01 16:10:00 -07:00
daxpedda and GitHub
b2f10858e0
Group revamp ( #261 )
...
* Revamp `KeGroup` trait
* Update dependencies
* Fix `hash_to_scalar` using `OprfGroup` instead of `KeGroup`
* Relax constraints on associated types of `KeGroup`
* Improve `KeGroup` implementation on `Curve`
* Improve `KeyExchange` trait
* Fix new Clippy 1.59 warnings
2022-02-24 22:13:22 -08:00
daxpedda and GitHub
47a26a19c5
Format ( #257 )
...
* Add Rustfmt
* Add Taplo
2022-01-05 21:19:02 -08:00
daxpedda and GitHub
36f0a55518
Voprf update ( #255 )
...
* Update to latest voprf
* Upgrade to Rust edition 2021
* Fix Clippy
* Remove all allocations
* Remove unnecessary `allow(type_alias_bounds)`
* Make all serialization infallible
* Remove self-dependency
* Update rustyline
2022-01-05 15:10:57 -08:00
daxpedda and GitHub
82e4436d39
General improvements ( #250 )
...
* Remove unnecessary constraints on hash
* Remove unnecessary `Result` on `KeyPair::generate_random`
* Fix de-serialization issue on `Ke1State`
* Fix rustfmt
* Remove allocations in `envelope`
* Run Clippy for tests and rustdoc lints too
* Fix `Debug` implementation
* Fix missing constraints on `ClientRegistration`
* Fix de-serialization
* Pin temporary dependency
* Update dependencies
* Replace macro with derive-where
* Remove unnecessary installation of Rust components
* Improve macro naming
* Implement `Copy`, `Debug`, `Ord` and `PartialOrd` for high-level items
* Add `rust-version` field to `Cargo.toml`
* Remove unnecessary allocations
* Fix MSRV
* Fix no_std
* Remove unnecessary allocations
* Remove unnecessary allocations
* Not importing items from voprf helps readability
* Fix rustdoc
* Remove unnecessary allocations
* Remove unnecessary allocations
* Replace `Vec` from `diffie_hellman` with `GenericArray`
* Remove unnecessary allocations
* Remove unnecessary allocations
* Remove `cfg(feature = bench)` guard for `missing_docs`
* Fix documentation
* Remove all remaining allocations from `KeyExchange`
* Improve type-safety
* Remove all remaining allocations in `keypair`
* Remove last remaining allocations except `NonVerifiableClient` input
* Remove base64 encoding in Serde implementation
* Remove unnecessary Serde `alloc` feature
* Make curve25519-dalek optional
* Rename `serialize` crate feature to `serde`
* Switch `KeGroup` implementations to higher-level libraries
- Fixes missing clamping in X25519
- X25519 is now a separate crate feature
* Fix typo
2022-01-03 15:50:40 -08:00
77fbdb29f8
Constant time cmov ( #241 )
...
* Constant time `cmov`
* Adjust byte size
* Move from `to_signed_bytes_le` to `to_bytes_le`
* Add experimental p256 warning
* Remove redundant sign handling in `cmov`
* Remove unnecessary `Sub` implementation
* Improve note on missing constant-time implementations
* Move `inv0()` to `FieldElement`
* Fix Rust 1.51 compilation
* Remove unnecessary reference
Co-authored-by: Kevin Lewi <[email protected] >
2021-10-04 13:50:03 -07:00
daxpedda and GitHub
328b07f217
P256 improvements ( #244 )
...
* Fix p256 `to_bytes`
* Remove unnecessary calls to `mod_floor`
* Port some improvements from VOPRF
2021-10-01 11:11:56 -07:00
daxpedda and GitHub
11a93fe63e
Fix is_square and is_zero ( #240 )
2021-09-25 12:13:06 -07:00
d1dfee9a65
Add SlowHash configuration ( #234 )
...
* Add `SlowHash` configuration
* Use a reference
* Changing generic argument to be CipherSuite instead of SlowHash
Co-authored-by: Kevin Lewi <[email protected] >
2021-09-02 02:28:21 -07:00
daxpedda and GitHub
6c7840514d
Fix no_std support ( #229 )
2021-08-16 20:11:53 -07:00
8a7bcf9097
no_std support (#225 )
...
* No std implementation
* Run tests with std
* Adding wasm32-unknown-unknown target
Co-authored-by: Kevin Lewi <[email protected] >
2021-08-11 21:25:07 -07:00
daxpedda and GitHub
88673d8e05
Separate AKE from OPRF take 2 ( #222 )
...
* Separate AKE from OPRF
Introduce X25519 implementation
* Rename `AkeGroup` to `KeGroup` and `Group` to `OprfGroup`
* Add documentation to "Overview"
2021-08-04 12:24:46 -07:00
daxpedda and GitHub
10a38bc58b
Merge GroupWithMapToCurve into Group ( #219 )
...
* Merge `GroupWithMapToCurve` into `Group`
* Remove `hash_to_curve`
* Ristretto improvements
* P-256 improvements
2021-08-01 17:48:56 -07:00
daxpedda and GitHub
a169d8a1c5
Fix small numbers ( #221 )
2021-07-31 16:40:59 -07:00
e491c1b533
P256 implementation ( #213 )
...
* Initial P256 implementation
* Add P256 VOPRF test vectors
* Fix implementation
* Forgot `Cargo.toml` and CI
* Fix MSRV
* Fix MSRV tests
* Remove accidental leftovers
* Document constants
* Use included constant time checks
* Add P-256 VOPRF test vector checks
* Remove unnecessary bound on `CipherSuite::Group`
* P-256 improvement and fixes
* Add OPAQUE test vectors for P-256
* Remove fixed key size for 3DH
* Hide P-256 test vectors behind feature flag
* Split `Group` into modules
* Fix `hash_to_scalar`
* Point to source
* Move constants to `once_cell`
Co-authored-by: Kevin Lewi <[email protected] >
2021-07-30 16:02:02 -07:00
2373ca8680
Increase MSRV to 1.51 ( #217 )
...
* Increase MSRV to 1.51
* Adding MSRV note
Co-authored-by: Kevin Lewi <[email protected] >
2021-07-30 15:36:57 -07:00
dAxpeDDa and Kevin Lewi
42e06e0aff
Fix MSRV
2021-07-30 14:45:27 -07:00
dAxpeDDa and Kevin Lewi
db4e07811e
Implement oprf_key test
2021-07-30 14:45:27 -07:00
dAxpeDDa and Kevin Lewi
a5b9330b63
Improve types and documentation
2021-07-30 14:45:27 -07:00
dAxpeDDa and Kevin Lewi
3f6b6d4afe
Implement client_mac_key test
2021-07-30 14:45:27 -07:00
dAxpeDDa and Kevin Lewi
ec528eb4d9
Implement server_mac_key test
2021-07-30 14:45:27 -07:00
dAxpeDDa and Kevin Lewi
4298deadff
Implement handshake_secret test
2021-07-30 14:45:27 -07:00
dAxpeDDa and Kevin Lewi
49dc5b9050
Implement auth_key test
2021-07-30 14:45:27 -07:00
dAxpeDDa and Kevin Lewi
dcaedc278c
Fix randomized_pwd
2021-07-30 14:45:27 -07:00
dAxpeDDa and Kevin Lewi
460e2aef1c
Fix rustfmt
2021-07-30 14:45:27 -07:00
dAxpeDDa and Kevin Lewi
b90163a007
Add randomized_pwd tests
2021-07-30 14:45:27 -07:00
dAxpeDDa and Kevin Lewi
1ec96e942b
Remove unneeded derives
2021-07-23 15:23:10 -07:00
dAxpeDDa and Kevin Lewi
68d0dd2988
Run rustfmt
2021-07-23 15:23:10 -07:00
dAxpeDDa and Kevin Lewi
b27b29e652
Add documentation for remote key
2021-07-23 15:23:10 -07:00
daxpedda and Kevin Lewi
7b1328b9b7
Add missing documentation
2021-07-23 15:23:10 -07:00
daxpedda and Kevin Lewi
dedc814416
Add test
2021-07-23 15:23:10 -07:00
daxpedda and Kevin Lewi
77461b640d
Add custom ServerSetup construction
2021-07-23 15:23:10 -07:00
daxpedda and Kevin Lewi
4ce61acc6e
Implement custom error type
2021-07-23 15:23:10 -07:00
daxpedda and Kevin Lewi
17b9c49473
Remove breaking change
2021-07-23 15:23:10 -07:00
daxpedda and Kevin Lewi
3d01a605df
Move PrivateKey from CipherSuite to ServerSetup
2021-07-23 15:23:10 -07:00
daxpedda and Kevin Lewi
124d64c9ca
Fix 1.41 compilation
2021-07-23 15:23:10 -07:00
daxpedda and Kevin Lewi
d61e2d0b5c
Introduce PrivateKey associated type to CipherSuite
2021-07-23 15:23:10 -07:00
daxpedda and Kevin Lewi
e5db303dd1
Phantom removed
2021-07-08 18:55:53 -07:00
daxpedda and Kevin Lewi
2955bcf5ac
Replace Vec in Key with GenericArray
2021-07-08 18:55:53 -07:00
daxpedda and Kevin Lewi
93d92133f9
Rustfmt
2021-07-08 18:55:53 -07:00
daxpedda and Kevin Lewi
b4e59cc60e
Change Group::hash_to_curve to return Result
2021-07-08 18:55:53 -07:00
daxpedda and Kevin Lewi
c0e1181cac
Rustfmt
2021-07-08 18:55:53 -07:00
daxpedda and Kevin Lewi
2d9b1d550e
Remove unnecessary clones
2021-07-08 18:55:53 -07:00
daxpedda and Kevin Lewi
ff54d32fdd
Expose expand_message_xmd
2021-07-08 18:55:53 -07:00
daxpedda and Kevin Lewi
52d68d6f77
Constraint Scalar with Copy
2021-07-08 18:55:53 -07:00
daxpedda and Kevin Lewi
dd97a81641
Generic PublicKey and PrivateKey
2021-07-08 18:55:53 -07:00
daxpedda and Kevin Lewi
81b2719587
More missing common traits
2021-06-28 02:06:20 -07:00
daxpedda and Kevin Lewi
f05fcf0278
Expose public key in ClientRegistrationFinishResult
2021-06-28 02:06:10 -07:00
daxpedda and Kevin Lewi
eb59676a94
Implement common traits
2021-06-22 20:46:34 -07:00
daxpedda and Kevin Lewi
48590056ca
Remove Cargo.lock
2021-06-22 14:35:14 -07:00
daxpedda and Kevin Lewi
ed086c9528
Update dependencies
2021-06-22 14:35:14 -07:00
daxpedda and Kevin Lewi
ca50d92f96
Remove scrypt
2021-06-21 12:26:22 -07:00
daxpedda and Kevin Lewi
535b9b8ee4
Argon2 implementation
2021-06-21 12:26:22 -07:00