- Synced implementation with draft-irtf-cfrg-opaque-16
- Breaking: protocol context string changed from
RFCXXXX
toOPAQUEv1-
- Breaking: protocol context string changed from
- Dropped unmaintained json crate in favor of serde_json
- Updated dependencies
- Increased MSRV to 1.74
- Adjusted curve25519 support logic
- Adjusted key generation logic to be in line with commit 727b9ac of https://github.com/cfrg/draft-irtf-cfrg-opaque
- Updated VOPRF to draft 19
- Breaking: backwards-incompatible changes introduced in OPRF protocol
- Added P384 testing support
- Renaming of X25519 to Curve25519
- Synced implementation with draft-irtf-cfrg-opaque-10
- Changed argon2 salt length to recommended value (16 bytes)
- Fixed issue from 2.0.0-pre.2 not pinning voprf dependency correctly
- Split out VOPRF implementation into its own crate
- Added support for running the API without performing allocations
- Revamped the way the Group trait was used, so as to be more easily extendable to other groups
- Added support for p256 as the group and x25519 as the key exchange group
- Added common traits for each public-facing struct, including serde support
- Added explicit support for the thumbv6m-none-eabi target (no-std)
- Updated dependencies and bumped MSRV to 1.51
- Added no_std support
- Branched from v0.5.0
- Various security improvements: non-zero scalars, zeroizing on drop, constant-time operations, reflected value check, and adding an i2osp error condition
- Synced implementation with draft-irtf-cfrg-opaque-05, which changes the envelope structure and introduces a ServerSetup object to be maintained by the server
- Various security improvements: non-zero scalars, zeroizing on drop, constant-time operations
- Adding serde support behind a feature
- Supporting common traits (eb59676)
- Swapping out scrypt for argon2 (535b9b8) for the slow-hash feature
- Adding support for common traits on public structs
- Updated dependencies
- Various security improvements: non-zero scalars, zeroizing on drop, constant-time operations, reflected value check, and adding an i2osp error condition
- Removed dependency on generic-bytes-derive package
- Adherence to protocol format described in https://tools.ietf.org/html/draft-irtf-cfrg-opaque-03
- Renamed to_bytes() and try_from() to serialize() and deserialize() for top-level structs
- Conformed all message type parameters to be parameterized in the Ciphersuite object
- Re-exporting the rand library (and including it as a dependency instead of just rand_core)
- Exposing a convenience function for converting from byte array to Key type
- General API and documentation improvements, including the support of custom identifiers, optional result parameters, and the use of the export key
- Compliance with RFC 8017 on data serialization functions (I2OSP / OS2IP)
- Adherence to protocol format described in https://tools.ietf.org/html/draft-irtf-cfrg-opaque-02
- Added parameters for key exchange additional data
- Added simple_login and digital_locker examples
- Changed visibility of hash module to be public
- Added CipherSuite API for specifying underlying primitives
- Added support for specifying a slow password hashing function
- Collapsed SignalKeyPair to X25519KeyPair
- Updated the envelope implementation to match the suggested XOR-based construction in https://tools.ietf.org/html/draft-krawczyk-cfrg-opaque-06
- Included randomized tests for testing try_from crashes
- Implemented Elligator2 map instead of try-and-increment for hash-to-curve
- Added extensibility for supporting different key exchange protocols
- Added benchmarks for the OPRF & switchable dalek backend depending on platform
- Initial release