Skip to content

Releases: return/branca

v0.10.1

01 Feb 08:26
acfa761
Compare
Choose a tag to compare
  • 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

29 Nov 13:53
289cf60
Compare
Choose a tag to compare
  • 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

31 Aug 01:13
Compare
Choose a tag to compare
  • 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

10 May 11:36
Compare
Choose a tag to compare
  • Fix Invalid ExpiredToken error logic (#3)
  • Update orion to v0.15 (#4) (Now 0.15.1)
  • Change summary of TTL in documentation.
  • Update branca dependencies.
  • Migrate to GitHub Actions from Travis.

v0.9.0

22 Jul 17:43
Compare
Choose a tag to compare
  • 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

11 Jan 19:22
Compare
Choose a tag to compare
  • 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

29 Dec 03:50
Compare
Choose a tag to compare
  • 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.

v0.2.0

02 Dec 13:04
Compare
Choose a tag to compare
  • Now uses sodiumxide for XChaCha20-Poly1305 cryptography functions.
  • Switched Key type to using a Vec instead of a String.
  • Added Travis CI.

v0.1.1

26 Nov 14:39
Compare
Choose a tag to compare

Initial release.