// Append a Signature.\r
Signature* sig=SignatureBuilder::buildSignature();\r
assertion->setSignature(sig);\r
- sig->setSigningKey(m_key->clone());\r
+ Locker locker(m_resolver);\r
+ sig->setSigningKey(m_resolver->getKey());\r
\r
// Build KeyInfo.\r
KeyInfo* keyInfo=KeyInfoBuilder::buildKeyInfo();\r
X509Data* x509Data=X509DataBuilder::buildX509Data();\r
keyInfo->getX509Datas().push_back(x509Data);\r
- for_each(m_certs.begin(),m_certs.end(),bind1st(_addcert(),x509Data));\r
+ for_each(m_resolver->getCertificates().begin(),m_resolver->getCertificates().end(),bind1st(_addcert(),x509Data));\r
sig->setKeyInfo(keyInfo);\r
\r
// Sign while marshalling.\r
DOMDocument* doc=XMLToolingConfig::getConfig().getParser().parse(in);\r
const XMLObjectBuilder* b = XMLObjectBuilder::getBuilder(doc->getDocumentElement());\r
\r
- assertEquals(expectedChildElementsDOM, b->buildFromDocument(doc));\r
+ auto_ptr<XMLObject> assertion2(b->buildFromDocument(doc));\r
+ assertEquals("Unmarshalled assertion does not match", expectedChildElementsDOM, assertion2.get(), false);\r
\r
try {\r
SignatureProfileValidator spv;\r
- SignatureValidator sv(new KeyResolver(m_key->clone()));\r
- spv.validate(assertion->getSignature());\r
- sv.validate(assertion->getSignature());\r
+ SignatureValidator sv(new KeyResolver(m_resolver->getKey()));\r
+ spv.validate(dynamic_cast<Assertion*>(assertion2.get())->getSignature());\r
+ sv.validate(dynamic_cast<Assertion*>(assertion2.get())->getSignature());\r
}\r
catch (XMLToolingException& e) {\r
TS_TRACE(e.what());\r