PackageTrack
Sign in Get early access

cipher

Traits for describing block ciphers and stream ciphers

0.5.2 332M downloads/mo #334 most downloaded on crates.io RustCrypto/traits

What this package is like to depend on

Last release 3 months ago

19 May 2026

Release timing varies

gaps range from 2 weeks to 6 months

Nearly every release is documented

notes for 8 of 8 stable releases

14 versions withdrawn

withdrawn after publishing

11 years old

39 releases · first in 2015

11 releases in the last 12 months

see the full history below

Release timeline

39 releases · Jun 2015 to May 2026
2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 39
  1. 0.5.2 19 May 2026
    Release notes

    Added

    • Re-export of SetIvState (#2422)
    Open source →
    Release notes

    Added

    • Re-export of SetIvState (#2422)
    Open source →
  2. 0.5.1 25 Feb 2026
    Release notes

    Changed

    • Block sizes no longer bounded by crypto_common::BlockSizes (#2309)
    • StreamCipherCoreWrapper is now bounded by block_buffer::BlockSizes instead of crypto_common::BlockSizes (#2309)
    • Bump block-buffer dependency to v0.12 (#2309)

    Fixed

    • Key: option in the stream_cipher_bench macro (#2290)
    Open source →
  3. 0.5.0 04 Feb 2026 withdrawn
    Release notes

    Note: this version was yanked because v0.5.1 introduces breaking changes. Users should migrate to cipher v0.5.1 and crypto-common v0.2.1 using cargo update.

    Added

    • Traits for tweakable block ciphers (#1721)
    • Methods for writing keystream (#1907)

    Changed

    • Replaced generic-array with hybrid-array (#1358)
    • Rename BlockCipher*/BlockMode* (#1482)
      • BlockEncrypt => BlockCipherEncrypt
      • BlockDecrypt => BlockCipherDecrypt
      • BlockEncryptMut => BlockModeEncrypt
      • BlockDecryptMut => BlockModeDecrypt
    • Split BlockBackend traits into 4 specific traits: (#1636)
      • BlockCipherEncBackend
      • BlockCipherDecBackend
      • BlockModeEncBackend
      • BlockModeDecBackend
    • Edition changed to 2024 and MSRV bumped to 1.85 (#1759)
    • Use block_buffer::ReadBuffer in StreamCipherCoreWrapper (#1959)
    • Re-export of crypto-common moved to cipher::common (#2237, #2260)
    • crypto-common dependency bumped to v0.2 (#2276)
    • blobby requirement bumped to v0.4 (#2147)
    • inout dependency bumped to v0.2.2 (#2149)

    Fixed

    • Bugs in StreamCipherCoreWrapper trait implementations (#1421)
    • Seeking implementation in the stream cipher wrapper (#2052)

    Removed

    • std feature (#1691)
    • BlockCipherEncrypt::encrypt_padded* and BlockCipherDecrypt::decrypt_padded* methods. Users of the ECB mode should use the ecb crate instead. (#2245)
    • AsyncStreamCipher trait (#2280)
    Open source →
    Release notes

    Note: this version was yanked because v0.5.1 introduces breaking changes. Users should migrate to cipher v0.5.1 and crypto-common v0.2.1 using cargo update.

    Added

    • Traits for tweakable block ciphers (#1721)
    • Methods for writing keystream (#1907)

    Changed

    • Replaced generic-array with hybrid-array (#1358)
    • Rename BlockCipher*/BlockMode* (#1482)
      • BlockEncrypt => BlockCipherEncrypt
      • BlockDecrypt => BlockCipherDecrypt
      • BlockEncryptMut => BlockModeEncrypt
      • BlockDecryptMut => BlockModeDecrypt
    • Split BlockBackend traits into 4 specific traits: (#1636)
      • BlockCipherEncBackend
      • BlockCipherDecBackend
      • BlockModeEncBackend
      • BlockModeDecBackend
    • Edition changed to 2024 and MSRV bumped to 1.85 (#1759)
    • Use block_buffer::ReadBuffer in StreamCipherCoreWrapper (#1959)
    • Re-export of crypto-common moved to cipher::common (#2237, #2260)
    • crypto-common dependency bumped to v0.2 (#2276)
    • blobby requirement bumped to v0.4 (#2147)
    • inout dependency bumped to v0.2.2 (#2149)

    Fixed

    • Bugs in StreamCipherCoreWrapper trait implementations (#1421)
    • Seeking implementation in the stream cipher wrapper (#2052)

    Removed

    • std feature (#1691)
    • BlockCipherEncrypt::encrypt_padded* and BlockCipherDecrypt::decrypt_padded* methods. Users of the ECB mode should use the ecb-mode crate instead. (#2245)
    • AsyncStreamCipher trait (#2280)
    Open source →
  4. 0.5.0-rc.8 02 Feb 2026 pre-release

    Nothing published for this version

  5. 0.5.0-rc.7 01 Feb 2026 pre-release

    Nothing published for this version

  6. 0.5.0-rc.6 24 Jan 2026 pre-release

    Nothing published for this version

  7. 0.5.0-rc.5 20 Jan 2026 pre-release

    Nothing published for this version

  8. 0.5.0-rc.4 19 Jan 2026 pre-release

    Nothing published for this version

  9. 0.5.0-rc.3 27 Dec 2025 pre-release

    Nothing published for this version

  10. 0.5.0-rc.2 05 Nov 2025 pre-release

    Nothing published for this version

  11. 0.5.0-rc.1 02 Sep 2025 pre-release

    Nothing published for this version

  12. 0.5.0-rc.0 30 May 2025 pre-release

    Nothing published for this version

  13. 0.5.0-pre.8 22 Feb 2025 pre-release

    Nothing published for this version

  14. 0.5.0-pre.7 14 Aug 2024 pre-release

    Nothing published for this version

  15. 0.5.0-pre.6 26 Jul 2024 pre-release

    Nothing published for this version

  16. 0.5.0-pre.5 26 Jul 2024 pre-release

    Nothing published for this version

  17. 0.5.0-pre.4 04 Mar 2024 pre-release

    Nothing published for this version

  18. 0.5.0-pre.3 01 Feb 2024 pre-release

    Nothing published for this version

  19. 0.5.0-pre.2 10 Jan 2024 pre-release

    Nothing published for this version

  20. 0.5.0-pre.1 06 Jan 2024 pre-release

    Nothing published for this version

  21. 0.4.4 09 Mar 2023
    Release notes

    Changed

    • Move ParBlocks/ParBlocksSizeUser to the crypto-common crate (#1052)

    Fixed

    • Unsoundness triggered by zero block size (#1277)
    Open source →
  22. 0.4.3 22 Feb 2022
    Release notes

    Fixed

    • Do not enable the alloc feature by default (#953)
    Open source →
  23. 0.4.2 16 Feb 2022 withdrawn
    Release notes

    Fixed

    • Rename BlockDecryptMut::decrypt_padded_vec to decrypt_padded_vec_mut for consistency with other methods (#941)
    Open source →
  24. 0.4.1 16 Feb 2022 withdrawn
    Release notes

    Added

    • Allocating padded encrypt/decrypt (#936)

    Fixed

    • Minimal versions build (#940)
    Open source →
  25. 0.4.0 10 Feb 2022
    Release notes

    Changed

    • Major rework of traits. Core functionality of block and stream ciphers is defined using rank-2 closures with convenience methods built on top of it. Expose block-level trait for stream ciphers and add generic wrapper around it. The async stream cipher trait is defined as sub-trait of mutable block cipher traits. (#849)

    Added

    • Re-export rand_core (#683)
    Open source →
  26. 0.3.0 28 Apr 2021
    Release notes

    Added

    • Encrypt/decrypt-only block cipher traits (#352)
    • Re-export blobby from root (#435)
    • Block cipher trait blanket impls for refs (#441)
    • generate_key method to New* trait (#513)

    Changed

    • Consolidate error types (#373)
    • Change SeekNum impls to fit with the new BlockBuffer (#435)
    • Reorganize modules (#435)
    • Renamed new_var to new_from_slice(s) (#442)
    Open source →
  27. 0.3.0-pre.5 28 Apr 2021 pre-release withdrawn

    Nothing published for this version

  28. 0.3.0-pre.4 30 Dec 2020 pre-release withdrawn

    Nothing published for this version

  29. 0.3.0-pre.3 30 Dec 2020 pre-release withdrawn

    Nothing published for this version

  30. 0.3.0-pre.2 30 Dec 2020 pre-release withdrawn

    Nothing published for this version

  31. 0.3.0-pre 24 Nov 2020 pre-release withdrawn

    Nothing published for this version

  32. 0.2.5 01 Nov 2020
    Release notes

    Fixed

    • Nested macros used old deprecated names (#360)
    Open source →
  33. 0.2.4 01 Nov 2020 withdrawn
    Release notes

    Fixed

    • Macro expansion error (#358)
    Open source →
  34. 0.2.3 01 Nov 2020 withdrawn
    Release notes

    Fixed

    • Legacy macro wrappers (#356)
    Open source →
  35. 0.2.2 01 Nov 2020 withdrawn
    Release notes

    Added

    • BlockCipher::{encrypt_slice, decrypt_slice} methods (#351)

    Changed

    • Revamp macro names (#350)
    Open source →
  36. 0.2.1 16 Oct 2020
    Release notes

    Added

    • Re-export generic_array from toplevel (#343)

    Fixed

    • dev macro imports (#345)
    Open source →
  37. 0.2.0 15 Oct 2020 withdrawn
    Release notes

    Changed

    • Unify block-cipher and stream-cipher into cipher (#337)
    Open source →
  38. 0.1.1 26 Jun 2015 withdrawn

    Nothing published for this version

  39. 0.1.0 25 Jun 2015 withdrawn
    Release notes
    • Initial release
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive