pub struct PKey<T>(_, _);
Expand description
A public or private key.
Implementations
sourceimpl<T> PKey<T>
impl<T> PKey<T>
sourcepub fn from_rsa(rsa: Rsa<T>) -> Result<PKey<T>, ErrorStack>
pub fn from_rsa(rsa: Rsa<T>) -> Result<PKey<T>, ErrorStack>
Creates a new PKey
containing an RSA key.
This corresponds to EVP_PKEY_assign_RSA
.
sourcepub fn from_dsa(dsa: Dsa<T>) -> Result<PKey<T>, ErrorStack>
pub fn from_dsa(dsa: Dsa<T>) -> Result<PKey<T>, ErrorStack>
Creates a new PKey
containing a DSA key.
This corresponds to EVP_PKEY_assign_DSA
.
sourcepub fn from_dh(dh: Dh<T>) -> Result<PKey<T>, ErrorStack>
pub fn from_dh(dh: Dh<T>) -> Result<PKey<T>, ErrorStack>
Creates a new PKey
containing a Diffie-Hellman key.
This corresponds to EVP_PKEY_assign_DH
.
sourcepub fn from_ec_key(ec_key: EcKey<T>) -> Result<PKey<T>, ErrorStack>
pub fn from_ec_key(ec_key: EcKey<T>) -> Result<PKey<T>, ErrorStack>
Creates a new PKey
containing an elliptic curve key.
This corresponds to EVP_PKEY_assign_EC_KEY
.
sourceimpl PKey<Private>
impl PKey<Private>
sourcepub fn cmac(cipher: &Cipher, key: &[u8]) -> Result<PKey<Private>, ErrorStack>
pub fn cmac(cipher: &Cipher, key: &[u8]) -> Result<PKey<Private>, ErrorStack>
Creates a new PKey
containing a CMAC key.
Requires OpenSSL 1.1.0 or newer.
Note
To compute CMAC values, use the sign
module.
sourcepub fn generate_x25519() -> Result<PKey<Private>, ErrorStack>
pub fn generate_x25519() -> Result<PKey<Private>, ErrorStack>
Generates a new private Ed25519 key
sourcepub fn generate_x448() -> Result<PKey<Private>, ErrorStack>
pub fn generate_x448() -> Result<PKey<Private>, ErrorStack>
Generates a new private Ed448 key
sourcepub fn generate_ed25519() -> Result<PKey<Private>, ErrorStack>
pub fn generate_ed25519() -> Result<PKey<Private>, ErrorStack>
Generates a new private Ed25519 key
sourcepub fn generate_ed448() -> Result<PKey<Private>, ErrorStack>
pub fn generate_ed448() -> Result<PKey<Private>, ErrorStack>
Generates a new private Ed448 key
sourcepub fn private_key_from_pem(pem: &[u8]) -> Result<PKey<Private>, ErrorStack>
pub fn private_key_from_pem(pem: &[u8]) -> Result<PKey<Private>, ErrorStack>
Deserializes a private key from a PEM-encoded key type specific format.
This corresponds to PEM_read_bio_PrivateKey
.
sourcepub fn private_key_from_pem_passphrase(
pem: &[u8],
passphrase: &[u8]
) -> Result<PKey<Private>, ErrorStack>
pub fn private_key_from_pem_passphrase(
pem: &[u8],
passphrase: &[u8]
) -> Result<PKey<Private>, ErrorStack>
Deserializes a private key from a PEM-encoded encrypted key type specific format.
This corresponds to PEM_read_bio_PrivateKey
.
sourcepub fn private_key_from_pem_callback<F>(
pem: &[u8],
callback: F
) -> Result<PKey<Private>, ErrorStack> where
F: FnOnce(&mut [u8]) -> Result<usize, ErrorStack>,
pub fn private_key_from_pem_callback<F>(
pem: &[u8],
callback: F
) -> Result<PKey<Private>, ErrorStack> where
F: FnOnce(&mut [u8]) -> Result<usize, ErrorStack>,
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
.
sourcepub fn private_key_from_der(der: &[u8]) -> Result<PKey<Private>, ErrorStack>
pub fn private_key_from_der(der: &[u8]) -> Result<PKey<Private>, ErrorStack>
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
.
sourcepub fn private_key_from_pkcs8(der: &[u8]) -> Result<PKey<Private>, ErrorStack>
pub fn private_key_from_pkcs8(der: &[u8]) -> Result<PKey<Private>, ErrorStack>
Deserializes a DER-formatted PKCS#8 unencrypted private key.
This method is mainly for interoperability reasons. Encrypted keyfiles should be preferred.
sourcepub fn private_key_from_pkcs8_callback<F>(
der: &[u8],
callback: F
) -> Result<PKey<Private>, ErrorStack> where
F: FnOnce(&mut [u8]) -> Result<usize, ErrorStack>,
pub fn private_key_from_pkcs8_callback<F>(
der: &[u8],
callback: F
) -> Result<PKey<Private>, ErrorStack> where
F: FnOnce(&mut [u8]) -> Result<usize, ErrorStack>,
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.
sourcepub fn private_key_from_pkcs8_passphrase(
der: &[u8],
passphrase: &[u8]
) -> Result<PKey<Private>, ErrorStack>
pub fn private_key_from_pkcs8_passphrase(
der: &[u8],
passphrase: &[u8]
) -> Result<PKey<Private>, ErrorStack>
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.
sourceimpl PKey<Public>
impl PKey<Public>
sourcepub fn public_key_from_pem(pem: &[u8]) -> Result<PKey<Public>, ErrorStack>
pub fn public_key_from_pem(pem: &[u8]) -> Result<PKey<Public>, ErrorStack>
Decodes a PEM-encoded SubjectPublicKeyInfo structure.
The input should have a header of -----BEGIN PUBLIC KEY-----
.
This corresponds to PEM_read_bio_PUBKEY
.
sourcepub fn public_key_from_der(der: &[u8]) -> Result<PKey<Public>, ErrorStack>
pub fn public_key_from_der(der: &[u8]) -> Result<PKey<Public>, ErrorStack>
Decodes a DER-encoded SubjectPublicKeyInfo structure.
This corresponds to d2i_PUBKEY
.
Methods from Deref<Target = PKeyRef<T>>
sourcepub fn rsa(&self) -> Result<Rsa<T>, ErrorStack>
pub fn rsa(&self) -> Result<Rsa<T>, ErrorStack>
Returns a copy of the internal RSA key.
This corresponds to EVP_PKEY_get1_RSA
.
sourcepub fn dsa(&self) -> Result<Dsa<T>, ErrorStack>
pub fn dsa(&self) -> Result<Dsa<T>, ErrorStack>
Returns a copy of the internal DSA key.
This corresponds to EVP_PKEY_get1_DSA
.
sourcepub fn dh(&self) -> Result<Dh<T>, ErrorStack>
pub fn dh(&self) -> Result<Dh<T>, ErrorStack>
Returns a copy of the internal DH key.
This corresponds to EVP_PKEY_get1_DH
.
sourcepub fn ec_key(&self) -> Result<EcKey<T>, ErrorStack>
pub fn ec_key(&self) -> Result<EcKey<T>, ErrorStack>
Returns a copy of the internal elliptic curve key.
This corresponds to EVP_PKEY_get1_EC_KEY
.
sourcepub fn id(&self) -> Id
pub fn id(&self) -> Id
Returns the Id
that represents the type of this key.
This corresponds to EVP_PKEY_id
.
sourcepub fn size(&self) -> usize
pub fn size(&self) -> usize
Returns the maximum size of a signature in bytes.
This corresponds to EVP_PKEY_size
.
sourcepub fn public_key_to_pem(&self) -> Result<Vec<u8>, ErrorStack>
pub fn public_key_to_pem(&self) -> Result<Vec<u8>, ErrorStack>
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
.
sourcepub fn public_key_to_der(&self) -> Result<Vec<u8>, ErrorStack>
pub fn public_key_to_der(&self) -> Result<Vec<u8>, ErrorStack>
Serializes the public key into a DER-encoded SubjectPublicKeyInfo structure.
This corresponds to i2d_PUBKEY
.
sourcepub fn private_key_to_pem_pkcs8(&self) -> Result<Vec<u8>, ErrorStack>
pub fn private_key_to_pem_pkcs8(&self) -> Result<Vec<u8>, ErrorStack>
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
.
sourcepub 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
.
sourcepub fn private_key_to_der(&self) -> Result<Vec<u8>, ErrorStack>
pub fn private_key_to_der(&self) -> Result<Vec<u8>, ErrorStack>
Serializes the private key to a DER-encoded key type specific format.
This corresponds to i2d_PrivateKey
.
Trait Implementations
sourceimpl<T> ForeignType for PKey<T>
impl<T> ForeignType for PKey<T>
sourceimpl<T> TryFrom<Dh<T>> for PKey<T>
impl<T> TryFrom<Dh<T>> for PKey<T>
type Error = ErrorStack
type Error = ErrorStack
The type returned in the event of a conversion error.
sourceimpl<T> TryFrom<Dsa<T>> for PKey<T>
impl<T> TryFrom<Dsa<T>> for PKey<T>
type Error = ErrorStack
type Error = ErrorStack
The type returned in the event of a conversion error.
sourceimpl<T> TryFrom<EcKey<T>> for PKey<T>
impl<T> TryFrom<EcKey<T>> for PKey<T>
type Error = ErrorStack
type Error = ErrorStack
The type returned in the event of a conversion error.
sourceimpl<T> TryFrom<PKey<T>> for EcKey<T>
impl<T> TryFrom<PKey<T>> for EcKey<T>
type Error = ErrorStack
type Error = ErrorStack
The type returned in the event of a conversion error.
sourceimpl<T> TryFrom<PKey<T>> for Rsa<T>
impl<T> TryFrom<PKey<T>> for Rsa<T>
type Error = ErrorStack
type Error = ErrorStack
The type returned in the event of a conversion error.
sourceimpl<T> TryFrom<PKey<T>> for Dsa<T>
impl<T> TryFrom<PKey<T>> for Dsa<T>
type Error = ErrorStack
type Error = ErrorStack
The type returned in the event of a conversion error.
sourceimpl<T> TryFrom<PKey<T>> for Dh<T>
impl<T> TryFrom<PKey<T>> for Dh<T>
type Error = ErrorStack
type Error = ErrorStack
The type returned in the event of a conversion error.
sourceimpl<T> TryFrom<Rsa<T>> for PKey<T>
impl<T> TryFrom<Rsa<T>> for PKey<T>
type Error = ErrorStack
type Error = ErrorStack
The type returned in the event of a conversion error.
impl<T> Send for PKey<T>
impl<T> Sync for PKey<T>
Auto Trait Implementations
impl<T> RefUnwindSafe for PKey<T> where
T: RefUnwindSafe,
impl<T> Unpin for PKey<T> where
T: Unpin,
impl<T> UnwindSafe for PKey<T> where
T: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more