SANTUARIO-540 - refactor of DOMCanonicalizationMethod. Thanks to Alanscut <wp_scut@163.com> for the patch. This closes #30.
git-svn-id: https://svn.apache.org/repos/asf/santuario/xml-security-java/trunk@1877498 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMCanonicalizationMethod.java b/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMCanonicalizationMethod.java
index c2807e4..a54b611 100644
--- a/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMCanonicalizationMethod.java
+++ b/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMCanonicalizationMethod.java
@@ -25,6 +25,9 @@
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 @@
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 @@
}
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);
- }
}