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/01/16 14:47:02 UTC

svn commit: r1872884 - in /santuario/xml-security-java/trunk/src: main/java/org/apache/xml/security/algorithms/ main/java/org/apache/xml/security/algorithms/implementations/ main/java/org/apache/xml/security/resource/ test/java/org/apache/xml/security/...

Author: coheigea
Date: Thu Jan 16 14:47:02 2020
New Revision: 1872884

URL: http://svn.apache.org/viewvc?rev=1872884&view=rev
Log:
Minor SignatureAlgorithmSpi refactor

Modified:
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/SignatureAlgorithm.java
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/SignatureAlgorithmSpi.java
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/implementations/IntegrityHmac.java
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/implementations/SignatureBaseRSA.java
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/implementations/SignatureDSA.java
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/implementations/SignatureECDSA.java
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/resource/xmlsecurity_de.properties
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/resource/xmlsecurity_en.properties
    santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/dom/signature/HMACOutputLengthTest.java

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/SignatureAlgorithm.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/SignatureAlgorithm.java?rev=1872884&r1=1872883&r2=1872884&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/SignatureAlgorithm.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/SignatureAlgorithm.java Thu Jan 16 14:47:02 2020
@@ -164,8 +164,7 @@ public class SignatureAlgorithm extends
     private static SignatureAlgorithmSpi getSignatureAlgorithmSpi(String algorithmURI, Provider provider)
         throws XMLSignatureException {
         try {
-            Class<? extends SignatureAlgorithmSpi> implementingClass =
-                algorithmHash.get(algorithmURI);
+            Class<? extends SignatureAlgorithmSpi> implementingClass = algorithmHash.get(algorithmURI);
             LOG.debug("Create URI \"{}\" class \"{}\"", algorithmURI, implementingClass);
             if (implementingClass == null) {
                 Object[] exArgs = { algorithmURI };

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/SignatureAlgorithmSpi.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/SignatureAlgorithmSpi.java?rev=1872884&r1=1872883&r2=1872884&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/SignatureAlgorithmSpi.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/SignatureAlgorithmSpi.java Thu Jan 16 14:47:02 2020
@@ -156,7 +156,7 @@ public abstract class SignatureAlgorithm
      *
      * @param element
      */
-    protected void engineGetContextFromElement(Element element) {
+    protected void engineGetContextFromElement(Element element) throws XMLSignatureException {
     }
 
     /**
@@ -168,6 +168,4 @@ public abstract class SignatureAlgorithm
     protected abstract void engineSetHMACOutputLength(int HMACOutputLength)
         throws XMLSignatureException;
 
-    public void reset() {
-    }
 }

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/implementations/IntegrityHmac.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/implementations/IntegrityHmac.java?rev=1872884&r1=1872883&r2=1872884&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/implementations/IntegrityHmac.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/implementations/IntegrityHmac.java Thu Jan 16 14:47:02 2020
@@ -46,18 +46,10 @@ public abstract class IntegrityHmac exte
         org.slf4j.LoggerFactory.getLogger(IntegrityHmac.class);
 
     /** Field macAlgorithm */
-    private Mac macAlgorithm;
+    private final Mac macAlgorithm;
 
-    /** Field HMACOutputLength */
-    private int HMACOutputLength;
-    private boolean HMACOutputLengthSet = false;
-
-    /**
-     * Method engineGetURI
-     *
-     *{@inheritDoc}
-     */
-    public abstract String engineGetURI();
+    /** Field hmacOutputLength */
+    private HMACOutputLength hmacOutputLength;
 
     /**
      * Returns the output length of the hash/digest.
@@ -98,12 +90,6 @@ public abstract class IntegrityHmac exte
         throw new XMLSignatureException("empty", new Object[]{"Incorrect method call"});
     }
 
-    public void reset() {
-        HMACOutputLength = 0;
-        HMACOutputLengthSet = false;
-        this.macAlgorithm.reset();
-    }
-
     /**
      * Proxy method for {@link java.security.Signature#verify(byte[])}
      * which is executed on the internal {@link java.security.Signature} object.
@@ -114,7 +100,7 @@ public abstract class IntegrityHmac exte
      */
     protected boolean engineVerify(byte[] signature) throws XMLSignatureException {
         try {
-            if (this.HMACOutputLengthSet && this.HMACOutputLength < getDigestLength()) {
+            if (hmacOutputLength != null && hmacOutputLength.length < getDigestLength()) {
                 LOG.debug("HMACOutputLength must not be less than {}", getDigestLength());
                 Object[] exArgs = { String.valueOf(getDigestLength()) };
                 throw new XMLSignatureException("algorithms.HMACOutputLengthMin", exArgs);
@@ -149,16 +135,6 @@ public abstract class IntegrityHmac exte
         try {
             this.macAlgorithm.init(secretKey);
         } catch (InvalidKeyException ex) {
-            // reinstantiate Mac object to work around bug in JDK
-            // see: http://bugs.sun.com/view_bug.do?bug_id=4953555
-            Mac mac = this.macAlgorithm;
-            try {
-                this.macAlgorithm = Mac.getInstance(macAlgorithm.getAlgorithm());
-            } catch (Exception e) {
-                // this shouldn't occur, but if it does, restore previous Mac
-                LOG.debug("Exception when reinstantiating Mac: {}", e);
-                this.macAlgorithm = mac;
-            }
             throw new XMLSignatureException(ex);
         }
     }
@@ -172,7 +148,7 @@ public abstract class IntegrityHmac exte
      */
     protected byte[] engineSign() throws XMLSignatureException {
         try {
-            if (this.HMACOutputLengthSet && this.HMACOutputLength < getDigestLength()) {
+            if (hmacOutputLength != null && hmacOutputLength.length < getDigestLength()) {
                 LOG.debug("HMACOutputLength must not be less than {}", getDigestLength());
                 Object[] exArgs = { String.valueOf(getDigestLength()) };
                 throw new XMLSignatureException("algorithms.HMACOutputLengthMin", exArgs);
@@ -308,21 +284,22 @@ public abstract class IntegrityHmac exte
     /**
      * Method engineSetHMACOutputLength
      *
-     * @param HMACOutputLength
+     * @param length
+     * @throws XMLSignatureException
      */
-    protected void engineSetHMACOutputLength(int HMACOutputLength) {
-        this.HMACOutputLength = HMACOutputLength;
-        this.HMACOutputLengthSet = true;
+    @Override
+    protected void engineSetHMACOutputLength(int length) throws XMLSignatureException {
+        hmacOutputLength = new HMACOutputLength(length);
     }
 
     /**
      * Method engineGetContextFromElement
      *
      * @param element
+     * @throws XMLSignatureException
      */
-    protected void engineGetContextFromElement(Element element) {
-        super.engineGetContextFromElement(element);
-
+    @Override
+    protected void engineGetContextFromElement(Element element) throws XMLSignatureException {
         if (element == null) {
             throw new IllegalArgumentException("element null");
         }
@@ -331,8 +308,7 @@ public abstract class IntegrityHmac exte
         if (n != null) {
             String hmacLength = XMLUtils.getFullTextChildrenFromNode(n);
             if (hmacLength != null && !"".equals(hmacLength)) {
-                this.HMACOutputLength = Integer.parseInt(hmacLength);
-                this.HMACOutputLengthSet = true;
+                this.hmacOutputLength = new HMACOutputLength(Integer.parseInt(hmacLength));
             }
         }
     }
@@ -347,12 +323,12 @@ public abstract class IntegrityHmac exte
             throw new IllegalArgumentException("null element");
         }
 
-        if (this.HMACOutputLengthSet) {
+        if (hmacOutputLength != null) {
             Document doc = element.getOwnerDocument();
             Element HMElem =
                 XMLUtils.createElementInSignatureSpace(doc, Constants._TAG_HMACOUTPUTLENGTH);
             Text HMText =
-                doc.createTextNode("" + this.HMACOutputLength);
+                doc.createTextNode("" + hmacOutputLength.length);
 
             HMElem.appendChild(HMText);
             XMLUtils.addReturnToElement(element);
@@ -384,10 +360,12 @@ public abstract class IntegrityHmac exte
          * {@inheritDoc}
          *
          */
+        @Override
         public String engineGetURI() {
             return XMLSignature.ALGO_ID_MAC_HMAC_SHA1;
         }
 
+        @Override
         int getDigestLength() {
             return 160;
         }
@@ -416,10 +394,12 @@ public abstract class IntegrityHmac exte
          *
          * {@inheritDoc}
          */
+        @Override
         public String engineGetURI() {
             return XMLSignature.ALGO_ID_MAC_HMAC_SHA224;
         }
 
+        @Override
         int getDigestLength() {
             return 224;
         }
@@ -448,10 +428,12 @@ public abstract class IntegrityHmac exte
          *
          * {@inheritDoc}
          */
+        @Override
         public String engineGetURI() {
             return XMLSignature.ALGO_ID_MAC_HMAC_SHA256;
         }
 
+        @Override
         int getDigestLength() {
             return 256;
         }
@@ -480,10 +462,12 @@ public abstract class IntegrityHmac exte
          * {@inheritDoc}
          *
          */
+        @Override
         public String engineGetURI() {
             return XMLSignature.ALGO_ID_MAC_HMAC_SHA384;
         }
 
+        @Override
         int getDigestLength() {
             return 384;
         }
@@ -512,10 +496,12 @@ public abstract class IntegrityHmac exte
          * {@inheritDoc}
          *
          */
+        @Override
         public String engineGetURI() {
             return XMLSignature.ALGO_ID_MAC_HMAC_SHA512;
         }
 
+        @Override
         int getDigestLength() {
             return 512;
         }
@@ -544,10 +530,12 @@ public abstract class IntegrityHmac exte
          *
          * {@inheritDoc}
          */
+        @Override
         public String engineGetURI() {
             return XMLSignature.ALGO_ID_MAC_HMAC_RIPEMD160;
         }
 
+        @Override
         int getDigestLength() {
             return 160;
         }
@@ -576,12 +564,36 @@ public abstract class IntegrityHmac exte
          *
          * {@inheritDoc}
          */
+        @Override
         public String engineGetURI() {
             return XMLSignature.ALGO_ID_MAC_HMAC_NOT_RECOMMENDED_MD5;
         }
 
+        @Override
         int getDigestLength() {
             return 128;
         }
     }
+
+    private static class HMACOutputLength {
+        private static final int MIN_LENGTH = 128;
+        private static final int MAX_LENGTH = 2048;
+        private final int length;
+
+        public HMACOutputLength(int length) throws XMLSignatureException {
+            this.length = length;
+
+            // Test some invariants
+            if (length < MIN_LENGTH) {
+                LOG.debug("HMACOutputLength must not be less than {}", MIN_LENGTH);
+                Object[] exArgs = { String.valueOf(MIN_LENGTH) };
+                throw new XMLSignatureException("algorithms.HMACOutputLengthMin", exArgs);
+            }
+            if (length > MAX_LENGTH) {
+                LOG.debug("HMACOutputLength must not be more than {}", MAX_LENGTH);
+                Object[] exArgs = { String.valueOf(MAX_LENGTH) };
+                throw new XMLSignatureException("algorithms.HMACOutputLengthMax", exArgs);
+            }
+        }
+    }
 }

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/implementations/SignatureBaseRSA.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/implementations/SignatureBaseRSA.java?rev=1872884&r1=1872883&r2=1872884&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/implementations/SignatureBaseRSA.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/implementations/SignatureBaseRSA.java Thu Jan 16 14:47:02 2020
@@ -41,11 +41,8 @@ public abstract class SignatureBaseRSA e
     private static final org.slf4j.Logger LOG =
         org.slf4j.LoggerFactory.getLogger(SignatureBaseRSA.class);
 
-    /** {@inheritDoc} */
-    public abstract String engineGetURI();
-
     /** Field algorithm */
-    private Signature signatureAlgorithm;
+    private final Signature signatureAlgorithm;
 
     /**
      * Constructor SignatureRSA
@@ -119,17 +116,6 @@ public abstract class SignatureBaseRSA e
         try {
             this.signatureAlgorithm.initVerify((PublicKey) publicKey);
         } catch (InvalidKeyException ex) {
-            // reinstantiate Signature object to work around bug in JDK
-            // see: http://bugs.sun.com/view_bug.do?bug_id=4953555
-            Signature sig = this.signatureAlgorithm;
-            try {
-                this.signatureAlgorithm = Signature.getInstance(signatureAlgorithm.getAlgorithm());
-            } catch (Exception e) {
-                // this shouldn't occur, but if it does, restore previous
-                // Signature
-                LOG.debug("Exception when reinstantiating Signature: {}", e);
-                this.signatureAlgorithm = sig;
-            }
             throw new XMLSignatureException(ex);
         }
     }
@@ -242,6 +228,7 @@ public abstract class SignatureBaseRSA e
         }
 
         /** {@inheritDoc} */
+        @Override
         public String engineGetURI() {
             return XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA1;
         }
@@ -266,6 +253,7 @@ public abstract class SignatureBaseRSA e
         }
 
         /** {@inheritDoc} */
+        @Override
         public String engineGetURI() {
             return XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA224;
         }
@@ -290,6 +278,7 @@ public abstract class SignatureBaseRSA e
         }
 
         /** {@inheritDoc} */
+        @Override
         public String engineGetURI() {
             return XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA256;
         }
@@ -314,6 +303,7 @@ public abstract class SignatureBaseRSA e
         }
 
         /** {@inheritDoc} */
+        @Override
         public String engineGetURI() {
             return XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA384;
         }
@@ -338,6 +328,7 @@ public abstract class SignatureBaseRSA e
         }
 
         /** {@inheritDoc} */
+        @Override
         public String engineGetURI() {
             return XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA512;
         }
@@ -362,6 +353,7 @@ public abstract class SignatureBaseRSA e
         }
 
         /** {@inheritDoc} */
+        @Override
         public String engineGetURI() {
             return XMLSignature.ALGO_ID_SIGNATURE_RSA_RIPEMD160;
         }
@@ -386,6 +378,7 @@ public abstract class SignatureBaseRSA e
         }
 
         /** {@inheritDoc} */
+        @Override
         public String engineGetURI() {
             return XMLSignature.ALGO_ID_SIGNATURE_NOT_RECOMMENDED_RSA_MD5;
         }
@@ -410,6 +403,7 @@ public abstract class SignatureBaseRSA e
         }
 
         /** {@inheritDoc} */
+        @Override
         public String engineGetURI() {
             return XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA1_MGF1;
         }
@@ -434,6 +428,7 @@ public abstract class SignatureBaseRSA e
         }
 
         /** {@inheritDoc} */
+        @Override
         public String engineGetURI() {
             return XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA224_MGF1;
         }
@@ -458,6 +453,7 @@ public abstract class SignatureBaseRSA e
         }
 
         /** {@inheritDoc} */
+        @Override
         public String engineGetURI() {
             return XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA256_MGF1;
         }
@@ -482,6 +478,7 @@ public abstract class SignatureBaseRSA e
         }
 
         /** {@inheritDoc} */
+        @Override
         public String engineGetURI() {
             return XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA384_MGF1;
         }
@@ -506,6 +503,7 @@ public abstract class SignatureBaseRSA e
         }
 
         /** {@inheritDoc} */
+        @Override
         public String engineGetURI() {
             return XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA512_MGF1;
         }
@@ -530,6 +528,7 @@ public abstract class SignatureBaseRSA e
         }
 
         /** {@inheritDoc} */
