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/06/03 12:23:48 UTC
svn commit: r1599467 - in
/santuario/xml-security-java/branches/1.5.x-fixes/src:
main/java/org/apache/jcp/xml/dsig/internal/dom/
main/java/org/apache/xml/security/algorithms/
main/java/org/apache/xml/security/algorithms/implementations/
main/java/org/a...
Author: coheigea
Date: Tue Jun 3 10:23:48 2014
New Revision: 1599467
URL: http://svn.apache.org/r1599467
Log:
[SANTUARIO-391] - Adding support for RSA with SHA224
Conflicts:
src/test/java/javax/xml/crypto/test/dsig/PKSignatureAlgorithmTest.java
Modified:
santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignatureMethod.java
santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMXMLSignatureFactory.java
santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/algorithms/JCEMapper.java
santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/algorithms/SignatureAlgorithm.java
santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/algorithms/implementations/SignatureBaseRSA.java
santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/resource/config.xml
santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/signature/XMLSignature.java
santuario/xml-security-java/branches/1.5.x-fixes/src/test/java/javax/xml/crypto/test/dsig/PKSignatureAlgorithmTest.java
santuario/xml-security-java/branches/1.5.x-fixes/src/test/java/org/apache/xml/security/test/dom/algorithms/PKSignatureAlgorithmTest.java
Modified: santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignatureMethod.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignatureMethod.java?rev=1599467&r1=1599466&r2=1599467&view=diff
==============================================================================
--- santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignatureMethod.java (original)
+++ santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignatureMethod.java Tue Jun 3 10:23:48 2014
@@ -52,6 +52,8 @@ public abstract class DOMSignatureMethod
private Signature signature;
// see RFC 4051 for these algorithm definitions
+ static final String RSA_SHA224 =
+ "http://www.w3.org/2001/04/xmldsig-more#rsa-sha224";
static final String RSA_SHA256 =
"http://www.w3.org/2001/04/xmldsig-more#rsa-sha256";
static final String RSA_SHA384 =
@@ -115,6 +117,8 @@ public abstract class DOMSignatureMethod
String alg = DOMUtils.getAttributeValue(smElem, "Algorithm");
if (alg.equals(SignatureMethod.RSA_SHA1)) {
return new SHA1withRSA(smElem);
+ } else if (alg.equals(RSA_SHA224)) {
+ return new SHA224withRSA(smElem);
} else if (alg.equals(RSA_SHA256)) {
return new SHA256withRSA(smElem);
} else if (alg.equals(RSA_SHA384)) {
@@ -275,6 +279,25 @@ public abstract class DOMSignatureMethod
}
}
+ static final class SHA224withRSA extends DOMSignatureMethod {
+ SHA224withRSA(AlgorithmParameterSpec params)
+ throws InvalidAlgorithmParameterException {
+ super(params);
+ }
+ SHA224withRSA(Element dmElem) throws MarshalException {
+ super(dmElem);
+ }
+ public String getAlgorithm() {
+ return RSA_SHA224;
+ }
+ String getJCAAlgorithm() {
+ return "SHA224withRSA";
+ }
+ Type getAlgorithmType() {
+ return Type.RSA;
+ }
+ }
+
static final class SHA256withRSA extends DOMSignatureMethod {
SHA256withRSA(AlgorithmParameterSpec params)
throws InvalidAlgorithmParameterException {
Modified: santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMXMLSignatureFactory.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMXMLSignatureFactory.java?rev=1599467&r1=1599466&r2=1599467&view=diff
==============================================================================
--- santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMXMLSignatureFactory.java (original)
+++ santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMXMLSignatureFactory.java Tue Jun 3 10:23:48 2014
@@ -231,6 +231,8 @@ public final class DOMXMLSignatureFactor
}
if (algorithm.equals(SignatureMethod.RSA_SHA1)) {
return new DOMSignatureMethod.SHA1withRSA(params);
+ } else if (algorithm.equals(DOMSignatureMethod.RSA_SHA224)) {
+ return new DOMSignatureMethod.SHA224withRSA(params);
} else if (algorithm.equals(DOMSignatureMethod.RSA_SHA256)) {
return new DOMSignatureMethod.SHA256withRSA(params);
} else if (algorithm.equals(DOMSignatureMethod.RSA_SHA384)) {
Modified: santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/algorithms/JCEMapper.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/algorithms/JCEMapper.java?rev=1599467&r1=1599466&r2=1599467&view=diff
==============================================================================
--- santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/algorithms/JCEMapper.java (original)
+++ santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/algorithms/JCEMapper.java Tue Jun 3 10:23:48 2014
@@ -105,6 +105,10 @@ public class JCEMapper {
new Algorithm("", "SHA1withRSA", "Signature")
);
algorithmsMap.put(
+ XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA224,
+ new Algorithm("SHA224withRSA", "SHA224withRSA", "Signature")
+ );
+ algorithmsMap.put(
XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA256,
new Algorithm("", "SHA256withRSA", "Signature")
);
Modified: santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/algorithms/SignatureAlgorithm.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/algorithms/SignatureAlgorithm.java?rev=1599467&r1=1599466&r2=1599467&view=diff
==============================================================================
--- santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/algorithms/SignatureAlgorithm.java (original)
+++ santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/algorithms/SignatureAlgorithm.java Tue Jun 3 10:23:48 2014
@@ -398,6 +398,9 @@ public class SignatureAlgorithm extends
SignatureBaseRSA.SignatureRSARIPEMD160.class
);
algorithmHash.put(
+ XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA224, SignatureBaseRSA.SignatureRSASHA224.class
+ );
+ algorithmHash.put(
XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA256, SignatureBaseRSA.SignatureRSASHA256.class
);
algorithmHash.put(
Modified: santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/algorithms/implementations/SignatureBaseRSA.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/algorithms/implementations/SignatureBaseRSA.java?rev=1599467&r1=1599466&r2=1599467&view=diff
==============================================================================
--- santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/algorithms/implementations/SignatureBaseRSA.java (original)
+++ santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/algorithms/implementations/SignatureBaseRSA.java Tue Jun 3 10:23:48 2014
@@ -239,6 +239,26 @@ public abstract class SignatureBaseRSA e
}
/**
+ * Class SignatureRSASHA224
+ */
+ public static class SignatureRSASHA224 extends SignatureBaseRSA {
+
+ /**
+ * Constructor SignatureRSASHA224
+ *
+ * @throws XMLSignatureException
+ */
+ public SignatureRSASHA224() throws XMLSignatureException {
+ super();
+ }
+
+ /** @inheritDoc */
+ public String engineGetURI() {
+ return XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA224;
+ }
+ }
+
+ /**
* Class SignatureRSASHA256
*/
public static class SignatureRSASHA256 extends SignatureBaseRSA {
Modified: santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/resource/config.xml
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/resource/config.xml?rev=1599467&r1=1599466&r2=1599467&view=diff
==============================================================================
Binary files - no diff available.
Modified: santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/signature/XMLSignature.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/signature/XMLSignature.java?rev=1599467&r1=1599466&r2=1599467&view=diff
==============================================================================
--- santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/signature/XMLSignature.java (original)
+++ santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/signature/XMLSignature.java Tue Jun 3 10:23:48 2014
@@ -101,6 +101,10 @@ public final class XMLSignature extends
public static final String ALGO_ID_SIGNATURE_RSA_RIPEMD160 =
Constants.MoreAlgorithmsSpecNS + "rsa-ripemd160";
+ /** Signature - Optional RSAwithSHA224 */
+ public static final String ALGO_ID_SIGNATURE_RSA_SHA224 =
+ Constants.MoreAlgorithmsSpecNS + "rsa-sha224";
+
/** Signature - Optional RSAwithSHA256 */
public static final String ALGO_ID_SIGNATURE_RSA_SHA256 =
Constants.MoreAlgorithmsSpecNS + "rsa-sha256";
Modified: santuario/xml-security-java/branches/1.5.x-fixes/src/test/java/javax/xml/crypto/test/dsig/PKSignatureAlgorithmTest.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/1.5.x-fixes/src/test/java/javax/xml/crypto/test/dsig/PKSignatureAlgorithmTest.java?rev=1599467&r1=1599466&r2=1599467&view=diff
==============================================================================
--- santuario/xml-security-java/branches/1.5.x-fixes/src/test/java/javax/xml/crypto/test/dsig/PKSignatureAlgorithmTest.java (original)
+++ santuario/xml-security-java/branches/1.5.x-fixes/src/test/java/javax/xml/crypto/test/dsig/PKSignatureAlgorithmTest.java Tue Jun 3 10:23:48 2014
@@ -57,7 +57,7 @@ public class PKSignatureAlgorithmTest ex
private KeySelector kvks;
private CanonicalizationMethod withoutComments;
private DigestMethod sha1;
- private SignatureMethod rsaSha1, rsaSha256, rsaSha384, rsaSha512, rsaRipemd160;
+ private SignatureMethod rsaSha1, rsaSha224, rsaSha256, rsaSha384, rsaSha512, rsaRipemd160;
private SignatureMethod ecdsaSha1, ecdsaSha224, ecdsaSha256, ecdsaSha384, ecdsaSha512;
private XMLSignatureFactory fac;
private DocumentBuilder db;
@@ -101,6 +101,7 @@ public class PKSignatureAlgorithmTest ex
sha1 = fac.newDigestMethod(DigestMethod.SHA1, null);
rsaSha1 = fac.newSignatureMethod("http://www.w3.org/2000/09/xmldsig#rsa-sha1", null);
+ rsaSha224 = fac.newSignatureMethod("http://www.w3.org/2001/04/xmldsig-more#rsa-sha224", null);
rsaSha256 = fac.newSignatureMethod("http://www.w3.org/2001/04/xmldsig-more#rsa-sha256", null);
rsaSha384 = fac.newSignatureMethod("http://www.w3.org/2001/04/xmldsig-more#rsa-sha384", null);
rsaSha512 = fac.newSignatureMethod("http://www.w3.org/2001/04/xmldsig-more#rsa-sha512", null);
@@ -129,6 +130,12 @@ public class PKSignatureAlgorithmTest ex
}
@org.junit.Test
+ public void testRSA_SHA_224() throws Exception {
+ test_create_signature_enveloping(rsaSha224, sha1, rsaki,
+ rsaKeyPair.getPrivate(), kvks);
+ }
+
+ @org.junit.Test
public void testRSA_SHA_256() throws Exception {
test_create_signature_enveloping(rsaSha256, sha1, rsaki,
rsaKeyPair.getPrivate(), kvks);
Modified: santuario/xml-security-java/branches/1.5.x-fixes/src/test/java/org/apache/xml/security/test/dom/algorithms/PKSignatureAlgorithmTest.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/1.5.x-fixes/src/test/java/org/apache/xml/security/test/dom/algorithms/PKSignatureAlgorithmTest.java?rev=1599467&r1=1599466&r2=1599467&view=diff
==============================================================================
--- santuario/xml-security-java/branches/1.5.x-fixes/src/test/java/org/apache/xml/security/test/dom/algorithms/PKSignatureAlgorithmTest.java (original)
+++ santuario/xml-security-java/branches/1.5.x-fixes/src/test/java/org/apache/xml/security/test/dom/algorithms/PKSignatureAlgorithmTest.java Tue Jun 3 10:23:48 2014
@@ -115,6 +115,23 @@ public class PKSignatureAlgorithmTest ex
}
@org.junit.Test
+ public void testRSA_SHA_224() throws Exception {
+ // Read in plaintext document
+ InputStream sourceDocument =
+ this.getClass().getClassLoader().getResourceAsStream(
+ "ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml");
+ DocumentBuilder builder = XMLUtils.createDocumentBuilder(false);
+ Document document = builder.parse(sourceDocument);
+
+ List<String> localNames = new ArrayList<String>();
+ localNames.add("PaymentInfo");
+
+ sign(XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA224, document, localNames, rsaKeyPair.getPrivate());
+ // XMLUtils.outputDOM(document, System.out);
+ verify(document, rsaKeyPair.getPublic(), localNames);
+ }
+
+ @org.junit.Test
public void testRSA_SHA_256() throws Exception {
// Read in plaintext document
InputStream sourceDocument =