pub struct KeyPair { /* private fields */ }
Expand description
A key pair used to sign certificates and CSRs
Note that ring, the underlying library to handle RSA keys
requires them to be in a special format, meaning that
openssl genrsa
doesn’t work. See ring’s documentation
for how to generate RSA keys in the wanted format
and conversion between the formats.
Implementations§
source§impl KeyPair
impl KeyPair
sourcepub fn from_der(der: &[u8]) -> Result<Self, RcgenError>
pub fn from_der(der: &[u8]) -> Result<Self, RcgenError>
Parses the key pair from the DER format
Equivalent to using the TryFrom
implementation.
sourcepub fn from_pem(pem_str: &str) -> Result<Self, RcgenError>
pub fn from_pem(pem_str: &str) -> Result<Self, RcgenError>
Parses the key pair from the ASCII PEM format
This constructor is only available if rcgen is built with the “pem” feature
sourcepub fn from_remote(
key_pair: Box<dyn RemoteKeyPair + Send + Sync>,
) -> Result<Self, RcgenError>
pub fn from_remote( key_pair: Box<dyn RemoteKeyPair + Send + Sync>, ) -> Result<Self, RcgenError>
Obtains the key pair from a raw public key and a remote private key
sourcepub fn from_pem_and_sign_algo(
pem_str: &str,
alg: &'static SignatureAlgorithm,
) -> Result<Self, RcgenError>
pub fn from_pem_and_sign_algo( pem_str: &str, alg: &'static SignatureAlgorithm, ) -> Result<Self, RcgenError>
Obtains the key pair from a DER formatted key
using the specified SignatureAlgorithm
Same as from_pem_and_sign_algo.
This constructor is only available if rcgen is built with the “pem” feature
sourcepub fn from_der_and_sign_algo(
pkcs8: &[u8],
alg: &'static SignatureAlgorithm,
) -> Result<Self, RcgenError>
pub fn from_der_and_sign_algo( pkcs8: &[u8], alg: &'static SignatureAlgorithm, ) -> Result<Self, RcgenError>
Obtains the key pair from a DER formatted key
using the specified SignatureAlgorithm
Usually, calling this function is not neccessary and you can just call
from_der
instead. That function will try to figure
out a fitting SignatureAlgorithm
for the given
key pair. However sometimes multiple signature algorithms fit for the
same der key. In that instance, you can use this function to precisely
specify the SignatureAlgorithm
.
source§impl KeyPair
impl KeyPair
sourcepub fn generate(alg: &'static SignatureAlgorithm) -> Result<Self, RcgenError>
pub fn generate(alg: &'static SignatureAlgorithm) -> Result<Self, RcgenError>
Generate a new random key pair for the specified signature algorithm
sourcepub fn public_key_raw(&self) -> &[u8] ⓘ
pub fn public_key_raw(&self) -> &[u8] ⓘ
Get the raw public key of this key pair
The key is in raw format, as how ring::signature::KeyPair::public_key
would output, and how ring::signature::UnparsedPublicKey::verify
would accept.
sourcepub fn is_compatible(&self, signature_algorithm: &SignatureAlgorithm) -> bool
pub fn is_compatible(&self, signature_algorithm: &SignatureAlgorithm) -> bool
Check if this key pair can be used with the given signature algorithm
sourcepub fn compatible_algs(
&self,
) -> impl Iterator<Item = &'static SignatureAlgorithm>
pub fn compatible_algs( &self, ) -> impl Iterator<Item = &'static SignatureAlgorithm>
Returns (possibly multiple) compatible SignatureAlgorithm
’s
that the key can be used with
sourcepub fn public_key_der(&self) -> Vec<u8>
pub fn public_key_der(&self) -> Vec<u8>
Return the key pair’s public key in DER format
The key is formatted according to the SubjectPublicKeyInfo struct of X.509. See RFC 5280 section 4.1.
sourcepub fn public_key_pem(&self) -> String
pub fn public_key_pem(&self) -> String
Return the key pair’s public key in PEM format
The returned string can be interpreted with openssl pkey --inform PEM -pubout -pubin -text
This function is only available if rcgen is built with the “pem” feature
sourcepub fn serialize_der(&self) -> Vec<u8>
pub fn serialize_der(&self) -> Vec<u8>
Serializes the key pair (including the private key) in PKCS#8 format in DER
Panics if called on a remote key pair.
sourcepub fn serialized_der(&self) -> &[u8] ⓘ
pub fn serialized_der(&self) -> &[u8] ⓘ
Returns a reference to the serialized key pair (including the private key) in PKCS#8 format in DER
Panics if called on a remote key pair.
sourcepub fn serialize_pem(&self) -> String
pub fn serialize_pem(&self) -> String
Serializes the key pair (including the private key) in PKCS#8 format in PEM
This function is only available if rcgen is built with the “pem” feature