aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJethro Beekman <[email protected]>2015-06-30 23:51:54 -0700
committerJethro Beekman <[email protected]>2015-06-30 23:51:54 -0700
commit9074af5bdd0d88521979174e287748b0422c12e2 (patch)
tree879cc0ed1bcb1a095e975e1249b0fe4195fc91b9
parentFix NID definitions to match OpenSSL. The previous numbers were introduced in... (diff)
downloadrust-openssl-9074af5bdd0d88521979174e287748b0422c12e2.tar.xz
rust-openssl-9074af5bdd0d88521979174e287748b0422c12e2.zip
Add a test that checks whether 3 known subject attributes can be retrieved by NID
-rw-r--r--openssl/src/x509/tests.rs29
-rw-r--r--openssl/test/nid_test_cert.pem12
2 files changed, 41 insertions, 0 deletions
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-----