Implement arbitrary X509 Extended Key Usage values
This commit is contained in:
parent
8d1abf5156
commit
53b868697a
|
|
@ -77,7 +77,7 @@ impl fmt::Display for KeyUsageOption {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone,Copy)]
|
#[derive(Clone)]
|
||||||
pub enum ExtKeyUsageOption {
|
pub enum ExtKeyUsageOption {
|
||||||
ServerAuth,
|
ServerAuth,
|
||||||
ClientAuth,
|
ClientAuth,
|
||||||
|
|
@ -90,6 +90,8 @@ pub enum ExtKeyUsageOption {
|
||||||
MsSgc,
|
MsSgc,
|
||||||
MsEfs,
|
MsEfs,
|
||||||
NsSgc,
|
NsSgc,
|
||||||
|
/// An arbitrary key usage by OID.
|
||||||
|
Other(String),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl fmt::Display for ExtKeyUsageOption {
|
impl fmt::Display for ExtKeyUsageOption {
|
||||||
|
|
@ -106,6 +108,7 @@ impl fmt::Display for ExtKeyUsageOption {
|
||||||
&ExtKeyUsageOption::MsSgc => "msSGC",
|
&ExtKeyUsageOption::MsSgc => "msSGC",
|
||||||
&ExtKeyUsageOption::MsEfs => "msEFS",
|
&ExtKeyUsageOption::MsEfs => "msEFS",
|
||||||
&ExtKeyUsageOption::NsSgc =>"nsSGC",
|
&ExtKeyUsageOption::NsSgc =>"nsSGC",
|
||||||
|
&ExtKeyUsageOption::Other(ref s) => &s[..],
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ use std::fs::File;
|
||||||
use crypto::hash::Type::{SHA256};
|
use crypto::hash::Type::{SHA256};
|
||||||
use x509::{X509, X509Generator};
|
use x509::{X509, X509Generator};
|
||||||
use x509::KeyUsage::{DigitalSignature, KeyEncipherment};
|
use x509::KeyUsage::{DigitalSignature, KeyEncipherment};
|
||||||
use x509::ExtKeyUsage::{ClientAuth, ServerAuth};
|
use x509::ExtKeyUsage::{self, ClientAuth, ServerAuth};
|
||||||
use nid::Nid;
|
use nid::Nid;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|
@ -17,7 +17,7 @@ fn test_cert_gen() {
|
||||||
.set_CN("test_me")
|
.set_CN("test_me")
|
||||||
.set_sign_hash(SHA256)
|
.set_sign_hash(SHA256)
|
||||||
.set_usage(&[DigitalSignature, KeyEncipherment])
|
.set_usage(&[DigitalSignature, KeyEncipherment])
|
||||||
.set_ext_usage(&[ClientAuth, ServerAuth]);
|
.set_ext_usage(&[ClientAuth, ServerAuth, ExtKeyUsage::Other("2.999".to_owned())]);
|
||||||
|
|
||||||
let (cert, pkey) = gen.generate().unwrap();
|
let (cert, pkey) = gen.generate().unwrap();
|
||||||
cert.write_pem(&mut io::sink()).unwrap();
|
cert.write_pem(&mut io::sink()).unwrap();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue