commit | c3600ed27b18618613afb561046db00e92d04207 | [log] [tgz] |
---|---|---|
author | Alice Wang <aliceywang@google.com> | Mon Nov 20 21:10:12 2023 +0000 |
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | Mon Nov 20 21:10:12 2023 +0000 |
tree | 820fbb9ea9a539f139b6f6d44bdaa9a58e9a1999 | |
parent | 8d651d09249be3146bc4105c5569d2c27e8dd5f4 [diff] | |
parent | 7275ed4f3d917367faa9c8f42f87d54221e4c1b4 [diff] |
Make libpkcs8_nostd visible for //packages/modules/Virtualization am: 29e2d659b4 am: 81b63a83ee am: 7275ed4f3d Original change: https://android-review.googlesource.com/c/platform/external/rust/crates/pkcs8/+/2837830 Change-Id: If62e3d514b3ba3519f62fc6c5e42ee9618366eeb Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
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.57 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.