Stop blowing away native signature from setters, need xmlsec fix to complete.
authorScott Cantor <cantor.2@osu.edu>
Sun, 13 Aug 2006 22:57:17 +0000 (22:57 +0000)
committerScott Cantor <cantor.2@osu.edu>
Sun, 13 Aug 2006 22:57:17 +0000 (22:57 +0000)
xmltooling/signature/impl/XMLSecSignatureImpl.cpp
xmltoolingtest/SignatureTest.h

index 2082939..dfda1a4 100644 (file)
@@ -33,6 +33,7 @@
 #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
@@ -83,8 +84,6 @@ namespace xmlsignature {
         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
@@ -93,7 +92,6 @@ namespace xmlsignature {
         void setContentReference(ContentReference* reference) {\r
             delete m_reference;\r
             m_reference=reference;\r
-            releaseThisandParentDOM();\r
         }\r
         \r
         void sign();\r
@@ -179,6 +177,10 @@ void XMLSecSignatureImpl::sign()
 \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
index c50b86f..67e4ca4 100644 (file)
@@ -135,11 +135,10 @@ public:
         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