Releases: return/branca
Releases · return/branca
v0.10.1
- Update Orion to
0.17
which includes Poly1305 implementation based on formally verified arithmetic from fiat-crypto (@brycx). - Test implementation with now standardized test vectors from the spec (@brycx).
- Bump MSRV to 1.52 (@brycx).
- Enable Dependabot to automatically check for updates for dependencies (@brycx).
v0.10.0
- Fix stack overflow occurring from incorrect
Display
implementation (@aldebaranzbradaradjan #14) - Fix non-propagated error in
Branca.encode
(@brycx #12) - Fix issue with compliance to the specification: Allow empty input when encoding & decoding tokens (@brycx #13)
- MSRV bumped to
1.41
- (Breaking change): Correctly handle binary data (@ganwell #10 (fix by @brycx)). Previously, non-UTF8 encoded tokens would not decode to the correct payload if the token was created with a different Branca implementation.
- (Security): Correctly return error on invalid base62 tokens. Previously, this would panic whereas documentation would indicate an error was supposed to be returned (@brycx 7da3274)
- Document that
encode()
panics if it fails to generate random bytes for the nonce. - Add basic fuzzing targets (@brycx #17)
- (Breaking change): Fix that the nonce, returned by the builder context, was never used for encoding (@brycx #19)
- (Breaking change): Return
OverflowingOperation
error if adding TTL to timestamp would overflow (@brycx #21) - Fix incorrect timestamps used for token creation with
Branca
struct (@brycx #22)
v0.9.2
- Token expiration is now checked after authentication and decryption to remove the impossibility of knowing if an expired token is valid or not. (Credit: @brycx #8)
- Updated Branca dependencies. f3d348f
- Replaced .description() with .to_string() to remove warnings in Rust 1.45.2 971364f
- Use as_secs() in Branca::new() #9
- More test vectors from the JS implementation were added #6
v0.9.1
v0.9.0
- Replaced Ring and chacha20-poly1305 crates with Orion by @brycx (#1)
- Brings Unofficial Windows / WSL Support. (A Windows CI will be added to support this.)
- Secret key comparison runs in constant-time with manual PartialEq implementation.
- Also removes the internal hChaCha20 implementation.
- (Breaking Change) Removed set_nonce() API.
- Examples and tests now integrated into library.
- Various Documentation fixes (Rustdoc friendly).
v0.8.0
- Added Branca::new() interface to simplify generating Branca tokens.
- Migrated Key and Nonce fields from Vec to &[u8] in exception to the Branca struct.
- Self variable in Branca struct is now borrowed rather than owned.
- hChaCha20 module is now a private module. (Only needed internally by the encode/decode) methods.
- Branca now uses Ring for nonce generation
- Added Documentation to all fields.
v0.5.0
- Implementation is now written in Pure Rust (Zero unsafe code or FFI usage)
- Migrated to chacha-poly1305-aead crate with in-tree hchacha20 implementation by @tarcieri
- Message data type changed from String --> &str.
- Removed sodiumoxide.
- Switched from chrono --> std::time for timestamps.
- Added more tests and examples.
- Typical bug fixes and bounds checks for the keys and nonces.