+        @Override
         public String engineGetURI() {
             return XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA3_224_MGF1;
         }
@@ -554,6 +553,7 @@ public abstract class SignatureBaseRSA e
         }
 
         /** {@inheritDoc} */
+        @Override
         public String engineGetURI() {
             return XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA3_256_MGF1;
         }
@@ -578,6 +578,7 @@ public abstract class SignatureBaseRSA e
         }
 
         /** {@inheritDoc} */
+        @Override
         public String engineGetURI() {
             return XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA3_384_MGF1;
         }
@@ -602,6 +603,7 @@ public abstract class SignatureBaseRSA e
         }
 
         /** {@inheritDoc} */
+        @Override
         public String engineGetURI() {
             return XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA3_512_MGF1;
         }

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/implementations/SignatureDSA.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/implementations/SignatureDSA.java?rev=1872884&r1=1872883&r2=1872884&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/implementations/SignatureDSA.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/implementations/SignatureDSA.java Thu Jan 16 14:47:02 2020
@@ -49,7 +49,7 @@ public class SignatureDSA extends Signat
         org.slf4j.LoggerFactory.getLogger(SignatureDSA.class);
 
     /** Field algorithm */
-    private Signature signatureAlgorithm;
+    private final Signature signatureAlgorithm;
 
     /** size of Q */
     private int size;
