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
65a0c2f98d
General cleanups and reorganizing code ( #236 )
2021-09-25 16:36:00 -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
Kevin Lewi
aee4b5d50e
Simplifying error handling ( #232 )
2021-08-22 12:28:19 -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
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
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
db4e07811e
Implement oprf_key test
2021-07-30 14:45:27 -07:00
dAxpeDDa
a5b9330b63
Improve types and documentation
2021-07-30 14:45:27 -07:00
dAxpeDDa
3f6b6d4afe
Implement client_mac_key test
2021-07-30 14:45:27 -07:00
dAxpeDDa
ec528eb4d9
Implement server_mac_key test
2021-07-30 14:45:27 -07:00
dAxpeDDa
4298deadff
Implement handshake_secret test
2021-07-30 14:45:27 -07:00
dAxpeDDa
49dc5b9050
Implement auth_key test
2021-07-30 14:45:27 -07:00
dAxpeDDa
dcaedc278c
Fix randomized_pwd
2021-07-30 14:45:27 -07:00
dAxpeDDa
460e2aef1c
Fix rustfmt
2021-07-30 14:45:27 -07:00
dAxpeDDa
b90163a007
Add randomized_pwd tests
2021-07-30 14:45:27 -07:00
daxpedda
77461b640d
Add custom ServerSetup construction
2021-07-23 15:23:10 -07:00
daxpedda
4ce61acc6e
Implement custom error type
2021-07-23 15:23:10 -07:00
daxpedda
3d01a605df
Move PrivateKey from CipherSuite to ServerSetup
2021-07-23 15:23:10 -07:00
daxpedda
124d64c9ca
Fix 1.41 compilation
2021-07-23 15:23:10 -07:00
daxpedda
d61e2d0b5c
Introduce PrivateKey associated type to CipherSuite
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
8de2f37235
Updating VOPRF dependency
2021-07-12 15:16:08 -07:00
Kevin Lewi
e6b5a5dcf6
Adding i2osp error checking condition
2021-07-08 19:38:30 -07:00
daxpedda
c0e1181cac
Rustfmt
2021-07-08 18:55:53 -07:00
daxpedda
52d68d6f77
Constraint Scalar with Copy
2021-07-08 18:55:53 -07:00
daxpedda
dd97a81641
Generic PublicKey and PrivateKey
2021-07-08 18:55:53 -07:00
daxpedda
f05fcf0278
Expose public key in ClientRegistrationFinishResult
2021-06-28 02:06:10 -07:00
daxpedda
eb59676a94
Implement common traits
2021-06-22 20:46:34 -07:00
Kevin Lewi
1572ff0104
Adding support for "internal mode" and fake credential response + test vectors ( #155 )
...
* Adding support for internal and external mode
2021-06-21 01:29:39 -07:00
Kevin Lewi
f0c13945d1
Adding client enumeration mitigations ( #153 )
2021-06-21 01:29:39 -07:00
Kevin Lewi
98f1821897
Adding identity element checks and ensuring non-zero scalar selection
2021-06-15 18:39:33 -07:00
Valentin Tolmer
210e0e99df
Enforce public vs private keys via types
2021-06-15 14:47:35 -07:00
Valentin Tolmer
2c7fe4e382
Implement Clone for every message type
2021-06-15 10:06:32 -07:00
Kevin Lewi
30e27a11e2
Ensure that all public keys are being checked when deserialized
2021-06-14 22:39:13 -07:00
Kevin Lewi
0935bea8ff
Adding documentation of slow-hash + other features
2021-06-13 15:45:53 -07:00
Kevin Lewi
51b14f34e0
Fixing some clippy errors and CI
2021-06-12 23:24:27 -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
Kevin Lewi
fa0fb48654
Fixing test vector bug with envelope ciphertext serialization and updating VOPRF ( #145 )
2021-02-21 18:44:36 -08:00
Kevin Lewi
a457d82793
Updating transcript computation for 3DH ( #143 )
2021-02-19 12:02:44 -08:00
Kevin Lewi
782eeb7090
Converting to_bytes and try_from to serialize() and deserialize() ( #138 )
2021-02-17 02:47:00 -08:00
Kevin Lewi
7f84984f61
Making message type parameters set to CipherSuite ( #140 )
2021-02-17 02:13:03 -08:00
Kevin Lewi
e694a88ef9
Exporting rand ( #137 )
2021-02-11 18:10:48 -08:00