diff options
| author | Jethro Beekman <[email protected]> | 2015-06-30 22:25:00 -0700 |
|---|---|---|
| committer | Jethro Beekman <[email protected]> | 2015-07-01 00:18:45 -0700 |
| commit | 53b868697a754229ba457908f29af5e8fd83404a (patch) | |
| tree | 31de85bb9b56383dbbf814bec16625ff70839917 /openssl/src | |
| parent | Implement "extensions" field in X509generator, and change existing extensions... (diff) | |
| download | rust-openssl-53b868697a754229ba457908f29af5e8fd83404a.tar.xz rust-openssl-53b868697a754229ba457908f29af5e8fd83404a.zip | |
Implement arbitrary X509 Extended Key Usage values
Diffstat (limited to 'openssl/src')
| -rw-r--r-- | openssl/src/x509/extension.rs | 5 | ||||
| -rw-r--r-- | openssl/src/x509/tests.rs | 4 |
2 files changed, 6 insertions, 3 deletions
diff --git a/openssl/src/x509/extension.rs b/openssl/src/x509/extension.rs index 4f8a3c3b..66b218ad 100644 --- a/openssl/src/x509/extension.rs +++ b/openssl/src/x509/extension.rs @@ -77,7 +77,7 @@ impl fmt::Display for KeyUsageOption { } } -#[derive(Clone,Copy)] +#[derive(Clone)] pub enum ExtKeyUsageOption { ServerAuth, ClientAuth, @@ -90,6 +90,8 @@ pub enum ExtKeyUsageOption { MsSgc, MsEfs, NsSgc, + /// An arbitrary key usage by OID. + Other(String), } impl fmt::Display for ExtKeyUsageOption { @@ -106,6 +108,7 @@ impl fmt::Display for ExtKeyUsageOption { &ExtKeyUsageOption::MsSgc => "msSGC", &ExtKeyUsageOption::MsEfs => "msEFS", &ExtKeyUsageOption::NsSgc =>"nsSGC", + &ExtKeyUsageOption::Other(ref s) => &s[..], }) } } diff --git a/openssl/src/x509/tests.rs b/openssl/src/x509/tests.rs index ca9ce68c..66dc33d3 100644 --- a/openssl/src/x509/tests.rs +++ b/openssl/src/x509/tests.rs @@ -6,7 +6,7 @@ use std::fs::File; use crypto::hash::Type::{SHA256}; use x509::{X509, X509Generator}; use x509::KeyUsage::{DigitalSignature, KeyEncipherment}; -use x509::ExtKeyUsage::{ClientAuth, ServerAuth}; +use x509::ExtKeyUsage::{self, ClientAuth, ServerAuth}; use nid::Nid; #[test] @@ -17,7 +17,7 @@ fn test_cert_gen() { .set_CN("test_me") .set_sign_hash(SHA256) .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(); cert.write_pem(&mut io::sink()).unwrap(); |