Use xmltooling SignatureValidator in tests.
authorScott Cantor <cantor.2@osu.edu>
Mon, 22 May 2006 15:51:26 +0000 (15:51 +0000)
committerScott Cantor <cantor.2@osu.edu>
Mon, 22 May 2006 15:51:26 +0000 (15:51 +0000)
saml/signature/SignatureProfileValidator.cpp
samltest/signature/SAML1AssertionTest.h
samltest/signature/SAML1RequestTest.h
samltest/signature/SAML1ResponseTest.h

index 279f8ed..5a9881f 100644 (file)
@@ -15,7 +15,7 @@
  */\r
 \r
 /**\r
- * VerifyingContext.cpp\r
+ * SignatureProfileValidator.cpp\r
  * \r
  * SAML-specific signature verification \r
  */\r
index 05cae8e..6cf5a59 100644 (file)
@@ -17,8 +17,7 @@
 #include "internal.h"\r
 #include <saml/saml1/core/Assertions.h>\r
 #include <saml/signature/SignatureProfileValidator.h>\r
-\r
-#include <xmltooling/signature/Signature.h>\r
+#include <xmltooling/signature/SignatureValidator.h>\r
 \r
 #include <fstream>\r
 #include <openssl/pem.h>\r
 using namespace opensaml::saml1;\r
 using namespace xmlsignature;\r
 \r
