+ Signature* buildSignature(const CredentialResolver* credResolver) const\r
+ {\r
+ // Build a Signature.\r
+ Signature* sig = SignatureBuilder::buildSignature();\r
+ sig->setSigningKey(credResolver->getKey());\r
+\r
+ // Build KeyInfo.\r
+ const vector<XSECCryptoX509*>& certs = credResolver->getCertificates();\r
+ if (!certs.empty()) {\r
+ KeyInfo* keyInfo=KeyInfoBuilder::buildKeyInfo();\r
+ X509Data* x509Data=X509DataBuilder::buildX509Data();\r
+ keyInfo->getX509Datas().push_back(x509Data);\r
+ for_each(certs.begin(),certs.end(),bind1st(_addcert(),x509Data));\r
+ sig->setKeyInfo(keyInfo);\r
+ }\r
+ \r
+ return sig;\r
+ }\r
+