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 2020/05/08 07:06:36 UTC

svn commit: r1877498 - /santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMCanonicalizationMethod.java

Author: coheigea
Date: Fri May  8 07:06:36 2020
New Revision: 1877498

URL: http://svn.apache.org/viewvc?rev=1877498&view=rev
Log:
SANTUARIO-540 - refactor of DOMCanonicalizationMethod. Thanks to Alanscut <wp...@163.com> for the patch. This closes #30.

Modified:
    santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMCanonicalizationMethod.java

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMCanonicalizationMethod.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMCanonicalizationMethod.java?rev=1877498&r1=1877497&r2=1877498&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMCanonicalizationMethod.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMCanonicalizationMethod.java Fri May  8 07:06:36 2020
@@ -25,6 +25,9 @@ import java.io.OutputStream;
 import java.security.InvalidAlgorithmParameterException;
 import java.security.Provider;
 import java.security.spec.AlgorithmParameterSpec;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
 
 import org.w3c.dom.Element;
 
@@ -38,6 +41,19 @@ import javax.xml.crypto.dsig.*;
 public class DOMCanonicalizationMethod extends DOMTransform
     implements CanonicalizationMethod {
 
+    private static final Set<String> C14N_ALGORITHMS;
+
+    static {
+        Set<String> algorithms = new HashSet<>();
+        algorithms.add(CanonicalizationMethod.INCLUSIVE);
+        algorithms.add(CanonicalizationMethod.INCLUSIVE_WITH_COMMENTS);
+        algorithms.add(CanonicalizationMethod.EXCLUSIVE);
+        algorithms.add(CanonicalizationMethod.EXCLUSIVE_WITH_COMMENTS);
+        algorithms.add(DOMCanonicalXMLC14N11Method.C14N_11);
+        algorithms.add(DOMCanonicalXMLC14N11Method.C14N_11_WITH_COMMENTS);
+        C14N_ALGORITHMS = Collections.unmodifiableSet(algorithms);
+    }
+
     /**
      * Creates a <code>DOMCanonicalizationMethod</code>.
      *
@@ -121,21 +137,8 @@ public class DOMCanonicalizationMethod e
     }
 
     private static boolean isC14Nalg(String alg) {
-        return isInclusiveC14Nalg(alg) || isExclusiveC14Nalg(alg) || isC14N11alg(alg);
+        return alg != null && C14N_ALGORITHMS.contains(alg);
     }
 
-    private static boolean isInclusiveC14Nalg(String alg) {
-        return alg.equals(CanonicalizationMethod.INCLUSIVE)
-            || alg.equals(CanonicalizationMethod.INCLUSIVE_WITH_COMMENTS);
-    }
 
-    private static boolean isExclusiveC14Nalg(String alg) {
-        return alg.equals(CanonicalizationMethod.EXCLUSIVE)
-            || alg.equals(CanonicalizationMethod.EXCLUSIVE_WITH_COMMENTS);
-    }
-
-    private static boolean isC14N11alg(String alg) {
-        return alg.equals(DOMCanonicalXMLC14N11Method.C14N_11)
-            || alg.equals(DOMCanonicalXMLC14N11Method.C14N_11_WITH_COMMENTS);
-    }
 }