Commit Graph
103 Commits
Author SHA1 Message Date
Kevin Lewi ed5e7cf116 Publishing v4.0.0 (#407) 2025-10-23 16:28:30 -07:00
Kevin Lewi af220c6d00 Fixing generic-array dependency (#402) 2025-10-15 15:05:51 -07:00
Kevin Lewi 79e4eacc40 Making full test vector generation deterministic (#398) 2025-10-13 15:05:15 -07:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 3f8026d30e Update criterion requirement from 0.5 to 0.7 (#394)
Updates the requirements on [criterion](https://github.com/bheisler/criterion.rs) to permit the latest version.
- [Changelog](https://github.com/bheisler/criterion.rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bheisler/criterion.rs/compare/0.5.0...0.7.0)

---
updated-dependencies:
- dependency-name: criterion
  dependency-version: 0.7.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-15 20:48:32 -07:00
daxpedda 33464543c1 Add migration guide to changelog (#393) 2025-09-09 00:25:04 -07:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 6593833622 Update rustyline requirement from 15 to 17 (#391)
Updates the requirements on [rustyline](https://github.com/kkawakam/rustyline) to permit the latest version.
- [Release notes](https://github.com/kkawakam/rustyline/releases)
- [Changelog](https://github.com/kkawakam/rustyline/blob/master/History.md)
- [Commits](https://github.com/kkawakam/rustyline/compare/v15.0.0...v17.0.1)

---
updated-dependencies:
- dependency-name: rustyline
  dependency-version: 17.0.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-08 14:50:58 -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 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 b16cf8ce05 Enable curve25519-dalek/serde (#375) 2025-04-28 12:48:06 -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
Kevin Lewi df8e61d24b Publishing v3.0.0 (#367) 2024-10-09 22:13:13 -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
Kevin Lewi 066f88f434 Updating dependencies (#360) 2024-09-16 18:01:45 -07:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 1cc30c255e Update rustyline requirement from 12 to 13 (#352)
Updates the requirements on [rustyline](https://github.com/kkawakam/rustyline) to permit the latest version.
- [Release notes](https://github.com/kkawakam/rustyline/releases)
- [Changelog](https://github.com/kkawakam/rustyline/blob/master/History.md)
- [Commits](https://github.com/kkawakam/rustyline/compare/v12.0.0...v13.0.0)

---
updated-dependencies:
- dependency-name: rustyline
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-20 14:06:15 -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 83795f3f1c Increase MSRV to 1.70 and update workflow dependencies (#342) 2023-09-24 17:43:59 -07:00
Kevin Lewi d13d261cf1 Publishing v3.0.0-pre.4 (#337) 2023-07-25 01:38:33 -07:00
daxpedda 4487f11f87 Bump curve25519-dalek to v4.0.0-rc.3 (#330) 2023-06-29 11:51:40 -07:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 7f0b6a8e66 Update rustyline requirement from 11 to 12 (#332)
Updates the requirements on [rustyline](https://github.com/kkawakam/rustyline) to permit the latest version.
- [Release notes](https://github.com/kkawakam/rustyline/releases)
- [Changelog](https://github.com/kkawakam/rustyline/blob/master/History.md)
- [Commits](https://github.com/kkawakam/rustyline/compare/v11.0.0...v12.0.0)

---
updated-dependencies:
- dependency-name: rustyline
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-26 16:59:13 -07:00
Kevin Lewi c3498ead45 Publishing v3.0.0-pre.3 (#327) 2023-06-08 01:39:28 -07:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> c73eb963db Update criterion requirement from 0.4 to 0.5 (#325)
Updates the requirements on [criterion](https://github.com/bheisler/criterion.rs) to permit the latest version.
- [Changelog](https://github.com/bheisler/criterion.rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bheisler/criterion.rs/compare/0.4.0...0.5.0)

---
updated-dependencies:
- dependency-name: criterion
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-23 19:24:34 -07:00
daxpedda e6c9870899 Correctly clamp Curve25519 secret keys (#323) 2023-05-21 17:36:01 -07:00
daxpedda 7b205b73eb Bump voprf to v0.5.0-pre.4 (#322) 2023-05-21 02:06:34 -07:00
Kevin Lewi 8b755bf076 Publishing v3.0.0-pre.2 (#318) 2023-03-14 19:07:10 -07:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> f8f5d22721 Update scrypt requirement from 0.10 to 0.11 (#315)
Updates the requirements on [scrypt](https://github.com/RustCrypto/password-hashes) to permit the latest version.
- [Release notes](https://github.com/RustCrypto/password-hashes/releases)
- [Commits](https://github.com/RustCrypto/password-hashes/compare/scrypt-v0.10.0...scrypt-v0.11.0)

---
updated-dependencies:
- dependency-name: scrypt
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-10 10:11:29 -08: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
Kevin Lewi b40092db28 Publishing v3.0.0-pre.1 (#309) 2023-02-08 17:46:28 -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 a0cab10663 Update dependencies (#288)
* Fix Clippy

* Update dependencies
2022-12-10 21:30:05 -08:00
Kevin Lewi 556f6c2bd4 Version bump for 2.0.0 (#284) 2022-09-21 21:18:20 -07:00
Kevin Lewi d2a2139348 Publishing v2.0.0 (#283) 2022-09-21 20:31:31 -07:00
zer0x64anddaxpedda 94fd3598d0 Argon2 Example (#282)
* add argon2 example to simple_login.rs

* rename Default to DefaultCipherSuite in examples to avoid conflicts with core::default::Default

* put the custom KSF example in the documentation

* add links in documentation

Co-authored-by: daxpedda <[email protected]>

* remove no_run on argon2 doctest

* hide argon2 cfg attribute in docs

Co-authored-by: daxpedda <[email protected]>

Co-authored-by: daxpedda <[email protected]>
2022-07-24 20:26:48 -07:00
Kevin Lewi 9ce5d8d191 Fixing voprf dependency pinning (#280) 2022-07-11 19:17:29 -04:00
Kevin Lewi 22eded4ed8 Updating voprf dependency and test vectors (#278) 2022-07-05 05:21:50 -04:00
Kevin Lewi 6e90913132 Adding documentation on RegistrationUpload and removing patch voprf in Cargo.toml (#273) 2022-04-22 01:51:16 -07:00
Kevin Lewi 3fe6bbb80f Updating to version 08 (#271) 2022-04-17 16:23:31 -07:00
daxpedda 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 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 47a26a19c5 Format (#257)
* Add Rustfmt

* Add Taplo
2022-01-05 21:19:02 -08:00
daxpedda 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 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