breakingbread
82f5677cd8
chore: update copyright headers to SPDX format and code cleanup
...
Rust CI / cargo audit (pull_request) Has been cancelled
Rust CI / cargo fmt (pull_request) Failing after 3s
Rust CI / cargo clippy (pull_request) Successful in 1m27s
Rust CI / test (stable / no backend / no frontend) (pull_request) Has been cancelled
Rust CI / test (1.90.0 / no backend / --features argon2) (pull_request) Has been cancelled
Rust CI / test (stable / no backend / --features argon2) (pull_request) Has been cancelled
Rust CI / test (1.90.0 / no backend / --features serde) (pull_request) Has been cancelled
Rust CI / test (stable / no backend / --features serde) (pull_request) Has been cancelled
Rust CI / test (1.90.0 / --features curve25519 / no frontend) (pull_request) Has been cancelled
Rust CI / test (stable / --features curve25519 / no frontend) (pull_request) Has been cancelled
Rust CI / test (1.90.0 / --features curve25519 / --features argon2) (pull_request) Has been cancelled
Rust CI / test (stable / --features curve25519 / --features argon2) (pull_request) Has been cancelled
Rust CI / test (1.90.0 / --features curve25519 / --features serde) (pull_request) Has been cancelled
Rust CI / test (stable / --features curve25519 / --features serde) (pull_request) Has been cancelled
Rust CI / test (1.90.0 / --features ecdsa / no frontend) (pull_request) Has been cancelled
Rust CI / test (stable / --features ecdsa / no frontend) (pull_request) Has been cancelled
Rust CI / test (1.90.0 / --features ecdsa / --features argon2) (pull_request) Has been cancelled
Rust CI / test (stable / --features ecdsa / --features argon2) (pull_request) Has been cancelled
Rust CI / test (1.90.0 / --features ecdsa / --features serde) (pull_request) Has been cancelled
Rust CI / test (stable / --features ecdsa / --features serde) (pull_request) Has been cancelled
Rust CI / test (1.90.0 / --features ed25519 / no frontend) (pull_request) Has been cancelled
Rust CI / test (stable / --features ed25519 / no frontend) (pull_request) Has been cancelled
Rust CI / test (1.90.0 / --features ed25519 / --features argon2) (pull_request) Has been cancelled
Rust CI / test (stable / --features ed25519 / --features argon2) (pull_request) Has been cancelled
Rust CI / test (1.90.0 / --features ed25519 / --features serde) (pull_request) Has been cancelled
Rust CI / test (stable / --features ed25519 / --features serde) (pull_request) Has been cancelled
Rust CI / test (1.90.0 / --features ristretto255 / no frontend) (pull_request) Has been cancelled
Rust CI / test (stable / --features ristretto255 / no frontend) (pull_request) Has been cancelled
Rust CI / test (1.90.0 / --features ristretto255 / --features argon2) (pull_request) Has been cancelled
Rust CI / test (stable / --features ristretto255 / --features argon2) (pull_request) Has been cancelled
Rust CI / test (1.90.0 / --features ristretto255 / --features serde) (pull_request) Has been cancelled
Rust CI / test (stable / --features ristretto255 / --features serde) (pull_request) Has been cancelled
Rust CI / test (1.90.0 / --features ristretto255,curve25519,ecdsa,ed25519 / no frontend) (pull_request) Has been cancelled
Rust CI / test (stable / --features ristretto255,curve25519,ecdsa,ed25519 / no frontend) (pull_request) Has been cancelled
Rust CI / test (1.90.0 / --features ristretto255,curve25519,ecdsa,ed25519 / --features argon2) (pull_request) Has been cancelled
Rust CI / test (stable / --features ristretto255,curve25519,ecdsa,ed25519 / --features argon2) (pull_request) Has been cancelled
Rust CI / test (1.90.0 / --features ristretto255,curve25519,ecdsa,ed25519 / --features serde) (pull_request) Has been cancelled
Rust CI / test (stable / --features ristretto255,curve25519,ecdsa,ed25519 / --features serde) (pull_request) Has been cancelled
Rust CI / test (1.90.0 / --features ristretto255,kem / no frontend) (pull_request) Has been cancelled
Rust CI / test (stable / --features ristretto255,kem / no frontend) (pull_request) Has been cancelled
Rust CI / test (1.90.0 / --features ristretto255,kem / --features argon2) (pull_request) Has been cancelled
Rust CI / test (stable / --features ristretto255,kem / --features argon2) (pull_request) Has been cancelled
Rust CI / test (1.90.0 / --features ristretto255,kem / --features serde) (pull_request) Has been cancelled
Rust CI / test (stable / --features ristretto255,kem / --features serde) (pull_request) Has been cancelled
Rust CI / test simple_login example (pull_request) Has been cancelled
Rust CI / test digital_locker example (pull_request) Has been cancelled
Rust CI / cargo bench compilation () (pull_request) Has been cancelled
Rust CI / cargo bench compilation (--features ristretto255) (pull_request) Has been cancelled
Rust CI / cargo bench compilation (--features ristretto255,kem) (pull_request) Has been cancelled
Rust CI / test (1.90.0 / no backend / no frontend) (pull_request) Has been cancelled
Rust CI / no-std (thumbv6m-none-eabi / no backend) (pull_request) Has been cancelled
Rust CI / no-std (wasm32-unknown-unknown / no backend) (pull_request) Has been cancelled
Rust CI / no-std (thumbv6m-none-eabi / curve25519) (pull_request) Has been cancelled
Rust CI / no-std (wasm32-unknown-unknown / curve25519) (pull_request) Has been cancelled
Rust CI / no-std (thumbv6m-none-eabi / ecdsa) (pull_request) Has been cancelled
Rust CI / no-std (wasm32-unknown-unknown / ecdsa) (pull_request) Has been cancelled
Rust CI / no-std (thumbv6m-none-eabi / ed25519) (pull_request) Has been cancelled
Rust CI / no-std (wasm32-unknown-unknown / ed25519) (pull_request) Has been cancelled
Rust CI / no-std (thumbv6m-none-eabi / ristretto255) (pull_request) Has been cancelled
Rust CI / no-std (wasm32-unknown-unknown / ristretto255) (pull_request) Has been cancelled
Rust CI / no-std (thumbv6m-none-eabi / ristretto255,curve25519,ecdsa,ed25519) (pull_request) Has been cancelled
Rust CI / no-std (wasm32-unknown-unknown / ristretto255,curve25519,ecdsa,ed25519) (pull_request) Has been cancelled
- Added VexaHub copyright alongside original Meta copyright
- Replaced verbose license blocks with SPDX-License-Identifier
- Minor code improvements
2026-07-01 17:59:51 +02:00
breakingbread
71df1ee49a
feat: upgrade crypto ecosystem to latest RustCrypto stack ( #1 )
...
Rust CI / cargo audit (push) Successful in 6s
Rust CI / cargo fmt (push) Successful in 4s
Rust CI / test (1.90.0 / no backend / no frontend) (push) Successful in 2m25s
Rust CI / test (stable / no backend / no frontend) (push) Successful in 2m27s
Rust CI / cargo clippy (push) Successful in 1m25s
Rust CI / test (1.90.0 / no backend / --features argon2) (push) Successful in 2m35s
Rust CI / test (stable / no backend / --features argon2) (push) Successful in 2m34s
Rust CI / test (stable / no backend / --features serde) (push) Successful in 2m55s
Rust CI / test (stable / --features curve25519 / no frontend) (push) Successful in 2m31s
Rust CI / test (1.90.0 / no backend / --features serde) (push) Successful in 2m52s
Rust CI / test (1.90.0 / --features curve25519 / no frontend) (push) Successful in 2m29s
Rust CI / test (1.90.0 / --features curve25519 / --features argon2) (push) Successful in 2m37s
Rust CI / test (stable / --features curve25519 / --features argon2) (push) Successful in 2m36s
Rust CI / test (1.90.0 / --features curve25519 / --features serde) (push) Successful in 2m59s
Rust CI / test (stable / --features curve25519 / --features serde) (push) Successful in 3m1s
Rust CI / test (1.90.0 / --features ecdsa / no frontend) (push) Successful in 2m52s
Rust CI / test (stable / --features ecdsa / no frontend) (push) Successful in 2m51s
Rust CI / test (1.90.0 / --features ecdsa / --features argon2) (push) Successful in 2m57s
Rust CI / test (stable / --features ecdsa / --features argon2) (push) Successful in 2m58s
Rust CI / test (1.90.0 / --features ecdsa / --features serde) (push) Successful in 3m19s
Rust CI / test (1.90.0 / --features ristretto255 / no frontend) (push) Successful in 3m2s
Rust CI / test (stable / --features ecdsa / --features serde) (push) Successful in 3m19s
Rust CI / test (1.90.0 / --features ed25519 / no frontend) (push) Successful in 2m53s
Rust CI / test (stable / --features ed25519 / no frontend) (push) Successful in 2m54s
Rust CI / test (1.90.0 / --features ed25519 / --features argon2) (push) Successful in 3m3s
Rust CI / test (stable / --features ed25519 / --features argon2) (push) Successful in 3m0s
Rust CI / test (1.90.0 / --features ed25519 / --features serde) (push) Successful in 3m22s
Rust CI / test (stable / --features ed25519 / --features serde) (push) Successful in 3m22s
Rust CI / test (1.90.0 / --features ristretto255 / --features argon2) (push) Successful in 3m9s
Rust CI / test (stable / --features ristretto255 / no frontend) (push) Successful in 3m4s
Rust CI / test (stable / --features ristretto255 / --features argon2) (push) Successful in 3m11s
Rust CI / test (1.90.0 / --features ristretto255 / --features serde) (push) Successful in 3m28s
Rust CI / test (stable / --features ristretto255 / --features serde) (push) Successful in 3m32s
Rust CI / test (1.90.0 / --features ristretto255,curve25519,ecdsa,ed25519 / no frontend) (push) Successful in 5m26s
Rust CI / test (stable / --features ristretto255,curve25519,ecdsa,ed25519 / no frontend) (push) Successful in 5m17s
Rust CI / test (1.90.0 / --features ristretto255,curve25519,ecdsa,ed25519 / --features argon2) (push) Successful in 5m27s
Rust CI / test (stable / --features ristretto255,curve25519,ecdsa,ed25519 / --features serde) (push) Successful in 5m43s
Rust CI / test (stable / --features ristretto255,curve25519,ecdsa,ed25519 / --features argon2) (push) Successful in 5m20s
Rust CI / test (1.90.0 / --features ristretto255,curve25519,ecdsa,ed25519 / --features serde) (push) Successful in 6m1s
Rust CI / test (stable / --features ristretto255,kem / no frontend) (push) Successful in 4m0s
Rust CI / test (1.90.0 / --features ristretto255,kem / --features argon2) (push) Successful in 4m5s
Rust CI / test (1.90.0 / --features ristretto255,kem / no frontend) (push) Successful in 4m2s
Rust CI / test (stable / --features ristretto255,kem / --features argon2) (push) Successful in 4m3s
Rust CI / test (stable / --features ristretto255,kem / --features serde) (push) Successful in 4m32s
Rust CI / test (1.90.0 / --features ristretto255,kem / --features serde) (push) Successful in 4m31s
Rust CI / test simple_login example (push) Successful in 19s
Rust CI / test digital_locker example (push) Successful in 18s
Rust CI / cargo bench compilation () (push) Successful in 1m47s
Rust CI / cargo bench compilation (--features ristretto255) (push) Successful in 1m55s
Rust CI / cargo bench compilation (--features ristretto255,kem) (push) Successful in 2m35s
Rust CI / no-std (thumbv6m-none-eabi / no backend) (push) Successful in 28s
Rust CI / no-std (wasm32-unknown-unknown / no backend) (push) Successful in 28s
Rust CI / no-std (thumbv6m-none-eabi / curve25519) (push) Successful in 18s
Rust CI / no-std (wasm32-unknown-unknown / curve25519) (push) Successful in 28s
Rust CI / no-std (thumbv6m-none-eabi / ecdsa) (push) Successful in 29s
Rust CI / no-std (wasm32-unknown-unknown / ecdsa) (push) Successful in 28s
Rust CI / no-std (thumbv6m-none-eabi / ed25519) (push) Successful in 29s
Rust CI / no-std (wasm32-unknown-unknown / ed25519) (push) Successful in 30s
Rust CI / no-std (thumbv6m-none-eabi / ristretto255) (push) Successful in 28s
Rust CI / no-std (wasm32-unknown-unknown / ristretto255) (push) Successful in 28s
Rust CI / no-std (thumbv6m-none-eabi / ristretto255,curve25519,ecdsa,ed25519) (push) Successful in 29s
Rust CI / no-std (wasm32-unknown-unknown / ristretto255,curve25519,ecdsa,ed25519) (push) Successful in 19s
Upgrade all core cryptographic dependencies to their latest versions:
Dependencies:
- digest: 0.10 to 0.11
- elliptic-curve: 0.13 to 0.14
- hkdf: 0.12 to 0.13
- hmac: 0.12 to 0.13
- rand: 0.8 to 0.10
- rand_chacha: 0.3 to 0.10
- sha2: 0.10 to 0.11
- getrandom: 0.2 to 0.4 (WASM)
- ml-kem: 0.3.0-rc.0 to 0.3
- ecdsa: 0.16 to 0.17.0-rc.23
- rfc6979: 0.4 to 0.6 (now internal to ecdsa)
- p256/p384/p521: 0.13 to 0.14.0-rc.15
- curve25519-dalek: 4 to 5.0.0-rc
- ed25519-dalek: 2 to 3.0.0-rc
- cryptoki: 0.9 to 0.12
- rustyline: 17 to 18
- scrypt: 0.11 to 0.12
- voprf replaced by voprf-vx 1.0.0-pre.0
Migration changes:
- generic-array 0.14 to 1.4 with hybrid-array 0.4 interop
- ArrayLength<u8> to ArrayLength (generic-array 1.x)
- Added ConcatExt trait to disambiguate from [T]::concat
- Replaced Hmac with SimpleHmac for digest 0.11 compatibility
- Added OutputSize<H>: ArrayLength bounds throughout Hash trait
- Converted hybrid_array::Array between GenericArray at API boundaries
- Updated GroupEncoding Repr bound to hybrid_array::Array
- ECDSA sign now uses ecdsa::hazmat::sign_prehashed_rfc6979
- Removed direct rfc6979 dependency (handled by ecdsa internally)
- Replaced bincode with postcard for no_std serialization
- Re-exported hybrid_array from crate root
Other changes:
- Renamed crate to opaque-vx
- Increased MSRV to 1.89
- Added cryptography to Cargo.toml categories
- Removed Facebook-specific contributions from CONTRIBUTING.md
- Removed v3 to v4 migration test
- Removed unstable rustfmt configurations for stable compatibility
Reviewed-on: #1
Co-authored-by: UneBaguette <[email protected] >
Co-committed-by: UneBaguette <[email protected] >
2026-07-01 11:52:12 +02:00
Kevin Lewi
2dee6fbc01
Fixing clippy issues ( #418 )
2026-01-22 15:37:21 -08:00
Kevin Lewi
8afec46637
Adding TripleDhKem key exchange ( #404 )
2025-11-08 14:21:51 -08: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
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
066f88f434
Updating dependencies ( #360 )
2024-09-16 18:01:45 -07:00
Kevin Lewi
a88373722e
Updating dual-license language ( #324 )
2023-05-22 23:04:26 -07:00
daxpedda
7da97be1db
Fix CI ( #298 )
2022-12-16 14:14:53 -08: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
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 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
7b1328b9b7
Add missing documentation
2021-07-23 15:23:10 -07:00
daxpedda
4ce61acc6e
Implement custom error type
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
daxpedda
81b2719587
More missing common traits
2021-06-28 02:06:20 -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
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
f165310c96
Adding expand_message_xmd and RFC compliance with VOPRF and H2C ( #80 )
2020-11-12 10:00:09 -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
Kevin Lewi
0fc3448777
Updating opaque interfaces to include ids from the internet draft ( #56 )
2020-11-02 20:15:06 -05:00
François Garillot
344e8ad8d1
Updating serialization for RegisterFirstMessage ( #35 )
2020-11-02 20:14:47 -05:00
François Garillot
69449cca3e
Activate #![deny(missing_docs)], #![deny(unsafe_code)]
2020-07-06 15:40:35 -04:00
Kevin Lewi
6d02c72aae
Updating to draft-krawczyk-cfrg-opaque-06, reworking envelope construction and removing AEAD ( #14 )
...
Updating to draft-krawczyk-cfrg-opaque-06, reworking envelope construction and removing AEAD
2020-07-02 12:24:53 -07:00
Kevin Lewi
57e152b028
Adding password hashing functionality
2020-06-08 21:02:01 -07:00
Kevin Lewi
88696763cc
Initial commit
Rust CI / test + Clippy + rustfmt (push) Has been cancelled
2020-06-05 09:35:14 -07:00