#[non_exhaustive]pub enum PrivateKeyDer<'a> {
Pkcs1(PrivatePkcs1KeyDer<'a>),
Sec1(PrivateSec1KeyDer<'a>),
Pkcs8(PrivatePkcs8KeyDer<'a>),
}Expand description
A DER-encoded X.509 private key, in one of several formats
See variant inner types for more detailed information.
This can load several types of PEM-encoded private key, and then reveal which types were found:
use rustls_pki_types::{PrivateKeyDer, pem::PemObject};
// load from a PEM file
let pkcs8 = PrivateKeyDer::from_pem_file("tests/data/nistp256key.pkcs8.pem").unwrap();
let pkcs1 = PrivateKeyDer::from_pem_file("tests/data/rsa1024.pkcs1.pem").unwrap();
let sec1 = PrivateKeyDer::from_pem_file("tests/data/nistp256key.pem").unwrap();
assert!(matches!(pkcs8, PrivateKeyDer::Pkcs8(_)));
assert!(matches!(pkcs1, PrivateKeyDer::Pkcs1(_)));
assert!(matches!(sec1, PrivateKeyDer::Sec1(_)));Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Pkcs1(PrivatePkcs1KeyDer<'a>)
An RSA private key
Sec1(PrivateSec1KeyDer<'a>)
A Sec1 private key
Pkcs8(PrivatePkcs8KeyDer<'a>)
A PKCS#8 private key
Implementations§
Source§impl PrivateKeyDer<'_>
impl PrivateKeyDer<'_>
Sourcepub fn clone_key(&self) -> PrivateKeyDer<'static>
Available on crate feature alloc only.
pub fn clone_key(&self) -> PrivateKeyDer<'static>
alloc only.Clone the private key to a 'static value
Sourcepub fn secret_der(&self) -> &[u8] ⓘ
pub fn secret_der(&self) -> &[u8] ⓘ
Yield the DER-encoded bytes of the private key
Trait Implementations§
Source§impl<'a> Debug for PrivateKeyDer<'a>
impl<'a> Debug for PrivateKeyDer<'a>
Source§impl<'a> From<PrivatePkcs1KeyDer<'a>> for PrivateKeyDer<'a>
impl<'a> From<PrivatePkcs1KeyDer<'a>> for PrivateKeyDer<'a>
Source§fn from(key: PrivatePkcs1KeyDer<'a>) -> Self
fn from(key: PrivatePkcs1KeyDer<'a>) -> Self
Converts to this type from the input type.
Source§impl<'a> From<PrivatePkcs8KeyDer<'a>> for PrivateKeyDer<'a>
impl<'a> From<PrivatePkcs8KeyDer<'a>> for PrivateKeyDer<'a>
Source§fn from(key: PrivatePkcs8KeyDer<'a>) -> Self
fn from(key: PrivatePkcs8KeyDer<'a>) -> Self
Converts to this type from the input type.
Source§impl<'a> From<PrivateSec1KeyDer<'a>> for PrivateKeyDer<'a>
impl<'a> From<PrivateSec1KeyDer<'a>> for PrivateKeyDer<'a>
Source§fn from(key: PrivateSec1KeyDer<'a>) -> Self
fn from(key: PrivateSec1KeyDer<'a>) -> Self
Converts to this type from the input type.
Source§impl<'a> PartialEq for PrivateKeyDer<'a>
impl<'a> PartialEq for PrivateKeyDer<'a>
Source§impl PemObject for PrivateKeyDer<'static>
Available on crate feature alloc only.
impl PemObject for PrivateKeyDer<'static>
Available on crate feature
alloc only.Source§fn from_pem(kind: SectionKind, value: Vec<u8>) -> Option<Self>
fn from_pem(kind: SectionKind, value: Vec<u8>) -> Option<Self>
Conversion from a PEM
SectionKind and body data. Read moreSource§fn from_pem_slice(pem: &[u8]) -> Result<Self, Error>
fn from_pem_slice(pem: &[u8]) -> Result<Self, Error>
Decode the first section of this type from PEM contained in
a byte slice. Read more
Source§fn pem_slice_iter(pem: &[u8]) -> SliceIter<'_, Self> ⓘ
fn pem_slice_iter(pem: &[u8]) -> SliceIter<'_, Self> ⓘ
Iterate over all sections of this type from PEM contained in
a byte slice.
Source§fn from_pem_file(file_name: impl AsRef<Path>) -> Result<Self, Error>
fn from_pem_file(file_name: impl AsRef<Path>) -> Result<Self, Error>
Available on crate feature
std only.Decode the first section of this type from the PEM contents of the named file. Read more
Source§fn pem_file_iter(
file_name: impl AsRef<Path>,
) -> Result<ReadIter<BufReader<File>, Self>, Error>
fn pem_file_iter( file_name: impl AsRef<Path>, ) -> Result<ReadIter<BufReader<File>, Self>, Error>
Available on crate feature
std only.Iterate over all sections of this type from the PEM contents of the named file. Read more
Source§impl<'a> TryFrom<&'a [u8]> for PrivateKeyDer<'a>
impl<'a> TryFrom<&'a [u8]> for PrivateKeyDer<'a>
Source§impl Zeroize for PrivateKeyDer<'static>
Available on crate feature alloc only.
impl Zeroize for PrivateKeyDer<'static>
Available on crate feature
alloc only.impl<'a> Eq for PrivateKeyDer<'a>
impl<'a> StructuralPartialEq for PrivateKeyDer<'a>
Auto Trait Implementations§
impl<'a> Freeze for PrivateKeyDer<'a>
impl<'a> RefUnwindSafe for PrivateKeyDer<'a>
impl<'a> Send for PrivateKeyDer<'a>
impl<'a> Sync for PrivateKeyDer<'a>
impl<'a> Unpin for PrivateKeyDer<'a>
impl<'a> UnwindSafe for PrivateKeyDer<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 32 bytes
Size for each variant:
Pkcs1: 24 bytesSec1: 24 bytesPkcs8: 24 bytes