From e90f2a3530fa9867aa4fc31e2fded69e8dfdc097 Mon Sep 17 00:00:00 2001 From: Scott Cantor Date: Mon, 22 May 2006 15:51:26 +0000 Subject: [PATCH] Use xmltooling SignatureValidator in tests. --- saml/signature/SignatureProfileValidator.cpp | 2 +- samltest/signature/SAML1AssertionTest.h | 35 ++------------------------ samltest/signature/SAML1RequestTest.h | 34 ++----------------------- samltest/signature/SAML1ResponseTest.h | 37 +++------------------------- 4 files changed, 8 insertions(+), 100 deletions(-) diff --git a/saml/signature/SignatureProfileValidator.cpp b/saml/signature/SignatureProfileValidator.cpp index 279f8ed..5a9881f 100644 --- a/saml/signature/SignatureProfileValidator.cpp +++ b/saml/signature/SignatureProfileValidator.cpp @@ -15,7 +15,7 @@ */ /** - * VerifyingContext.cpp + * SignatureProfileValidator.cpp * * SAML-specific signature verification */ diff --git a/samltest/signature/SAML1AssertionTest.h b/samltest/signature/SAML1AssertionTest.h index 05cae8e..6cf5a59 100644 --- a/samltest/signature/SAML1AssertionTest.h +++ b/samltest/signature/SAML1AssertionTest.h @@ -17,8 +17,7 @@ #include "internal.h" #include #include - -#include +#include #include #include @@ -32,36 +31,6 @@ using namespace opensaml::saml1; using namespace xmlsignature; -class TestValidator : public Validator -{ -public: - TestValidator() {} - virtual ~TestValidator() {} - - Validator* clone() const { - return new TestValidator(); - } - - void validate(const XMLObject* xmlObject) const { - DSIGSignature* sig=dynamic_cast(xmlObject)->getXMLSignature(); - if (!sig) - throw SignatureException("Only a marshalled Signature object can be verified."); - XSECKeyInfoResolverDefault resolver; - sig->setKeyInfoResolver(&resolver); // It will clone the resolver for us. - try { - if (!sig->verify()) - throw SignatureException("Signature did not verify."); - } - catch(XSECException& e) { - auto_ptr_char temp(e.getMsg()); - throw SignatureException(string("Caught an XMLSecurity exception verifying signature: ") + temp.get()); - } - catch(XSECCryptoException& e) { - throw SignatureException(string("Caught an XMLSecurity exception verifying signature: ") + e.getMsg()); - } - } -}; - class _addcert : public std::binary_function { public: void operator()(X509Data* bag, XSECCryptoX509* cert) const { @@ -166,7 +135,7 @@ public: try { assertion->getSignature()->registerValidator(new SignatureProfileValidator()); - assertion->getSignature()->registerValidator(new TestValidator()); + assertion->getSignature()->registerValidator(new SignatureValidator(m_key->clone())); assertion->getSignature()->validate(true); } catch (XMLToolingException& e) { diff --git a/samltest/signature/SAML1RequestTest.h b/samltest/signature/SAML1RequestTest.h index 61ca7f9..7396d83 100644 --- a/samltest/signature/SAML1RequestTest.h +++ b/samltest/signature/SAML1RequestTest.h @@ -17,8 +17,8 @@ #include "internal.h" #include #include +#include -#include #include #include @@ -32,36 +32,6 @@ using namespace opensaml::saml1; using namespace xmlsignature; -class TestValidator : public Validator -{ -public: - TestValidator() {} - virtual ~TestValidator() {} - - Validator* clone() const { - return new TestValidator(); - } - - void validate(const XMLObject* xmlObject) const { - DSIGSignature* sig=dynamic_cast(xmlObject)->getXMLSignature(); - if (!sig) - throw SignatureException("Only a marshalled Signature object can be verified."); - XSECKeyInfoResolverDefault resolver; - sig->setKeyInfoResolver(&resolver); // It will clone the resolver for us. - try { - if (!sig->verify()) - throw SignatureException("Signature did not verify."); - } - catch(XSECException& e) { - auto_ptr_char temp(e.getMsg()); - throw SignatureException(string("Caught an XMLSecurity exception verifying signature: ") + temp.get()); - } - catch(XSECCryptoException& e) { - throw SignatureException(string("Caught an XMLSecurity exception verifying signature: ") + e.getMsg()); - } - } -}; - class _addcert : public std::binary_function { public: void operator()(X509Data* bag, XSECCryptoX509* cert) const { @@ -163,7 +133,7 @@ public: try { request->getSignature()->registerValidator(new SignatureProfileValidator()); - request->getSignature()->registerValidator(new TestValidator()); + request->getSignature()->registerValidator(new SignatureValidator(m_key->clone())); request->getSignature()->validate(true); } catch (XMLToolingException& e) { diff --git a/samltest/signature/SAML1ResponseTest.h b/samltest/signature/SAML1ResponseTest.h index e63856f..89e679a 100644 --- a/samltest/signature/SAML1ResponseTest.h +++ b/samltest/signature/SAML1ResponseTest.h @@ -17,8 +17,7 @@ #include "internal.h" #include #include - -#include +#include #include #include @@ -32,36 +31,6 @@ using namespace opensaml::saml1; using namespace xmlsignature; -class TestValidator : public Validator -{ -public: - TestValidator() {} - virtual ~TestValidator() {} - - Validator* clone() const { - return new TestValidator(); - } - - void validate(const XMLObject* xmlObject) const { - DSIGSignature* sig=dynamic_cast(xmlObject)->getXMLSignature(); - if (!sig) - throw SignatureException("Only a marshalled Signature object can be verified."); - XSECKeyInfoResolverDefault resolver; - sig->setKeyInfoResolver(&resolver); // It will clone the resolver for us. - try { - if (!sig->verify()) - throw SignatureException("Signature did not verify."); - } - catch(XSECException& e) { - auto_ptr_char temp(e.getMsg()); - throw SignatureException(string("Caught an XMLSecurity exception verifying signature: ") + temp.get()); - } - catch(XSECCryptoException& e) { - throw SignatureException(string("Caught an XMLSecurity exception verifying signature: ") + e.getMsg()); - } - } -}; - class _addcert : public std::binary_function { public: void operator()(X509Data* bag, XSECCryptoX509* cert) const { @@ -193,10 +162,10 @@ public: try { assertion->getSignature()->registerValidator(new SignatureProfileValidator()); - assertion->getSignature()->registerValidator(new TestValidator()); + assertion->getSignature()->registerValidator(new SignatureValidator(m_key->clone())); assertion->getSignature()->validate(true); response->getSignature()->registerValidator(new SignatureProfileValidator()); - response->getSignature()->registerValidator(new TestValidator()); + response->getSignature()->registerValidator(new SignatureValidator(m_key->clone())); response->getSignature()->validate(true); } catch (XMLToolingException& e) { -- 2.1.4