You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by co...@apache.org on 2014/05/20 13:39:26 UTC

svn commit: r1596206 - /santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/signature/Reference.java

Author: coheigea
Date: Tue May 20 11:39:26 2014
New Revision: 1596206

URL: http://svn.apache.org/r1596206
Log:
Optimisation to avoid needlessly creating a MessageDigest algorithm where it isn't required


Conflicts:
	src/main/java/org/apache/xml/security/signature/Reference.java

Modified:
    santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/signature/Reference.java

Modified: santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/signature/Reference.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/signature/Reference.java?rev=1596206&r1=1596205&r2=1596206&view=diff
==============================================================================
--- santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/signature/Reference.java (original)
+++ santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/signature/Reference.java Tue May 20 11:39:26 2014
@@ -26,6 +26,7 @@ import java.util.HashSet;
 import java.util.Iterator;
 import java.util.Set;
 
+import org.apache.xml.security.algorithms.Algorithm;
 import org.apache.xml.security.algorithms.MessageDigestAlgorithm;
 import org.apache.xml.security.c14n.CanonicalizationException;
 import org.apache.xml.security.c14n.InvalidCanonicalizerException;
@@ -178,13 +179,22 @@ public class Reference extends Signature
             this.constructionElement.appendChild(transforms.getElement());
             XMLUtils.addReturnToElement(this.constructionElement);
         }
-        MessageDigestAlgorithm mda =
-            MessageDigestAlgorithm.getInstance(this.doc, messageDigestAlgorithm);
+        
+        // Create DigestMethod Element without actually instantiating a MessageDigest Object
+        Algorithm digestAlgorithm = new Algorithm(getDocument(), messageDigestAlgorithm) {
+            public String getBaseNamespace() {
+                return Constants.SignatureSpecNS;
+            }
+
+            public String getBaseLocalName() {
+                return Constants._TAG_DIGESTMETHOD;
+            }
+        };
 
-        digestMethodElem = mda.getElement();
+        digestMethodElem = digestAlgorithm.getElement();
         this.constructionElement.appendChild(digestMethodElem);
         XMLUtils.addReturnToElement(this.constructionElement);
-
+        
         digestValueElement =
             XMLUtils.createElementInSignatureSpace(this.doc, Constants._TAG_DIGESTVALUE);