Commit Graph
56 Commits
Author SHA1 Message Date
Kevin Lewi deb7ca3dc0 Update keypair generation to use derive_auth_keypair (#326) 2023-05-27 17:39:04 -05:00
Kevin Lewi a88373722e Updating dual-license language (#324) 2023-05-22 23:04:26 -07:00
daxpedda c1c1c40191 Test P-384 (#290) 2023-03-06 11:28:19 -08: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 65a0c2f98d General cleanups and reorganizing code (#236) 2021-09-25 16:36:00 -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
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
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 49dc5b9050 Implement auth_key test 2021-07-30 14:45:27 -07:00
daxpedda 3d01a605df Move PrivateKey from CipherSuite to ServerSetup 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 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 dd97a81641 Generic PublicKey and PrivateKey 2021-07-08 18:55:53 -07:00
Kevin Lewi 809337f458 One-liner fix for deserialization test for CredentialResponse 2021-06-28 18:16:30 -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
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 fa0fb48654 Fixing test vector bug with envelope ciphertext serialization and updating VOPRF (#145) 2021-02-21 18:44:36 -08:00
Kevin Lewi 4da6bbce0c Fixing key sizes and removing serialization (#144) 2021-02-20 03:51:04 -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
Kevin Lewi f596e4bf0e Fixing clippy issues (#139) 2021-02-11 03:41:01 -08:00
Kevin Lewi e35410ab95 Fixing envelope mode inconsistency and matching against latest test vectors (#130) 2021-02-05 13:17:02 -08:00
Kevin Lewi 9d3963f98e Addressing various TODOs and minor cleanups (#127) 2021-02-02 12:12:20 -08:00
Kevin Lewi 6eeeb0db28 Fixing test vectors and use of SHA512 (#120) 2021-01-26 09:27:30 -08:00
Kevin Lewi 6dc1c8b212 Turning KeyPair into a struct (#119) 2021-01-25 13:20:36 -08:00
Kevin Lewi 2a2d0888a5 Adding encryption algorithm and removing unnecesssary info fields (#114) 2021-01-14 15:30:37 -08:00
Kevin Lewi 9f6b32a5ea Updating envelope structure to support two fixed modes (#108)
* Moving id_u and id_s from ClientLoginStartParameters to ClientLoginFinishParameters

* Updating envelope format to support two fixed modes
2021-01-04 14:27:20 -08:00
Kevin Lewi f5b5391ee0 Moving id_u and id_s from the client API to registration finish instead of start (#102) 2020-12-17 14:00:32 -08:00
Kevin Lewi 605d2b639b Cleaning up docs + README (#98) 2020-12-12 21:53:33 -08:00
Kevin Lewi 6f5a1fc6aa Removing protocol message bytes (#93) 2020-11-30 11:37:32 -08:00
Kevin Lewi 95152c3b35 Adding API for handling info fields (#88) 2020-11-16 14:05:43 -08:00
Kevin Lewi 51b3781e5c Updating AKE message format (#85) 2020-11-16 11:49:27 -08:00
Kevin Lewi f165310c96 Adding expand_message_xmd and RFC compliance with VOPRF and H2C (#80) 2020-11-12 10:00:09 -08:00
François Garillot 05514e49aa Correct platform size bug 2020-11-12 10:42:45 -05:00