X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=xmltoolingtest%2FSignatureTest.h;h=8e05cce4dc09c67f19ddc6f892e0af515f78d1a0;hb=6505807a62569ce65803b448b07a6872c6af2512;hp=3682c401e92d37a6e53e477e152416859ca3dfe2;hpb=5cb314df178f78c6fa7b9826c2c5a5298ec7a473;p=shibboleth%2Fcpp-xmltooling.git diff --git a/xmltoolingtest/SignatureTest.h b/xmltoolingtest/SignatureTest.h index 3682c40..8e05cce 100644 --- a/xmltoolingtest/SignatureTest.h +++ b/xmltoolingtest/SignatureTest.h @@ -16,7 +16,9 @@ #include "XMLObjectBaseTestCase.h" -#include +#include +#include +#include #include #include @@ -49,7 +51,7 @@ class TestValidator : public SignatureValidator XMLCh* m_uri; public: - TestValidator(const XMLCh* uri) : SignatureValidator(XMLToolingConfig::getConfig().KeyResolverManager.newPlugin(INLINE_KEY_RESOLVER,NULL)) { + TestValidator(const XMLCh* uri, const Credential* credential) : SignatureValidator(credential) { m_uri=XMLString::replicate(uri); } @@ -67,16 +69,6 @@ public: } }; -class _addcert : public std::binary_function { -public: - void operator()(X509Data* bag, XSECCryptoX509* cert) const { - safeBuffer& buf=cert->getDEREncodingSB(); - X509Certificate* x=X509CertificateBuilder::buildX509Certificate(); - x->setValue(buf.sbStrToXMLCh()); - bag->getX509Certificates().push_back(x); - } -}; - class SignatureTest : public CxxTest::TestSuite { CredentialResolver* m_resolver; public: @@ -126,20 +118,16 @@ public: sxObject->setSignature(sig); sig->setContentReference(new TestContext(&chNull)); + CredentialCriteria cc; + cc.setUsage(CredentialCriteria::SIGNING_CREDENTIAL); Locker locker(m_resolver); - sig->setSigningKey(m_resolver->getKey()); - - // Build KeyInfo. - KeyInfo* keyInfo=KeyInfoBuilder::buildKeyInfo(); - X509Data* x509Data=X509DataBuilder::buildX509Data(); - keyInfo->getX509Datas().push_back(x509Data); - for_each(m_resolver->getCertificates().begin(),m_resolver->getCertificates().end(),bind1st(_addcert(),x509Data)); - sig->setKeyInfo(keyInfo); + const Credential* cred = m_resolver->resolve(&cc); + TSM_ASSERT("Retrieved credential was null", cred!=NULL); DOMElement* rootElement = NULL; try { - rootElement=sxObject->marshall((DOMDocument*)NULL); - sig->sign(); + vector sigs(1,sig); + rootElement=sxObject->marshall((DOMDocument*)NULL,&sigs,cred); } catch (XMLToolingException& e) { TS_TRACE(e.what()); @@ -157,7 +145,7 @@ public: TS_ASSERT(sxObject2->getSignature()!=NULL); try { - TestValidator tv(&chNull); + TestValidator tv(&chNull, cred); tv.validate(sxObject2->getSignature()); } catch (XMLToolingException& e) {