#[non_exhaustive]pub enum PrivateKeyDer<'a> {
Pkcs1(PrivatePkcs1KeyDer<'a>),
Sec1(PrivateSec1KeyDer<'a>),
Pkcs8(PrivatePkcs8KeyDer<'a>),
}展开描述
一个 DER 编码的 X.509 私钥,可采用多种格式之一
更多信息请参见各变体的内部类型。
它可以加载多种类型的 PEM 编码私钥,并报告实际发现了哪些类型:
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(_)));变体 (Non-exhaustive)§
This enum is marked as non-exhaustive
非穷尽枚举未来可能添加新的变体。因此,在对非穷尽枚举的变体进行模式匹配时,必须额外增加一个通配符分支以涵盖未来的新变体。
Pkcs1(PrivatePkcs1KeyDer<'a>)
一份 RSA 私钥
Sec1(PrivateSec1KeyDer<'a>)
一份 Sec1 私钥
Pkcs8(PrivatePkcs8KeyDer<'a>)
一份 PKCS#8 私钥
实现§
Source§impl PrivateKeyDer<'_>
impl PrivateKeyDer<'_>
Sourcepub fn clone_key(&self) -> PrivateKeyDer<'static>
pub fn clone_key(&self) -> PrivateKeyDer<'static>
将该私钥克隆为一个 'static 值
Sourcepub fn secret_der(&self) -> &[u8] ⓘ
pub fn secret_der(&self) -> &[u8] ⓘ
产出该私钥 DER 编码后的字节