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 2026Releases
latest 39-
0.5.219 May 2026 -
0.5.125 Feb 2026Release notes
Open source →Changed
- Block sizes no longer bounded by
crypto_common::BlockSizes(#2309) StreamCipherCoreWrapperis now bounded byblock_buffer::BlockSizesinstead ofcrypto_common::BlockSizes(#2309)- Bump
block-bufferdependency to v0.12 (#2309)
Fixed
Key:option in thestream_cipher_benchmacro (#2290)
- Block sizes no longer bounded by
-
0.5.004 Feb 2026 withdrawnRelease notes
Open source →Note: this version was yanked because v0.5.1 introduces breaking changes. Users should migrate to
cipherv0.5.1 andcrypto-commonv0.2.1 usingcargo update.Added
Changed
- Replaced
generic-arraywithhybrid-array(#1358) - Rename
BlockCipher*/BlockMode*(#1482)BlockEncrypt=>BlockCipherEncryptBlockDecrypt=>BlockCipherDecryptBlockEncryptMut=>BlockModeEncryptBlockDecryptMut=>BlockModeDecrypt
- Split
BlockBackendtraits into 4 specific traits: (#1636)BlockCipherEncBackendBlockCipherDecBackendBlockModeEncBackendBlockModeDecBackend
- Edition changed to 2024 and MSRV bumped to 1.85 (#1759)
- Use
block_buffer::ReadBufferinStreamCipherCoreWrapper(#1959) - Re-export of
crypto-commonmoved tocipher::common(#2237, #2260) crypto-commondependency bumped to v0.2 (#2276)blobbyrequirement bumped to v0.4 (#2147)inoutdependency bumped to v0.2.2 (#2149)
Fixed
- Bugs in
StreamCipherCoreWrappertrait implementations (#1421) - Seeking implementation in the stream cipher wrapper (#2052)
Removed
Release notes
Open source →Note: this version was yanked because v0.5.1 introduces breaking changes. Users should migrate to
cipherv0.5.1 andcrypto-commonv0.2.1 usingcargo update.Added
Changed
- Replaced
generic-arraywithhybrid-array(#1358) - Rename
BlockCipher*/BlockMode*(#1482)BlockEncrypt=>BlockCipherEncryptBlockDecrypt=>BlockCipherDecryptBlockEncryptMut=>BlockModeEncryptBlockDecryptMut=>BlockModeDecrypt
- Split
BlockBackendtraits into 4 specific traits: (#1636)BlockCipherEncBackendBlockCipherDecBackendBlockModeEncBackendBlockModeDecBackend
- Edition changed to 2024 and MSRV bumped to 1.85 (#1759)
- Use
block_buffer::ReadBufferinStreamCipherCoreWrapper(#1959) - Re-export of
crypto-commonmoved tocipher::common(#2237, #2260) crypto-commondependency bumped to v0.2 (#2276)blobbyrequirement bumped to v0.4 (#2147)inoutdependency bumped to v0.2.2 (#2149)
Fixed
- Bugs in
StreamCipherCoreWrappertrait implementations (#1421) - Seeking implementation in the stream cipher wrapper (#2052)
Removed
- Replaced
-
0.5.0-rc.802 Feb 2026 pre-releaseNothing published for this version
-
0.5.0-rc.701 Feb 2026 pre-releaseNothing published for this version
-
0.5.0-rc.624 Jan 2026 pre-releaseNothing published for this version
-
0.5.0-rc.520 Jan 2026 pre-releaseNothing published for this version
-
0.5.0-rc.419 Jan 2026 pre-releaseNothing published for this version
-
0.5.0-rc.327 Dec 2025 pre-releaseNothing published for this version
-
0.5.0-rc.205 Nov 2025 pre-releaseNothing published for this version
-
0.5.0-rc.102 Sep 2025 pre-releaseNothing published for this version
-
0.5.0-rc.030 May 2025 pre-releaseNothing published for this version
-
0.5.0-pre.822 Feb 2025 pre-releaseNothing published for this version
-
0.5.0-pre.714 Aug 2024 pre-releaseNothing published for this version
-
0.5.0-pre.626 Jul 2024 pre-releaseNothing published for this version
-
0.5.0-pre.526 Jul 2024 pre-releaseNothing published for this version
-
0.5.0-pre.404 Mar 2024 pre-releaseNothing published for this version
-
0.5.0-pre.301 Feb 2024 pre-releaseNothing published for this version
-
0.5.0-pre.210 Jan 2024 pre-releaseNothing published for this version
-
0.5.0-pre.106 Jan 2024 pre-releaseNothing published for this version
-
0.4.409 Mar 2023Release notes
Open source →Changed
- Move
ParBlocks/ParBlocksSizeUserto thecrypto-commoncrate (#1052)
Fixed
- Unsoundness triggered by zero block size (#1277)
- Move
-
0.4.322 Feb 2022 -
0.4.216 Feb 2022 withdrawnRelease notes
Open source →Fixed
- Rename
BlockDecryptMut::decrypt_padded_vectodecrypt_padded_vec_mutfor consistency with other methods (#941)
- Rename
-
0.4.116 Feb 2022 withdrawnRelease notes
Open source → -
0.4.010 Feb 2022Release notes
Open source →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)
-
0.3.028 Apr 2021Release notes
Open source →Added
- Encrypt/decrypt-only block cipher traits (#352)
- Re-export
blobbyfrom root (#435) - Block cipher trait blanket impls for refs (#441)
generate_keymethod toNew*trait (#513)
Changed
-
0.3.0-pre.528 Apr 2021 pre-release withdrawnNothing published for this version
-
0.3.0-pre.430 Dec 2020 pre-release withdrawnNothing published for this version
-
0.3.0-pre.330 Dec 2020 pre-release withdrawnNothing published for this version
-
0.3.0-pre.230 Dec 2020 pre-release withdrawnNothing published for this version
-
0.3.0-pre24 Nov 2020 pre-release withdrawnNothing published for this version
-
0.2.501 Nov 2020 -
0.2.401 Nov 2020 withdrawn -
0.2.301 Nov 2020 withdrawn -
0.2.201 Nov 2020 withdrawnRelease notes
Open source → -
0.2.116 Oct 2020Release notes
Open source → -
0.2.015 Oct 2020 withdrawn -
0.1.126 Jun 2015 withdrawnNothing published for this version
-
0.1.025 Jun 2015 withdrawn