[java-opensaml COMMIT] in /trunk/opensaml-security-api/src: main/java/org/opensaml/security/crypto/KeySupport.java te...

noreply at shibboleth.net noreply at shibboleth.net
Thu May 8 20:52:07 EDT 2014


Author: putmanb
Date: Thu May  8 20:52:07 2014
New Revision: 3849

URL: http://svn.shibboleth.net/view/java-opensaml?rev=3849&view=rev
Log:
Port forward: JXT-110: SecurityHelper derivePublicKey incorrectly derives public key for DSAPrivateKey 

Modified:
    trunk/opensaml-security-api/src/main/java/org/opensaml/security/crypto/KeySupport.java
    trunk/opensaml-security-api/src/test/java/org/opensaml/security/crypto/KeySupportTest.java

Modified: trunk/opensaml-security-api/src/main/java/org/opensaml/security/crypto/KeySupport.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-security-api/src/main/java/org/opensaml/security/crypto/KeySupport.java?rev=3849&r1=3848&r2=3849&view=diff
==============================================================================
--- trunk/opensaml-security-api/src/main/java/org/opensaml/security/crypto/KeySupport.java (original)
+++ trunk/opensaml-security-api/src/main/java/org/opensaml/security/crypto/KeySupport.java Thu May  8 20:52:07 2014
@@ -211,7 +211,7 @@
         if (key instanceof DSAPrivateKey) {
             DSAPrivateKey dsaKey = (DSAPrivateKey) key;
             DSAParams keyParams = dsaKey.getParams();
-            BigInteger y = keyParams.getQ().modPow(dsaKey.getX(), keyParams.getP());
+            BigInteger y = keyParams.getG().modPow(dsaKey.getX(), keyParams.getP());
             DSAPublicKeySpec pubKeySpec = new DSAPublicKeySpec(y, keyParams.getP(), keyParams.getQ(), keyParams.getG());
 
             try {

Modified: trunk/opensaml-security-api/src/test/java/org/opensaml/security/crypto/KeySupportTest.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-security-api/src/test/java/org/opensaml/security/crypto/KeySupportTest.java?rev=3849&r1=3848&r2=3849&view=diff
==============================================================================
--- trunk/opensaml-security-api/src/test/java/org/opensaml/security/crypto/KeySupportTest.java (original)
+++ trunk/opensaml-security-api/src/test/java/org/opensaml/security/crypto/KeySupportTest.java Thu May  8 20:52:07 2014
@@ -98,12 +98,14 @@
         PublicKey pubKey = KeySupport.derivePublicKey(privKey);
         Assert.assertNotNull(pubKey);
         Assert.assertEquals(pubKey.getAlgorithm(), "RSA");
+        Assert.assertTrue(KeySupport.matchKeyPair(pubKey, privKey));
         
         pubKey = null;
         privKey = testPrivKey(dsaPrivKeyPEMNoEncrypt, null, "DSA");
         pubKey = KeySupport.derivePublicKey(privKey);
         Assert.assertNotNull(pubKey);
         Assert.assertEquals(pubKey.getAlgorithm(), "DSA");
+        Assert.assertTrue(KeySupport.matchKeyPair(pubKey, privKey));
     }
 
     



More information about the commits mailing list