pub struct Identity { /* private fields */ }Expand description
Certificate with its private key, see the module docs.
Implementations§
Source§impl Identity
impl Identity
Sourcepub fn from_der(
certificates: &[&[u8]],
private_key: &[u8],
) -> Result<Identity, Error>
pub fn from_der( certificates: &[&[u8]], private_key: &[u8], ) -> Result<Identity, Error>
Loads a leaf-first DER certificate list and an unencrypted PKCS#8 private key.
§Errors
Rejects empty chains, invalid certificates/keys, mismatched keys and unsupported key
algorithms. On the rustls backend, install a provider or enable rustls-ring.
Sourcepub fn from_pem(
certificates: &[u8],
private_key: &[u8],
) -> Result<Identity, Error>
pub fn from_pem( certificates: &[u8], private_key: &[u8], ) -> Result<Identity, Error>
Loads PEM certificates and one unencrypted PRIVATE KEY (PKCS#8) block.
The two slices may reference the same combined PEM document.
§Errors
See Self::from_der; malformed PEM or multiple private keys are rejected.
Sourcepub fn from_pkcs12(der: &[u8], password: &str) -> Result<Identity, Error>
pub fn from_pkcs12(der: &[u8], password: &str) -> Result<Identity, Error>
Loads an identity from a DER encoded PKCS#12 archive.
§Errors
Error::InvalidDer if the input is not a PKCS#12 archive or a certificate is not valid
DER;
Error::InvalidIdentity if the archive cannot be decrypted with password or has no
certificate/private key (on Windows also for malformed archive contents);
Error::Unsupported outside Windows unless Unix and openssl are enabled.
Sourcepub fn from_store(
location: StoreLocation,
store: &str,
select: &StoreSelector,
) -> Result<Identity, Error>
pub fn from_store( location: StoreLocation, store: &str, select: &StoreSelector, ) -> Result<Identity, Error>
Loads an identity from a Windows system certificate store (Windows only).
§Errors
Error::NotFound if the store or a matching certificate is not found,
Error::InvalidIdentity if it has no accessible private key,
Error::Unsupported on non-Windows platforms.
Sourcepub fn cert(&self) -> &Certificate
pub fn cert(&self) -> &Certificate
Leaf certificate.
Sourcepub fn chain(&self) -> &[Certificate]
pub fn chain(&self) -> &[Certificate]
Additional certificates, in input order or selected by the native chain engine.
See Identity::ordered_chain for the chain to present.
Sourcepub fn ordered_chain(
&self,
include_root: bool,
) -> Result<Vec<Certificate>, Error>
pub fn ordered_chain( &self, include_root: bool, ) -> Result<Vec<Certificate>, Error>
Chain to present after the leaf: the archive certificates ordered from the leaf’s issuer upwards.
The self-signed root is appended only if include_root is set. Issuers must match the
certificate’s issuer metadata and verify its signature; unrelated certificates are
dropped with a warning and a self-signed leaf gets no chain.
§Errors
Certificate decoding errors or Error::Backend when the selected crypto provider
is unavailable. Unsupported signatures cannot establish an issuer relationship.
Sourcepub fn private_key(&self) -> &PrivateKey
pub fn private_key(&self) -> &PrivateKey
Portable signing key; native keys need not be exportable.
Sourcepub fn private_key_pkcs8_der(&self) -> &[u8] ⓘ
pub fn private_key_pkcs8_der(&self) -> &[u8] ⓘ
PKCS#8 DER private key (non-Windows compatibility accessor). Never log it.