[utilities COMMIT] in /xmlsectool/trunk: doc/RELEASE-NOTES.txt src/main/java/edu/internet2/middleware/security/XmlSec...

noreply at shibboleth.net noreply at shibboleth.net
Mon Mar 18 06:48:45 EDT 2013


Author: iay
Date: Mon Mar 18 06:48:45 2013
New Revision: 359

URL: http://svn.shibboleth.net/view/utilities?rev=359&view=rev
Log:
[XSTJ-28] - provide blacklist ability for SHA-1 during signature verification

Added:
    xmlsectool/trunk/src/test/resources/manual/XSTJ-28/
    xmlsectool/trunk/src/test/resources/manual/XSTJ-28/original.xml   (with props)
    xmlsectool/trunk/src/test/resources/manual/XSTJ-28/readme.md
    xmlsectool/trunk/src/test/resources/manual/XSTJ-28/sha1.xml   (with props)
Modified:
    xmlsectool/trunk/doc/RELEASE-NOTES.txt
    xmlsectool/trunk/src/main/java/edu/internet2/middleware/security/XmlSecTool.java
    xmlsectool/trunk/src/main/java/edu/internet2/middleware/security/XmlSecToolCommandLineArguments.java

Modified: xmlsectool/trunk/doc/RELEASE-NOTES.txt
URL: http://svn.shibboleth.net/view/utilities/xmlsectool/trunk/doc/RELEASE-NOTES.txt?rev=359&r1=358&r2=359&view=diff
==============================================================================
--- xmlsectool/trunk/doc/RELEASE-NOTES.txt (original)
+++ xmlsectool/trunk/doc/RELEASE-NOTES.txt Mon Mar 18 06:48:45 2013
@@ -2,6 +2,7 @@
 =============================================
 [XSTJ-38] - blacklist MD5 algorithm during signature verification
 [XSTJ-31] - add ECDSA elliptic curve signature support
+[XSTJ-28] - provide blacklist ability for SHA-1 during signature verification
 [XSTJ-27] - compatibility with Apache Santuario 1.5.x
 [XSTJ-24] - should not use xmlsec IdResolver class
 [XSTJ-22] - non-zero exit codes from shell script

Modified: xmlsectool/trunk/src/main/java/edu/internet2/middleware/security/XmlSecTool.java
URL: http://svn.shibboleth.net/view/utilities/xmlsectool/trunk/src/main/java/edu/internet2/middleware/security/XmlSecTool.java?rev=359&r1=358&r2=359&view=diff
==============================================================================
--- xmlsectool/trunk/src/main/java/edu/internet2/middleware/security/XmlSecTool.java (original)
+++ xmlsectool/trunk/src/main/java/edu/internet2/middleware/security/XmlSecTool.java Mon Mar 18 06:48:45 2013
@@ -143,6 +143,9 @@
         if (cli.doClearBlacklist()) {
             cli.getBlacklist().clear();
         }
+        for (XmlSecToolCommandLineArguments.DigestChoice dig: cli.getBlacklistDigests()) {
+            cli.getBlacklist().addDigest(dig);
+        }
         if (cli.doListBlacklist()) {
             System.out.println("Digest algorithm blacklist:");
             if (cli.getBlacklist().getDigestBlacklist().isEmpty()) {

Modified: xmlsectool/trunk/src/main/java/edu/internet2/middleware/security/XmlSecToolCommandLineArguments.java
URL: http://svn.shibboleth.net/view/utilities/xmlsectool/trunk/src/main/java/edu/internet2/middleware/security/XmlSecToolCommandLineArguments.java?rev=359&r1=358&r2=359&view=diff
==============================================================================
--- xmlsectool/trunk/src/main/java/edu/internet2/middleware/security/XmlSecToolCommandLineArguments.java (original)
+++ xmlsectool/trunk/src/main/java/edu/internet2/middleware/security/XmlSecToolCommandLineArguments.java Mon Mar 18 06:48:45 2013
@@ -21,11 +21,13 @@
 import jargs.gnu.CmdLineParser.OptionException;
 
 import java.io.PrintStream;
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 import java.util.Set;
 import java.util.TreeSet;
+import java.util.Vector;
 
 import org.opensaml.xml.encryption.EncryptionConstants;
 import org.opensaml.xml.signature.SignatureConstants;
@@ -55,9 +57,39 @@
          * Initializes the blacklist with those algorithms that should be
          * blacklisted by default.
          */
-        protected Blacklist() {
-            digestBlacklist.add(SignatureConstants.ALGO_ID_DIGEST_NOT_RECOMMENDED_MD5);
-            signatureBlacklist.add(SignatureConstants.ALGO_ID_SIGNATURE_NOT_RECOMMENDED_RSA_MD5);
+        public Blacklist() {
+            addDigestAlgorithm(SignatureConstants.ALGO_ID_DIGEST_NOT_RECOMMENDED_MD5);
+            addSignatureAlgorithm(SignatureConstants.ALGO_ID_SIGNATURE_NOT_RECOMMENDED_RSA_MD5);
+        }
+        
+        /**
+         * Blacklist an individual digest algorithm.
+         * 
+         * @param uri algorithm URI to blacklist
+         */
+        private void addDigestAlgorithm(String uri) {
+            digestBlacklist.add(uri);
+        }
+        
+        /**
+         * Blacklist an individual signature algorithm.
+         * 
+         * @param uri algorithm URI to blacklist
+         */
+        private void addSignatureAlgorithm(String uri) {
+            signatureBlacklist.add(uri);
+        }
+        
+        /**
+         * Blacklist the digest and signature algorithms associated with
+         * a {@link DigestChoice}.
+         * 
+         * @param digestChoice {@DigestChoice} to add to blacklist
+         */
+        public void addDigest(DigestChoice digestChoice) {
+            addDigestAlgorithm(digestChoice.getDigestAlgorithm());
+            addSignatureAlgorithm(digestChoice.getRsaAlgorithm());

[... 117 lines stripped ...]


More information about the commits mailing list