@@ -122,8 +122,7 @@ public class SignatureDSA extends Signat
                 LOG.debug("Called DSA.verify() on " + XMLUtils.encodeToString(signature));
             }
 
-            byte[] jcebytes = JavaUtils.convertDsaXMLDSIGtoASN1(signature,
-                                                                size/8);
+            byte[] jcebytes = JavaUtils.convertDsaXMLDSIGtoASN1(signature, size / 8);
 
             return this.signatureAlgorithm.verify(jcebytes);
         } catch (SignatureException ex) {
@@ -151,17 +150,6 @@ public class SignatureDSA extends Signat
         try {
             this.signatureAlgorithm.initVerify((PublicKey) publicKey);
         } catch (InvalidKeyException ex) {
-            // reinstantiate Signature object to work around bug in JDK
-            // see: http://bugs.sun.com/view_bug.do?bug_id=4953555
-            Signature sig = this.signatureAlgorithm;
-            try {
-                this.signatureAlgorithm = Signature.getInstance(signatureAlgorithm.getAlgorithm());
-            } catch (Exception e) {
-                // this shouldn't occur, but if it does, restore previous
-                // Signature
-                LOG.debug("Exception when reinstantiating Signature: {}", e);
-                this.signatureAlgorithm = sig;
-            }
             throw new XMLSignatureException(ex);
         }
         size = ((DSAKey)publicKey).getParams().getQ().bitLength();
@@ -174,7 +162,7 @@ public class SignatureDSA extends Signat
         try {
             byte[] jcebytes = this.signatureAlgorithm.sign();
 
-            return JavaUtils.convertDsaASN1toXMLDSIG(jcebytes, size/8);
+            return JavaUtils.convertDsaASN1toXMLDSIG(jcebytes, size / 8);
         } catch (IOException ex) {
             throw new XMLSignatureException(ex);
         } catch (SignatureException ex) {
@@ -301,6 +289,7 @@ public class SignatureDSA extends Signat
             super(provider);
         }
 
+        @Override
         public String engineGetURI() {
             return XMLSignature.ALGO_ID_SIGNATURE_DSA_SHA256;
         }

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/implementations/SignatureECDSA.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/implementations/SignatureECDSA.java?rev=1872884&r1=1872883&r2=1872884&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/implementations/SignatureECDSA.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/implementations/SignatureECDSA.java Thu Jan 16 14:47:02 2020
@@ -45,11 +45,7 @@ public abstract class SignatureECDSA ext
     private static final org.slf4j.Logger LOG =
         org.slf4j.LoggerFactory.getLogger(SignatureECDSA.class);
 
-    /** {@inheritDoc} */
-    public abstract String engineGetURI();
-
-    /** Field algorithm */
-    private Signature signatureAlgorithm;
+    private final Signature signatureAlgorithm;
 
     /**
      * Converts an ASN.1 ECDSA value to a XML Signature ECDSA Value.
@@ -166,17 +162,6 @@ public abstract class SignatureECDSA ext
         try {
             this.signatureAlgorithm.initVerify((PublicKey) publicKey);
         } catch (InvalidKeyException ex) {
-            // reinstantiate Signature object to work around bug in JDK
-            // see: http://bugs.sun.com/view_bug.do?bug_id=4953555
-            Signature sig = this.signatureAlgorithm;
-            try {
-                this.signatureAlgorithm = Signature.getInstance(signatureAlgorithm.getAlgorithm());
-            } catch (Exception e) {
-                // this shouldn't occur, but if it does, restore previous
-                // Signature
-                LOG.debug("Exception when reinstantiating Signature: {}", e);
-                this.signatureAlgorithm = sig;
-            }
             throw new XMLSignatureException(ex);
         }
     }
@@ -293,6 +278,7 @@ public abstract class SignatureECDSA ext
         }
 
         /** {@inheritDoc} */
+        @Override
         public String engineGetURI() {
             return XMLSignature.ALGO_ID_SIGNATURE_ECDSA_SHA1;
         }
@@ -317,6 +303,7 @@ public abstract class SignatureECDSA ext
         }
 
         /** {@inheritDoc} */
