| commit | aad84707571db55975af5a62841efed59951fd8c | [log] [tgz] |
|---|---|---|
| author | Android Build Coastguard Worker <[email protected]> | Tue May 21 23:14:26 2024 +0000 |
| committer | Android Build Coastguard Worker <[email protected]> | Tue May 21 23:14:26 2024 +0000 |
| tree | 924c69e6c6b18132ed705d0d793176824a7a0e68 | |
| parent | adcb4396dd6010ef63741a91d659a093d25f69c2 [diff] | |
| parent | 0b32da95415ee09e12b1484152eedd73736e586a [diff] |
Snap for 11869550 from 0b32da95415ee09e12b1484152eedd73736e586a to 24Q3-release Change-Id: I5e7cd37245ca371f59da1c7b5e0ebc2e342347fc
Pure Rust implementation of Public-Key Cryptography Standards (PKCS) #8: Private-Key Information Syntax Specification (RFC 5208).
PKCS#8 is a format for cryptographic private keys, often containing pairs of private and public keys.
You can identify a PKCS#8 private key encoded as PEM (i.e. text) by the following:
-----BEGIN PRIVATE KEY-----
PKCS#8 private keys can optionally be encrypted under a password using key derivation algorithms like PBKDF2 and scrypt, and encrypted with ciphers like AES-CBC. When a PKCS#8 private key has been encrypted, it starts with the following:
-----BEGIN ENCRYPTED PRIVATE KEY-----
PKCS#8 private keys can also be serialized in an ASN.1-based binary format. The PEM text encoding is a Base64 representation of this format.
This crate is implemented in an algorithm-agnostic manner with the goal of enabling PKCS#8 support for any algorithm.
That said, it has been tested for interoperability against keys generated by OpenSSL for the following algorithms:
id-ecPublicKey)id-Ed25519)id-rsaEncryption)id-X25519)Please open an issue if you encounter trouble using it with a particular algorithm, including the ones listed above or other algorithms.
This crate requires Rust 1.65 at a minimum.
We may change the MSRV in the future, but it will be accompanied by a minor version bump.
Licensed under either of:
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.