#[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<'a> PrivateKeyDer<'a>
impl<'a> PrivateKeyDer<'a>
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>
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