Skip to content
This repository has been archived by the owner on May 26, 2020. It is now read-only.

Commit

Permalink
Don't allow non-standard c14n method
Browse files Browse the repository at this point in the history
Conflicts:
	src/org/jcp/xml/dsig/internal/dom/DOMCanonicalizationMethod.java

git-svn-id: https://svn.apache.org/repos/asf/santuario/xml-security-java/branches/1.4.x-fixes@1493777 13f79535-47bb-0310-9956-ffa450edef68
  • Loading branch information
coheigea committed Jun 17, 2013
1 parent 043ea0b commit 25e0e11
Showing 1 changed file with 18 additions and 2 deletions.
20 changes: 18 additions & 2 deletions src/org/jcp/xml/dsig/internal/dom/DOMCanonicalizationMethod.java
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,12 @@ public class DOMCanonicalizationMethod extends DOMTransform
* @param spi TransformService
*/
public DOMCanonicalizationMethod(TransformService spi)
throws InvalidAlgorithmParameterException {
super(spi);
throws InvalidAlgorithmParameterException
{
super(spi);
if (!(spi instanceof ApacheCanonicalizer) && !isC14Nalg(spi.getAlgorithm())) {
throw new InvalidAlgorithmParameterException("Illegal CanonicalizationMethod");
}
}

/**
Expand All @@ -59,6 +63,9 @@ public DOMCanonicalizationMethod(TransformService spi)
public DOMCanonicalizationMethod(Element cmElem, XMLCryptoContext context,
Provider provider) throws MarshalException {
super(cmElem, context, provider);
if (!(spi instanceof ApacheCanonicalizer) && !isC14Nalg(spi.getAlgorithm())) {
throw new MarshalException("Illegal CanonicalizationMethod");
}
}

/**
Expand Down Expand Up @@ -102,4 +109,13 @@ public int hashCode() {
assert false : "hashCode not designed";
return 42;
}

private static boolean isC14Nalg(String alg) {
return alg.equals(CanonicalizationMethod.INCLUSIVE)
|| alg.equals(CanonicalizationMethod.INCLUSIVE_WITH_COMMENTS)
|| alg.equals(CanonicalizationMethod.EXCLUSIVE)
|| alg.equals(CanonicalizationMethod.EXCLUSIVE_WITH_COMMENTS)
|| alg.equals(DOMCanonicalXMLC14N11Method.C14N_11)
|| alg.equals(DOMCanonicalXMLC14N11Method.C14N_11_WITH_COMMENTS);
}
}

0 comments on commit 25e0e11

Please sign in to comment.