Commit Graph
60 Commits
Author SHA1 Message Date
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
Kevin Lewi adbd50f523 Updating to dual-license (#252) 2021-12-03 14:38:11 -08:00
Kevin Lewi 29b2ebef1b Using voprf as a dependency (#248)
* Using voprf as a dependency

* Adding back x25519 and KeGroup

* Addressing comments
2021-10-25 02:54:32 -07:00
Kevin Lewi f1f4184400 Add better parsing for RFC test vectors (#247) 2021-10-09 18:17:07 -07:00
daxpeddaandKevin Lewi 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 6c7840514d Fix no_std support (#229) 2021-08-16 20:11:53 -07:00
daxpeddaandKevin Lewi 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
daxpeddaandKevin Lewi 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
daxpeddaandKevin Lewi 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 42e06e0aff Fix MSRV 2021-07-30 14:45:27 -07:00
Kevin Lewi 35886152ca Adding tilde to zeroize dep and minor doc adjustments 2021-07-23 15:23:10 -07:00
Kevin Lewi b4882f8810 Adding reflected value check on client side 2021-07-14 18:10:35 -07:00
Kevin Lewi 349329cdeb Releasing v0.6.0 2021-06-30 12:20:57 -07:00
daxpedda eb59676a94 Implement common traits 2021-06-22 20:46:34 -07:00
daxpedda ed086c9528 Update dependencies 2021-06-22 14:35:14 -07:00
daxpedda ca50d92f96 Remove scrypt 2021-06-21 12:26:22 -07:00
daxpedda 535b9b8ee4 Argon2 implementation 2021-06-21 12:26:22 -07:00
Kevin Lewi f0c13945d1 Adding client enumeration mitigations (#153) 2021-06-21 01:29:39 -07:00
Marcelin Dupraz 055e76a115 Implement serde serialization and deserialization to follow Rust's standards. 2021-06-12 23:24:27 -07:00
Kevin Lewi 8bc5e7dc02 Add zeroize on drop for remaining intermediate API states and tests 2021-06-04 16:37:54 -07:00
Tony 468e0690d7 Zeroize keys on drop (#156) 2021-06-04 16:37:54 -07:00
Kevin Lewi ba8e940e08 Updating to 0.5 with removing generic_bytes_derive (#150) 2021-03-01 19:23:09 -08:00
Kevin Lewi ac08801f18 Updating to version 0.4.0 and simplifying transcript computation logic in TripleDH (#148) 2021-02-26 15:18:10 -08:00
Kevin Lewi a457d82793 Updating transcript computation for 3DH (#143) 2021-02-19 12:02:44 -08:00
Kevin Lewi bb7d17a102 Fixing deny.toml (#142) 2021-02-17 02:28:49 -08:00
Kevin Lewi e4636e0a97 Releasing v0.3.1 (#141) 2021-02-11 18:20:11 -08:00
Kevin Lewi e694a88ef9 Exporting rand (#137) 2021-02-11 18:10:48 -08:00
Kevin Lewi 1dbfed8763 Updating 0.3.0 crate version (#134) 2021-02-08 13:00:20 -08:00
Kevin Lewi 6307ea9eed Updating rand_core to 0.6 (without curve25519-dalek library change) (#131) 2021-02-05 13:17:35 -08:00
Kevin Lewi 9d3963f98e Addressing various TODOs and minor cleanups (#127) 2021-02-02 12:12:20 -08:00
Kevin Lewi 511d371c9a Adding digital locker example (#117) 2021-01-21 20:18:57 -08:00
François Garillot 94630dff7c Update dependencies 2020-12-09 12:44:24 -08:00
François Garillot 230b1bcef6 Start integrating the derivable SizedBytes
- just derive it on Key and KeyPair for now
2020-11-03 16:45:37 -05:00
François Garillot aabd5266c3 Bump Crate version => 0.3.0-pre.1 2020-11-03 13:29:51 -08:00
Kevin Lewi c7f6abb591 Adding simple login example and fixing some docs (#67) 2020-10-26 11:52:15 -07:00
Kevin Lewi 8ccb5ad510 Publishing v0.2.1 (#66) 2020-10-22 10:23:25 -07:00
Kevin LewiandFrançois Garillot 84cc0e9b72 Updating changelog / README / Cargo.toml to version 0.2.0 (#47)
Rust CI / test (u32_backend) (push) Has been cancelled
Rust CI / test (u64_backend) (push) Has been cancelled
Rust CI / cargo bench compilation (push) Has been cancelled
Rust CI / cargo clippy (push) Has been cancelled
Rust CI / cargo fmt (push) Has been cancelled
Rust CI / cargo-deny check (push) Has been cancelled
* Updating changelog / README / Cargo.toml to version 0.2.0

* Update CHANGELOG.md

Co-authored-by: François Garillot <[email protected]>

Co-authored-by: François Garillot <[email protected]>
2020-09-03 13:21:27 -07:00
François Garillot f1bdfcd3a0 Add elligator mapping for hash-to-curve 2020-09-03 14:17:43 -04:00
François Garillot 6dde7c5351 Update all dependencies to the lates version
Not. now using the same upcoming dalek versions (curve25519-dalek v 3)
2020-08-26 09:44:23 -04:00
François Garillot 29ba1b93b5 Check for small subgroup components when using the EdwardsPoint group for the OPRF
A malicious attacker sending a small point could lead the server / user to leak private information.

The check avoiding mixed order points (rather than just small) is prohibitively expensive, and I don't know how an attacker would extract any data from that => we focus on a small order check.

Fixes #34.
2020-08-24 14:50:29 -04:00
Kevin Lewi c2edb2d95e Adding a hash type to CipherSuite (#24) 2020-07-27 15:25:04 -07:00
François Garillot 6b1e485763 Update minor versions as appropriate 2020-07-23 14:49:49 -04:00
François Garillot 4aae404e29 Merge pull request #27 from huitseeker/curve2559_backends
Pass-through x,curve2559 backends
2020-07-22 17:56:03 -04:00
François Garillot 8885fe5aa1 Re-establish cargo check --all-targets
The bench in benches/oprf.rs requires a feature to have visibility over private members, and doesn't work without it.
`cargo check --all-targets` is the standard quick way to check code under build & test targets, but does not specify features.

This simply skips the `benches` when the `"bench"` feature it depends on is not activated.
2020-07-22 15:22:47 -04:00