pkcs8
Pure Rust implementation of Public-Key Cryptography Standards (PKCS) #8: Private-Key Information Syntax Specification (RFC 5208), with additional support for PKCS#8v2 asymmetric key packages (RFC 5958)
0.11.0
376M downloads/mo
#303 most downloaded on crates.io
RustCrypto/formats
What this package is like to depend on
Last release 3 months ago
27 Apr 2026
Ships fairly regularly
a new release about every 2 months
Nearly every release is documented
notes for 26 of 26 stable releases
8 versions withdrawn
withdrawn after publishing
6 years old
51 releases · first in 2020
7 releases in the last 12 months
see the full history below
Release timeline
51 releases · Jun 2020 to Apr 2026Releases
latest 51-
0.11.027 Apr 2026Release notes
Open source →Added
- Custom error types support to the Decode and DecodeValue traits (#1055)
- PrivateKeyInfoRef / PrivateKeyInfoOwned type aliases (#1483)
- Implement core::error::Error trait for Error (#2302)
- Implement DecodePrivateKey/EncodePrivateKey traits for PrivateKeyInfoOwned (#2306)
- KeyError enum (#2305)
- ctutils feature (#2308)
- getrandom feature (#2311)
Changed
- Eagerly decode PEM labels for better error messages (#1163)
- Use pbes2::Parameters::generate_recommended (#1430, #2296)
- Make PrivateKeyInfo generic around its backing storage (#1483)
- Bump rand_core to 0.9 (#1658)
- Use 2024 edition; bump MSRV to 1.85 (#1670)
- Bump rand_core to v0.10 (#2198)
- Error::KeyMalformed now wraps an inner KeyError for providing more detail (#2305)
- Use TryCryptoRng instead of CryptoRng (#2309)
Removed
- subtle feature (#2308)
Release notes
Open source →Added
- Custom error types support to the
DecodeandDecodeValuetraits (#1055) PrivateKeyInfoRef/PrivateKeyInfoOwnedtype aliases (#1483)- Implement
core::error::Errortrait forError(#2302) - Implement
Decode/EncodePrivateKeytrait forPrivateKeyInfoOwned(#2306) KeyErrorenum (#2305)ctutilsfeature (#2308)getrandomfeature (#2311)
Changed
- Eagerly decode PEM labels for better error messages (#1163)
- Use
pbes2::Parameters::generate_recommended(#1430, #2296) - Make
PrivateKeyInfogeneric around its backing storage (#1483) - Bump
rand_coreto0.9(#1658) - Use 2024 edition; bump MSRV to 1.85 (#1670)
- Bump
rand_coreto v0.10 (#2198) Error::KeyMalformednow wraps an innerKeyErrorfor providing more detail (#2305)- Use
TryCryptoRnginstead ofCryptoRng(#2309)
Removed
subtlefeature (#2308)
-
0.11.0-rc.1227 Apr 2026 pre-releaseRelease notes
Open source →This is a true "release candidate" in that we're just checking for any
final showstoppers before cutting a final release -
0.11.0-rc.1111 Feb 2026 pre-releaseNothing published for this version
-
0.11.0-rc.1025 Jan 2026 pre-releaseNothing published for this version
-
0.11.0-rc.919 Jan 2026 pre-releaseNothing published for this version
-
0.11.0-rc.806 Nov 2025 pre-releaseNothing published for this version
-
0.11.0-rc.715 Sep 2025 pre-releaseNothing published for this version
-
0.11.0-rc.610 Jul 2025 pre-releaseNothing published for this version
-
0.11.0-rc.503 Jul 2025 pre-releaseNothing published for this version
-
0.11.0-rc.430 May 2025 pre-releaseNothing published for this version
-
0.11.0-rc.323 Apr 2025 pre-releaseNothing published for this version
-
0.11.0-rc.215 Feb 2025 pre-releaseNothing published for this version
-
0.11.0-rc.106 Sep 2024 pre-releaseNothing published for this version
-
0.11.0-rc.026 Jul 2024 pre-releaseNothing published for this version
-
0.11.0-pre.008 Jan 2024 pre-releaseNothing published for this version
-
0.10.205 Apr 2023 -
0.10.105 Mar 2023 -
0.10.027 Feb 2023 withdrawn -
0.9.008 May 2022 -
0.9.0-pre.306 May 2022 pre-releaseNothing published for this version
-
0.9.0-pre.205 May 2022 pre-releaseNothing published for this version
-
0.9.0-pre.114 Mar 2022 pre-releaseNothing published for this version
-
0.8.016 Nov 2021Release notes
Open source →Added
- Re-export
spkicrate (#210)
Changed
- Replace usages of
expectwith fallible methods (#108) - Impl
From*Key/To*Keytraits onDocumenttypes (#110) - Rename
From/ToPrivateKey=>DecodePrivateKey/EncodePrivateKey(#121) - Rust 2021 edition upgrade; MSRV 1.56 (#136)
- Use
der::Documentto impl*PrivateKeyDocument(#140) - Rename
Error::Crypto=>Error::EncryptedPrivateKey(#213, #214) - Bump
derdependency to v0.5 (#222) - Bump
spkidependency to v0.5 (#223) - Bump
pkcs5dependency to v0.4 (#224) - Replace
from_pkcs8_private_key_infowithTryFrom(#230)
Removed
- Re-export
-
0.7.614 Sep 2021Release notes
Open source →Added
3desanddes-insecurefeaturessha1feature- Support for AES-192-CBC
Changed
- Moved to
formatsrepo (#2)
-
0.7.526 Jul 2021Release notes
Open source →Added
- Support for customizing PEM
LineEnding
Changed
- Bump
pem-rfc7468dependency to v0.2
- Support for customizing PEM
-
0.7.425 Jul 2021 -
0.7.324 Jul 2021 -
0.7.220 Jul 2021 -
0.7.120 Jul 2021 -
0.7.008 Jun 2021Release notes
Open source →Added
- ASN.1 error improvements
Changed
- Merge
OneAsymmetricKeyintoPrivateKeyInfo - Use scrypt as the default PBES2 KDF
- Return
Result(s) when encoding - Bump
derto v0.4 - Bump
spkito v0.4 - Bump
pkcs5to v0.3
-
0.6.125 May 2021 -
0.6.022 Mar 2021 withdrawnRelease notes
Open source →Changed
- Bump
derdependency to v0.3 - Bump
spkidependency to v0.3 - Bump
pkcs5dependency to v0.2
- Bump
-
0.5.517 Mar 2021 -
0.5.424 Feb 2021 -
0.5.323 Feb 2021Release notes
Open source →Added
- Support for decrypting/encrypting
EncryptedPrivateKeyInfo - PEM support for
EncryptedPrivateKeyInfo Error::Cryptovariant
- Support for decrypting/encrypting
-
0.5.220 Feb 2021 -
0.5.119 Feb 2021 withdrawn -
0.5.017 Feb 2021 withdrawnRelease notes
Open source →Added
- Initial
EncryptedPrivateKeyInfosupport
Changed
- Extract SPKI-related types into the
spkicrate
- Initial
-
0.4.101 Feb 2021 -
0.4.026 Jan 2021 withdrawnRelease notes
Open source →Changed
- Bump
dercrate dependency to v0.2 - Use
base64ctv0.1 for PEM encoding
- Bump
-
0.4.0-pre11 Jan 2021 pre-release withdrawnNothing published for this version
-
0.3.322 Dec 2020 -
0.3.217 Dec 2020 -
0.3.116 Dec 2020 -
0.3.016 Dec 2020 withdrawn -
0.2.214 Dec 2020 -
0.2.114 Dec 2020 -
0.2.014 Dec 2020Release notes
Open source →Added
- File writing methods for public/private keys
- Methods for loading
*Documenttypes from files - DER encoding support
- PEM encoding support
ToPrivateKey/ToPublicKeytraits
Changed
Errorenum- Rename
load_*_filemethods toread_*_file
-
0.1.106 Dec 2020 -
0.1.005 Dec 2020 -
0.0.012 Jun 2020 withdrawnNothing published for this version