Struct openssl::pkey::PKey [−][src]
pub struct PKey<T>(_, _);
Expand description
A public or private key.
Implementations
Creates a new PKey
containing an RSA key.
This corresponds to EVP_PKEY_assign_RSA
.
Creates a new PKey
containing a DSA key.
This corresponds to EVP_PKEY_assign_DSA
.
Creates a new PKey
containing a Diffie-Hellman key.
This corresponds to EVP_PKEY_assign_DH
.
Creates a new PKey
containing an elliptic curve key.
This corresponds to EVP_PKEY_assign_EC_KEY
.
Creates a new PKey
containing a CMAC key.
Requires OpenSSL 1.1.0 or newer.
Note
To compute CMAC values, use the sign
module.
Generates a new private Ed25519 key
Generates a new private Ed448 key
Generates a new private Ed25519 key
Generates a new private Ed448 key
Deserializes a private key from a PEM-encoded key type specific format.
This corresponds to PEM_read_bio_PrivateKey
.
Deserializes a private key from a PEM-encoded encrypted key type specific format.
This corresponds to PEM_read_bio_PrivateKey
.
Deserializes a private key from a PEM-encoded encrypted key type specific format.
The callback should fill the password into the provided buffer and return its length.
This corresponds to PEM_read_bio_PrivateKey
.
Decodes a DER-encoded private key.
This function will automatically attempt to detect the underlying key format, and supports the unencrypted PKCS#8 PrivateKeyInfo structures as well as key type specific formats.
This corresponds to d2i_AutoPrivateKey
.
Deserializes a DER-formatted PKCS#8 unencrypted private key.
This method is mainly for interoperability reasons. Encrypted keyfiles should be preferred.
Deserializes a DER-formatted PKCS#8 private key, using a callback to retrieve the password if the key is encrpyted.
The callback should copy the password into the provided buffer and return the number of bytes written.
Deserializes a DER-formatted PKCS#8 private key, using the supplied password if the key is encrypted.
Panics
Panics if passphrase
contains an embedded null.
pub fn private_key_from_raw_bytes(
bytes: &[u8],
key_type: Id
) -> Result<PKey<Private>, ErrorStack>
pub fn private_key_from_raw_bytes(
bytes: &[u8],
key_type: Id
) -> Result<PKey<Private>, ErrorStack>
Creates a private key from its raw byte representation
Algorithm types that support raw private keys are HMAC, X25519, ED25519, X448 or ED448
This corresponds to EVP_PKEY_new_raw_private_key
.
Decodes a PEM-encoded SubjectPublicKeyInfo structure.
The input should have a header of -----BEGIN PUBLIC KEY-----
.
This corresponds to PEM_read_bio_PUBKEY
.
Decodes a DER-encoded SubjectPublicKeyInfo structure.
This corresponds to d2i_PUBKEY
.
pub fn public_key_from_raw_bytes(
bytes: &[u8],
key_type: Id
) -> Result<PKey<Public>, ErrorStack>
pub fn public_key_from_raw_bytes(
bytes: &[u8],
key_type: Id
) -> Result<PKey<Public>, ErrorStack>
Creates a public key from its raw byte representation
Algorithm types that support raw public keys are X25519, ED25519, X448 or ED448
This corresponds to EVP_PKEY_new_raw_public_key
.
Methods from Deref<Target = PKeyRef<T>>
Returns a copy of the internal RSA key.
This corresponds to EVP_PKEY_get1_RSA
.
Returns a copy of the internal DSA key.
This corresponds to EVP_PKEY_get1_DSA
.
Returns a copy of the internal DH key.
This corresponds to EVP_PKEY_get1_DH
.
Returns a copy of the internal elliptic curve key.
This corresponds to EVP_PKEY_get1_EC_KEY
.
Returns the Id
that represents the type of this key.
This corresponds to EVP_PKEY_id
.
Returns the maximum size of a signature in bytes.
This corresponds to EVP_PKEY_size
.
Serializes the public key into a PEM-encoded SubjectPublicKeyInfo structure.
The output will have a header of -----BEGIN PUBLIC KEY-----
.
This corresponds to PEM_write_bio_PUBKEY
.
Serializes the public key into a DER-encoded SubjectPublicKeyInfo structure.
This corresponds to i2d_PUBKEY
.
Returns the size of the key.
This corresponds to the bit length of the modulus of an RSA key, and the bit length of the group order for an elliptic curve key, for example.
Compares the public component of this key with another.
Raw byte representation of a public key
This function only works for algorithms that support raw public keys. Currently this is: X25519, ED25519, X448 or ED448
This corresponds to EVP_PKEY_get_raw_public_key
.
Serializes the private key to a PEM-encoded PKCS#8 PrivateKeyInfo structure.
The output will have a header of -----BEGIN PRIVATE KEY-----
.
This corresponds to PEM_write_bio_PKCS8PrivateKey
.
pub fn private_key_to_pem_pkcs8_passphrase(
&self,
cipher: Cipher,
passphrase: &[u8]
) -> Result<Vec<u8>, ErrorStack>
pub fn private_key_to_pem_pkcs8_passphrase(
&self,
cipher: Cipher,
passphrase: &[u8]
) -> Result<Vec<u8>, ErrorStack>
Serializes the private key to a PEM-encoded PKCS#8 EncryptedPrivateKeyInfo structure.
The output will have a header of -----BEGIN ENCRYPTED PRIVATE KEY-----
.
This corresponds to PEM_write_bio_PKCS8PrivateKey
.
Serializes the private key to a DER-encoded key type specific format.
This corresponds to i2d_PrivateKey
.
Raw byte representation of a private key
This function only works for algorithms that support raw private keys. Currently this is: HMAC, X25519, ED25519, X448 or ED448
This corresponds to EVP_PKEY_get_raw_private_key
.
Trait Implementations
type Error = ErrorStack
type Error = ErrorStack
The type returned in the event of a conversion error.
type Error = ErrorStack
type Error = ErrorStack
The type returned in the event of a conversion error.
type Error = ErrorStack
type Error = ErrorStack
The type returned in the event of a conversion error.
type Error = ErrorStack
type Error = ErrorStack
The type returned in the event of a conversion error.
type Error = ErrorStack
type Error = ErrorStack
The type returned in the event of a conversion error.
type Error = ErrorStack
type Error = ErrorStack
The type returned in the event of a conversion error.
type Error = ErrorStack
type Error = ErrorStack
The type returned in the event of a conversion error.
type Error = ErrorStack
type Error = ErrorStack
The type returned in the event of a conversion error.
Auto Trait Implementations
impl<T> RefUnwindSafe for PKey<T> where
T: RefUnwindSafe,
impl<T> UnwindSafe for PKey<T> where
T: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more