-class TestValidator : public Validator\r
-{\r
-public:\r
-    TestValidator() {}\r
-    virtual ~TestValidator() {}\r
-\r
-    Validator* clone() const {\r
-        return new TestValidator();\r
-    }\r
-\r
-    void validate(const XMLObject* xmlObject) const {\r
-        DSIGSignature* sig=dynamic_cast<const Signature*>(xmlObject)->getXMLSignature();\r
-        if (!sig)\r
-            throw SignatureException("Only a marshalled Signature object can be verified.");\r
-        XSECKeyInfoResolverDefault resolver;\r
-        sig->setKeyInfoResolver(&resolver); // It will clone the resolver for us.\r
-        try {\r
-            if (!sig->verify())\r
-                throw SignatureException("Signature did not verify.");\r
-        }\r
-        catch(XSECException& e) {\r
-            auto_ptr_char temp(e.getMsg());\r
-            throw SignatureException(string("Caught an XMLSecurity exception verifying signature: ") + temp.get());\r
-        }\r
-        catch(XSECCryptoException& e) {\r
-            throw SignatureException(string("Caught an XMLSecurity exception verifying signature: ") + e.getMsg());\r
-        }\r
-    }\r
-};\r
-\r
 class _addcert : public std::binary_function<X509Data*,XSECCryptoX509*,void> {\r
 public:\r
     void operator()(X509Data* bag, XSECCryptoX509* cert) const {\r
@@ -166,7 +135,7 @@ public:
         \r
         try {\r
             assertion->getSignature()->registerValidator(new SignatureProfileValidator());\r
-            assertion->getSignature()->registerValidator(new TestValidator());\r
+            assertion->getSignature()->registerValidator(new SignatureValidator(m_key->clone()));\r
             assertion->getSignature()->validate(true);\r
         }\r
         catch (XMLToolingException& e) {\r
index 61ca7f9..7396d83 100644 (file)
@@ -17,8 +17,8 @@
 #include "internal.h"\r
 #include <saml/saml1/core/Protocols.h>\r
 #include <saml/signature/SignatureProfileValidator.h>\r
+#include <xmltooling/signature/SignatureValidator.h>\r
 \r
-#include <xmltooling/signature/Signature.h>\r
 \r
 #include <fstream>\r
 #include <openssl/pem.h>\r
 using namespace opensaml::saml1;\r
 using namespace xmlsignature;\r
 \r
-class TestValidator : public Validator\r
-{\r
-public:\r
-    TestValidator() {}\r
-    virtual ~TestValidator() {}\r
-\r
-    Validator* clone() const {\r
-        return new TestValidator();\r
-    }\r
-\r
-    void validate(const XMLObject* xmlObject) const {\r
-        DSIGSignature* sig=dynamic_cast<const Signature*>(xmlObject)->getXMLSignature();\r
-        if (!sig)\r
-            throw SignatureException("Only a marshalled Signature object can be verified.");\r
-        XSECKeyInfoResolverDefault resolver;\r
-        sig->setKeyInfoResolver(&resolver); // It will clone the resolver for us.\r
-        try {\r
-            if (!sig->verify())\r
-                throw SignatureException("Signature did not verify.");\r
-        }\r
-        catch(XSECException& e) {\r
-            auto_ptr_char temp(e.getMsg());\r
-            throw SignatureException(string("Caught an XMLSecurity exception verifying signature: ") + temp.get());\r
-        }\r
-        catch(XSECCryptoException& e) {\r
-            throw SignatureException(string("Caught an XMLSecurity exception verifying signature: ") + e.getMsg());\r
-        }\r
-    }\r
-};\r
-\r
 class _addcert : public std::binary_function<X509Data*,XSECCryptoX509*,void> {\r
 public:\r
     void operator()(X509Data* bag, XSECCryptoX509* cert) const {\r
@@ -163,7 +133,7 @@ public:
         \r
         try {\r
             request->getSignature()->registerValidator(new SignatureProfileValidator());\r
-            request->getSignature()->registerValidator(new TestValidator());\r
+            request->getSignature()->registerValidator(new SignatureValidator(m_key->clone()));\r
             request->getSignature()->validate(true);\r
         }\r
         catch (XMLToolingException& e) {\r
index e63856f..89e679a 100644 (file)
@@ -17,8 +17,7 @@
 #include "internal.h"\r
 #include <saml/saml1/core/Protocols.h>\r
 #include <saml/signature/SignatureProfileValidator.h>\r
-\r
-#include <xmltooling/signature/Signature.h>\r
+#include <xmltooling/signature/SignatureValidator.h>\r
 \r
 #include <fstream>\r
 #include <openssl/pem.h>\r
 using namespace opensaml::saml1;\r
 using namespace xmlsignature;\r
 \r
-class TestValidator : public Validator\r
-{\r
-public:\r
-    TestValidator() {}\r
-    virtual ~TestValidator() {}\r
-\r
-    Validator* clone() const {\r
-        return new TestValidator();\r
-    }\r
-\r
-    void validate(const XMLObject* xmlObject) const {\r
-        DSIGSignature* sig=dynamic_cast<const Signature*>(xmlObject)->getXMLSignature();\r
-        if (!sig)\r
-            throw SignatureException("Only a marshalled Signature object can be verified.");\r
-        XSECKeyInfoResolverDefault resolver;\r
-        sig->setKeyInfoResolver(&resolver); // It will clone the resolver for us.\r
-        try {\r
-            if (!sig->verify())\r
-                throw SignatureException("Signature did not verify.");\r
-        }\r
-        catch(XSECException& e) {\r
-            auto_ptr_char temp(e.getMsg());\r
-            throw SignatureException(string("Caught an XMLSecurity exception verifying signature: ") + temp.get());\r
-        }\r
-        catch(XSECCryptoException& e) {\r
-            throw SignatureException(string("Caught an XMLSecurity exception verifying signature: ") + e.getMsg());\r
-        }\r
-    }\r
-};\r
-\r
 class _addcert : public std::binary_function<X509Data*,XSECCryptoX509*,void> {\r
 public:\r
     void operator()(X509Data* bag, XSECCryptoX509* cert) const {\r
@@ -193,10 +162,10 @@ public:
         \r
         try {\r
             assertion->getSignature()->registerValidator(new SignatureProfileValidator());\r
-            assertion->getSignature()->registerValidator(new TestValidator());\r
+            assertion->getSignature()->registerValidator(new SignatureValidator(m_key->clone()));\r
             assertion->getSignature()->validate(true);\r
             response->getSignature()->registerValidator(new SignatureProfileValidator());\r
-            response->getSignature()->registerValidator(new TestValidator());\r
+            response->getSignature()->registerValidator(new SignatureValidator(m_key->clone()));\r
             response->getSignature()->validate(true);\r
         }\r
         catch (XMLToolingException& e) {\r