Commit 53b86869 authored by Jethro Beekman's avatar Jethro Beekman
Browse files

Implement arbitrary X509 Extended Key Usage values

parent 8d1abf51
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -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[..],
        })
    }
}
+2 −2
Original line number Diff line number Diff line
@@ -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();