+        @Override
         public String engineGetURI() {
             return XMLSignature.ALGO_ID_SIGNATURE_ECDSA_SHA224;
         }
@@ -342,6 +329,7 @@ public abstract class SignatureECDSA ext
         }
 
         /** {@inheritDoc} */
+        @Override
         public String engineGetURI() {
             return XMLSignature.ALGO_ID_SIGNATURE_ECDSA_SHA256;
         }
@@ -367,6 +355,7 @@ public abstract class SignatureECDSA ext
         }
 
         /** {@inheritDoc} */
+        @Override
         public String engineGetURI() {
             return XMLSignature.ALGO_ID_SIGNATURE_ECDSA_SHA384;
         }
@@ -392,6 +381,7 @@ public abstract class SignatureECDSA ext
         }
 
         /** {@inheritDoc} */
+        @Override
         public String engineGetURI() {
             return XMLSignature.ALGO_ID_SIGNATURE_ECDSA_SHA512;
         }
@@ -416,6 +406,7 @@ public abstract class SignatureECDSA ext
         }
 
         /** {@inheritDoc} */
+        @Override
         public String engineGetURI() {
             return XMLSignature.ALGO_ID_SIGNATURE_ECDSA_RIPEMD160;
         }

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/resource/xmlsecurity_de.properties
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/resource/xmlsecurity_de.properties?rev=1872884&r1=1872883&r2=1872884&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/resource/xmlsecurity_de.properties [iso-8859-1] (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/resource/xmlsecurity_de.properties [iso-8859-1] Thu Jan 16 14:47:02 2020
@@ -26,6 +26,7 @@ algorithm.extendsWrongClass = Kann URI {
 algorithms.CannotUseAlgorithmParameterSpecOnDSA = AlgorithmParameterSpec kann nicht f\u00fcr DSA Signaturen benutzt werden.
 algorithms.CannotUseAlgorithmParameterSpecOnRSA = AlgorithmParameterSpec kann nicht f\u00fcr RSA Signaturen benutzt werden.
 algorithms.CannotUseSecureRandomOnMAC = SecureRandom kann nicht f\u00fcr MAC's angewandt werden.
+algorithms.HMACOutputLengthMax = HMACOutputLength darf nicht grosser als {0} sein
 algorithms.HMACOutputLengthMin = HMACOutputLength darf nicht kleiner als {0} sein
 algorithms.HMACOutputLengthOnlyForHMAC = Die HMACOutputLength kann nur bei HMAC integrit\u00e4ts Algorithmen angegeben werden
 algorithms.NoSuchAlgorithm = Der Algorithmus {0} ist nicht verf\u00fcgbar.

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/resource/xmlsecurity_en.properties
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/resource/xmlsecurity_en.properties?rev=1872884&r1=1872883&r2=1872884&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/resource/xmlsecurity_en.properties [iso-8859-1] (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/resource/xmlsecurity_en.properties [iso-8859-1] Thu Jan 16 14:47:02 2020
@@ -26,6 +26,7 @@ algorithm.extendsWrongClass = Cannot reg
 algorithms.CannotUseAlgorithmParameterSpecOnDSA = Sorry, but you cannot use a AlgorithmParameterSpec object for creating DSA signatures.
 algorithms.CannotUseAlgorithmParameterSpecOnRSA = Sorry, but you cannot use a AlgorithmParameterSpec object for creating RSA signatures.
 algorithms.CannotUseSecureRandomOnMAC = Sorry, but you cannot use a SecureRandom object for creating MACs.
+algorithms.HMACOutputLengthMax = HMACOutputLength must not be more than {0}
 algorithms.HMACOutputLengthMin = HMACOutputLength must not be less than {0}
 algorithms.HMACOutputLengthOnlyForHMAC = A HMACOutputLength can only be specified for HMAC integrity algorithms
 algorithms.NoSuchAlgorithmNoEx = The requested algorithm {0} does not exist.

Modified: santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/dom/signature/HMACOutputLengthTest.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/dom/signature/HMACOutputLengthTest.java?rev=1872884&r1=1872883&r2=1872884&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/dom/signature/HMACOutputLengthTest.java (original)
+++ santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/dom/signature/HMACOutputLengthTest.java Thu Jan 16 14:47:02 2020
@@ -80,13 +80,11 @@ public class HMACOutputLengthTest {
     @org.junit.jupiter.api.Test
     public void test_generate_hmac_sha1_40() throws Exception {
         Document doc = TestUtils.newDocument();
-        XMLSignature sig =
+        try {
             new XMLSignature(
                 doc, null, XMLSignature.ALGO_ID_MAC_HMAC_SHA1,
-                40, Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS
+                 40, Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS
             );
-        try {
-            sig.sign(getSecretKey("secret".getBytes(StandardCharsets.US_ASCII)));
             fail("Expected HMACOutputLength Exception");
         } catch (XMLSignatureException xse) {
             // System.out.println(xse.getMessage());
@@ -113,13 +111,4 @@ public class HMACOutputLengthTest {
         return signature.checkSignatureValue(sk);
     }
 
-    private SecretKey getSecretKey(final byte[] secret) {
-        return new SecretKey() {
-            private static final long serialVersionUID = -6527915934685938837L;
-            public String getFormat()   { return "RAW"; }
-            public byte[] getEncoded()  { return secret; }
-            public String getAlgorithm(){ return "SECRET"; }
-        };
-    }
-
 }
\ No newline at end of file