X-Git-Url: http://www.project-moonshot.org/gitweb/?p=shibboleth%2Fcpp-xmltooling.git;a=blobdiff_plain;f=xmltoolingtest%2FSecurityHelperTest.h;h=6d57690015f024e0263e931a938610e66d4618f1;hp=01d1b4e1f5da3a8054803c09a40dc5ff3f4cbd0f;hb=2b4a6cd70522f955d101f73a08fe3d685b7877c5;hpb=d0047f9a7115d2ee9058be8988475a5b5b792a46 diff --git a/xmltoolingtest/SecurityHelperTest.h b/xmltoolingtest/SecurityHelperTest.h index 01d1b4e..6d57690 100644 --- a/xmltoolingtest/SecurityHelperTest.h +++ b/xmltoolingtest/SecurityHelperTest.h @@ -32,6 +32,7 @@ public: void tearDown() { for_each(certs.begin(), certs.end(), xmltooling::cleanup()); + certs.clear(); } void testKeysFromFiles() { @@ -42,12 +43,12 @@ public: pathname = data_path + "test.pfx"; auto_ptr key3(SecurityHelper::loadKeyFromFile(pathname.c_str(), NULL, "password")); - TSM_ASSERT("PEM/DER keys did not match", SecurityHelper::matches(key1.get(), key2.get())); - TSM_ASSERT("DER/PKCS12 keys did not match", SecurityHelper::matches(key2.get(), key3.get())); + TSM_ASSERT("PEM/DER keys did not match", SecurityHelper::matches(*key1.get(), *key2.get())); + TSM_ASSERT("DER/PKCS12 keys did not match", SecurityHelper::matches(*key2.get(), *key3.get())); pathname = data_path + "key2.pem"; auto_ptr key4(SecurityHelper::loadKeyFromFile(pathname.c_str())); - TSM_ASSERT("Different keys matched", !SecurityHelper::matches(key3.get(), key4.get())); + TSM_ASSERT("Different keys matched", !SecurityHelper::matches(*key3.get(), *key4.get())); } void testKeysFromURLs() { @@ -61,8 +62,8 @@ public: auto_ptr t3(getTransport("https://spaces.internet2.edu/download/attachments/5305/test.pfx")); auto_ptr key3(SecurityHelper::loadKeyFromURL(*t3.get(), pathname.c_str(), NULL, "password")); - TSM_ASSERT("PEM/DER keys did not match", SecurityHelper::matches(key1.get(), key2.get())); - TSM_ASSERT("DER/PKCS12 keys did not match", SecurityHelper::matches(key2.get(), key3.get())); + TSM_ASSERT("PEM/DER keys did not match", SecurityHelper::matches(*key1.get(), *key2.get())); + TSM_ASSERT("DER/PKCS12 keys did not match", SecurityHelper::matches(*key2.get(), *key3.get())); } void testCertificatesFromFiles() { @@ -79,14 +80,18 @@ public: auto_ptr key2(certs[1]->clonePublicKey()); auto_ptr key3(certs[2]->clonePublicKey()); - TSM_ASSERT("PEM/DER keys did not match", SecurityHelper::matches(key1.get(), key2.get())); - TSM_ASSERT("DER/PKCS12 keys did not match", SecurityHelper::matches(key2.get(), key3.get())); + TSM_ASSERT("PEM/DER keys did not match", SecurityHelper::matches(*key1.get(), *key2.get())); + TSM_ASSERT("DER/PKCS12 keys did not match", SecurityHelper::matches(*key2.get(), *key3.get())); + + TSM_ASSERT_EQUALS( + "Certificate and its key produced different DER encodings", + SecurityHelper::getDEREncoding(*certs[2]), SecurityHelper::getDEREncoding(*key1.get()) + ); - char* enc1 = SecurityHelper::getDEREncoding(*certs[2]); - char* enc2 = SecurityHelper::getDEREncoding(*key1.get()); - TSM_ASSERT("Certificate and its key produced different DER encodings", !strcmp(enc1, enc2)); - if (enc1) free(enc1); - if (enc2) free(enc2); + TSM_ASSERT_EQUALS( + "Certificate and its key produced different hashed encodings", + SecurityHelper::getDEREncoding(*certs[2], true), SecurityHelper::getDEREncoding(*key1.get(), true) + ); for_each(certs.begin(), certs.end(), xmltooling::cleanup()); certs.clear(); @@ -109,8 +114,8 @@ public: auto_ptr key2(certs[0]->clonePublicKey()); auto_ptr key3(certs[0]->clonePublicKey()); - TSM_ASSERT("PEM/DER keys did not match", SecurityHelper::matches(key1.get(), key2.get())); - TSM_ASSERT("DER/PKCS12 keys did not match", SecurityHelper::matches(key2.get(), key3.get())); + TSM_ASSERT("PEM/DER keys did not match", SecurityHelper::matches(*key1.get(), *key2.get())); + TSM_ASSERT("DER/PKCS12 keys did not match", SecurityHelper::matches(*key2.get(), *key3.get())); for_each(certs.begin(), certs.end(), xmltooling::cleanup()); certs.clear();