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
daxpedda and Kevin 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
daxpedda and Kevin 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
daxpedda and Kevin 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
daxpedda and Kevin 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 Lewi and Franç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