Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

0.8.1 (2021-08-30)

Added

  • NEON implementation for aarch64 (#274)

0.8.0 (2021-08-29)

Added

  • SSE2 autodetection support (#270)

Changed

  • AVX2 performance improvements (#267, #267)
  • MSRV 1.51+ (#267)
  • Lock to zeroize <1.5 (#269)

Removed

  • xchacha feature: all XChaCha* types are now available by-default (#271)

0.7.3 (2021-08-27)

Changed

  • Improve AVX2 performance (#261)
  • Bump cpufeatures to v0.2 (#265)

0.7.2 (2021-07-20)

Changed

  • Pin zeroize dependency to v1.3 (#256)

0.7.1 (2021-04-29)

Added

  • hchacha feature (#234)

0.7.0 (2021-04-29) [YANKED]

Added

  • AVX2 detection; MSRV 1.49+ (#200, #212)
  • XChaCha8 and XChaCha12 (#215)

Changed

  • Full 64-bit counters (#217)
  • Bump cipher crate dependency to v0.3 release (#226)

Fixed

  • rng feature on big endian platforms (#202)
  • Stream-length overflow check (#216)

Removed

  • Clone impls on RNGs (#220)

0.6.0 (2020-10-16)

Changed

  • Rename Cipher to ChaCha (#177)
  • Replace block-cipher/stream-cipher with cipher crate (#177)

0.5.0 (2020-08-25)

Changed

  • Bump stream-cipher dependency to v0.7 (#161, #164)

0.4.3 (2020-06-11)

Changed

0.4.2 (2020-06-11)

Added

  • Documentation improvements (#149)
  • Key, Nonce, XNonce, and LegacyNonce type aliases (#147)

0.4.1 (2020-06-06)

Fixed

  • Links in documentation (#142)

0.4.0 (2020-06-06)

Changed

  • Upgrade to the stream-cipher v0.4 crate (#121, #138)

0.3.4 (2020-03-02)

Fixed

  • Avoid accidental alloc and std linking (#105)

0.3.3 (2020-01-18)

Changed

  • Replace macros with Rounds trait + generics (#100)

Fixed

  • Fix warnings when building with rng feature alone (#99)

0.3.2 (2020-01-17)

Added

  • CryptoRng marker on all ChaCha*Rng types (#91)

0.3.1 (2020-01-16)

Added

  • Parallelize AVX2 backend (#87)
  • Benchmark for ChaCha20Rng (#87)

Fixed

  • Fix broken buffering logic (#86)

0.3.0 (2020-01-15) [YANKED]

NOTE: This release was yanked due to a showstopper bug in the newly added buffering logic which when seeking in the keystream could result in plaintexts being clobbered with the keystream instead of XOR'd correctly.

The bug was addressed in v0.3.1 (#86).

Added

  • AVX2 accelerated implementation (#83)
  • ChaCha8 and ChaCha20 reduced round variants (#84)

Changed

  • Simplify portable implementation (#76)
  • Make 2018 edition crate; MSRV 1.34+ (#77)
  • Replace salsa20-core dependency with ctr-derived buffering (#81)

Removed

  • byteorder dependency (#80)

0.2.3 (2019-10-23)

Security

  • Ensure block counter < MAX_BLOCKS (#68)

0.2.2 (2019-10-22)

Added

  • SSE2 accelerated implementation (#61)

0.2.1 (2019-08-19)

Added

  • Add MAX_BLOCKS and BLOCK_SIZE constants (#47)

0.2.0 (2019-08-18)

Added

  • impl SyncStreamCipher (#39)
  • XChaCha20 (#36)
  • Support for 12-byte nonces ala RFC 8439 (#19)

Changed

  • Refactor around a ctr-like type (#44)
  • Extract and encapsulate Cipher type (#43)
  • Switch tests to use new_sync_test! (#42)
  • Refactor into ChaCha20 and ChaCha20Legacy (#25)

Fixed

  • Fix zeroize cargo feature (#21)
  • Fix broken Cargo feature attributes (#21)

0.1.0 (2019-06-24)

  • Initial release