Completed 2.0 assertions schema classes.
[shibboleth/cpp-opensaml.git] / samltest / signature / SAML1ResponseTest.h
index e63856f..ac26175 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
 #include <xsec/enc/XSECCryptoException.hpp>\r
 #include <xsec/framework/XSECException.hpp>\r
 \r
+using namespace opensaml::saml1p;\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 +163,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