#include <xercesc/framework/Wrapper4InputSource.hpp>\r
#include <xercesc/util/XMLUniDefs.hpp>\r
#include <xsec/dsig/DSIGKeyInfoX509.hpp>\r
+#include <xsec/dsig/DSIGReference.hpp>\r
#include <xsec/enc/XSECCryptoException.hpp>\r
#include <xsec/framework/XSECException.hpp>\r
\r
void setSigningKey(XSECCryptoKey* signingKey) {\r
delete m_key;\r
m_key=signingKey;\r
- if (m_key)\r
- releaseThisandParentDOM();\r
}\r
void setKeyInfo(KeyInfo* keyInfo) {\r
prepareForAssignment(m_keyInfo, keyInfo);\r
void setContentReference(ContentReference* reference) {\r
delete m_reference;\r
m_reference=reference;\r
- releaseThisandParentDOM();\r
}\r
\r
void sign();\r
\r
try {\r
log.debug("creating signature reference(s)");\r
+ // TODO: Need XML-Sec fixed to clear references.\r
+ //DSIGReferenceList* refs = m_signature->getReferenceList();\r
+ //while (refs && refs->getSize())\r
+ // delete refs->removeReference(0);\r
m_reference->createReferences(m_signature);\r
\r
log.debug("computing signature");\r
for_each(m_resolver->getCertificates().begin(),m_resolver->getCertificates().end(),bind1st(_addcert(),x509Data));\r
sig->setKeyInfo(keyInfo);\r
\r
- // Signing context for the whole document.\r
- vector<Signature*> sigs(1,sig);\r
DOMElement* rootElement = NULL;\r
try {\r
- rootElement=sxObject->marshall((DOMDocument*)NULL,&sigs);\r
+ rootElement=sxObject->marshall((DOMDocument*)NULL);\r
+ sig->sign();\r
}\r
catch (XMLToolingException& e) {\r
TS_TRACE(e.what());\r