aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven Fackler <[email protected]>2015-07-01 03:18:07 -0400
committerSteven Fackler <[email protected]>2015-07-01 03:18:07 -0400
commit2a4d7165f4107eaf839d0b63e3b59d710ef26728 (patch)
tree879cc0ed1bcb1a095e975e1249b0fe4195fc91b9
parentMore syntax fixes (diff)
parentAdd a test that checks whether 3 known subject attributes can be retrieved by... (diff)
downloadrust-openssl-2a4d7165f4107eaf839d0b63e3b59d710ef26728.tar.xz
rust-openssl-2a4d7165f4107eaf839d0b63e3b59d710ef26728.zip
Merge pull request #232 from jethrogb/topic/fix_nid
Fix NID definitions to match OpenSSL.
-rw-r--r--openssl/src/nid.rs7
-rw-r--r--openssl/src/x509/tests.rs29
-rw-r--r--openssl/test/nid_test_cert.pem12
3 files changed, 46 insertions, 2 deletions
diff --git a/openssl/src/nid.rs b/openssl/src/nid.rs
index 08424ae8..c5b9e277 100644
--- a/openssl/src/nid.rs
+++ b/openssl/src/nid.rs
@@ -37,6 +37,7 @@ pub enum Nid {
DES_EDE,
DES_EDE3,
IDEA_CBC,
+ IDEA_CFB,
IDEA_ECB,
RC2_CBC,
RC2_ECB,
@@ -55,6 +56,7 @@ pub enum Nid {
MessageDigest,
SigningTime,
CounterSignature,
+ ChallengePassword,
UnstructuredAddress,
ExtendedCertificateAttributes,
Netscape,
@@ -93,6 +95,7 @@ pub enum Nid {
AuthorityKeyIdentifier,
BF_CBC,
BF_ECB,
+ BF_CFB,
BF_OFB,
MDC2,
RSA_MDC2,
@@ -117,7 +120,8 @@ pub enum Nid {
RSA_SHA1_2,
DSA,
RIPEMD160,
- RSA_RIPEMD160,
+ /* 118 missing */
+ RSA_RIPEMD160=119,
RC5_CBC,
RC5_ECB,
RC5_CFB,
@@ -142,7 +146,6 @@ pub enum Nid {
CRLReason,
InvalidityDate,
SXNetID,
- Pkcs12,
PBE_SHA1_RC4_128,
PBE_SHA1_RC4_40,
PBE_SHA1_3DES,
diff --git a/openssl/src/x509/tests.rs b/openssl/src/x509/tests.rs
index 6d95b966..4e1c4f15 100644
--- a/openssl/src/x509/tests.rs
+++ b/openssl/src/x509/tests.rs
@@ -69,3 +69,32 @@ fn test_subject_read_cn() {
assert_eq!(&cn as &str, "test_cert")
}
+
+#[test]
+fn test_nid_values() {
+ let cert_path = Path::new("test/nid_test_cert.pem");
+ let mut file = File::open(&cert_path)
+ .ok()
+ .expect("Failed to open `test/nid_test_cert.pem`");
+
+ let cert = X509::from_pem(&mut file).ok().expect("Failed to load PEM");
+ let subject = cert.subject_name();
+
+ let cn = match subject.text_by_nid(Nid::CN) {
+ Some(x) => x,
+ None => panic!("Failed to read CN from cert")
+ };
+ assert_eq!(&cn as &str, "example.com");
+
+ let email = match subject.text_by_nid(Nid::Email) {
+ Some(x) => x,
+ None => panic!("Failed to read subject email address from cert")
+ };
+ assert_eq!(&email as &str, "[email protected]");
+
+ let friendly = match subject.text_by_nid(Nid::FriendlyName) {
+ Some(x) => x,
+ None => panic!("Failed to read subject friendly name from cert")
+ };
+ assert_eq!(&friendly as &str, "Example");
+}
diff --git a/openssl/test/nid_test_cert.pem b/openssl/test/nid_test_cert.pem
new file mode 100644
index 00000000..6f17e734
--- /dev/null
+++ b/openssl/test/nid_test_cert.pem
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIB1DCCAX6gAwIBAgIJAMzXWZGWHleWMA0GCSqGSIb3DQEBCwUAMFYxHzAdBgkq
+hkiG9w0BCQEWEHRlc3RAZXhhbXBsZS5jb20xFDASBgNVBAMMC2V4YW1wbGUuY29t
+MR0wGwYJKoZIhvcNAQkUHg4ARQB4AGEAbQBwAGwAZTAeFw0xNTA3MDEwNjQ3NDRa
+Fw0xNTA3MzEwNjQ3NDRaMFYxHzAdBgkqhkiG9w0BCQEWEHRlc3RAZXhhbXBsZS5j
+b20xFDASBgNVBAMMC2V4YW1wbGUuY29tMR0wGwYJKoZIhvcNAQkUHg4ARQB4AGEA
+bQBwAGwAZTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQCmejzp4+o35FD0hAnx2trL
+08h07X5jZca9DgZH35hWXPh7fMucLt/IPXIRnz2zKEa/Mo6D2V/fx03Mqo0epid7
+AgMBAAGjLzAtMB0GA1UdDgQWBBRQa57tXz3rZNRz+fTbo3w3jQJMBTAMBgNVHRME
+BTADAQH/MA0GCSqGSIb3DQEBCwUAA0EAm0iY9cr+gvC+vcQIebdofpQ4GcDW8U6W
+Bxs8ZXinLl69P0jYLum3+XITNFRiyQqcivaxdxthxDNOX7P+aKwkJA==
+-----END CERTIFICATE-----