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
  • Loading branch information
coheigea committed Jun 17, 2013
1 parent 5cf6abf commit 8e8f8bf
Showing 1 changed file with 15 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,9 @@ public DOMCanonicalizationMethod(TransformService spi)
throws InvalidAlgorithmParameterException
{
super(spi);
if (!(spi instanceof ApacheCanonicalizer) && !isC14Nalg(spi.getAlgorithm())) {
throw new InvalidAlgorithmParameterException("Illegal CanonicalizationMethod");
}
}

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

/**
Expand Down Expand Up @@ -111,4 +117,13 @@ public int hashCode() {
assert false : "hashCode not designed";
return 42; // any arbitrary constant will do
}

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 8e8f8bf

Please # to comment.