Use xmltooling SignatureValidator in tests.
[shibboleth/opensaml2.git] / samltest / signature / SAML1RequestTest.h
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