Struct rustls::PrivateKey
source · pub struct PrivateKey(pub Vec<u8>);
Expand description
This type contains a private key by value.
The private key must be DER-encoded ASN.1 in either PKCS#8, PKCS#1, or Sec1 format.
A common format for storing private keys is
PEM.
PEM private keys are commonly stored in files with a .pem
or .key
suffix, and look like this:
-----BEGIN PRIVATE KEY-----
<base64-encoded private key content>
-----END PRIVATE KEY-----
The rustls-pemfile
crate can be used
to parse PEM files. The rcgen
can be used to generate
certificates and private keys.
Examples
Creating a PrivateKey
from a PEM file containing a PKCS8-encoded private key using the rustls_pemfile
crate:
use std::fs::File;
use std::io::BufReader;
use rustls::PrivateKey;
fn load_private_key_from_file(path: &str) -> Result<PrivateKey, Box<dyn std::error::Error>> {
let file = File::open(&path)?;
let mut reader = BufReader::new(file);
let mut keys = rustls_pemfile::pkcs8_private_keys(&mut reader)?;
match keys.len() {
0 => Err(format!("No PKCS8-encoded private key found in {path}").into()),
1 => Ok(PrivateKey(keys.remove(0))),
_ => Err(format!("More than one PKCS8-encoded private key found in {path}").into()),
}
}
Tuple Fields§
§0: Vec<u8>
Trait Implementations§
source§impl Clone for PrivateKey
impl Clone for PrivateKey
source§fn clone(&self) -> PrivateKey
fn clone(&self) -> PrivateKey
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for PrivateKey
impl Debug for PrivateKey
source§impl PartialEq<PrivateKey> for PrivateKey
impl PartialEq<PrivateKey> for PrivateKey
source§fn eq(&self, other: &PrivateKey) -> bool
fn eq(&self, other: &PrivateKey) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.