You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by gn...@apache.org on 2014/02/03 09:26:47 UTC

git commit: [SSHD-268] Upgrade to BouncyCastle 1.49

Updated Branches:
  refs/heads/master 464b6fe57 -> 4f9049980


[SSHD-268] Upgrade to BouncyCastle 1.49


Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/4f904998
Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/4f904998
Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/4f904998

Branch: refs/heads/master
Commit: 4f904998041941503a4ed1bac51b84b686c842c3
Parents: 464b6fe
Author: Guillaume Nodet <gn...@apache.org>
Authored: Mon Feb 3 09:26:40 2014 +0100
Committer: Guillaume Nodet <gn...@apache.org>
Committed: Mon Feb 3 09:26:40 2014 +0100

----------------------------------------------------------------------
 .../PEMGeneratorHostKeyProvider.java            | 16 +++++++-
 .../PEMGeneratorHostKeyProviderTest.java        | 41 +++++++++++++++-----
 2 files changed, 46 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/4f904998/sshd-core/src/main/java/org/apache/sshd/server/keyprovider/PEMGeneratorHostKeyProvider.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/keyprovider/PEMGeneratorHostKeyProvider.java b/sshd-core/src/main/java/org/apache/sshd/server/keyprovider/PEMGeneratorHostKeyProvider.java
index cc70521..a080478 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/keyprovider/PEMGeneratorHostKeyProvider.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/keyprovider/PEMGeneratorHostKeyProvider.java
@@ -24,8 +24,13 @@ import java.io.OutputStream;
 import java.io.OutputStreamWriter;
 import java.security.KeyPair;
 
+import org.bouncycastle.openssl.PEMDecryptorProvider;
+import org.bouncycastle.openssl.PEMEncryptedKeyPair;
+import org.bouncycastle.openssl.PEMKeyPair;
 import org.bouncycastle.openssl.PEMParser;
 import org.bouncycastle.openssl.PEMWriter;
+import org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter;
+import org.bouncycastle.openssl.jcajce.JcePEMDecryptorProviderBuilder;
 
 /**
  * TODO Add javadoc
@@ -51,7 +56,16 @@ public class PEMGeneratorHostKeyProvider extends AbstractGeneratorHostKeyProvide
 
     protected KeyPair doReadKeyPair(InputStream is) throws Exception {
         PEMParser r = new PEMParser(new InputStreamReader(is));
-        return (KeyPair) r.readObject();
+        Object o = r.readObject();
+        JcaPEMKeyConverter pemConverter = new JcaPEMKeyConverter();
+        pemConverter.setProvider("BC");
+        if (o instanceof PEMKeyPair) {
+            o = pemConverter.getKeyPair((PEMKeyPair)o);
+            return (KeyPair) o;
+        } else if (o instanceof KeyPair) {
+            return (KeyPair) o;
+        }
+        return null;
     }
 
     protected void doWriteKeyPair(KeyPair kp, OutputStream os) throws Exception {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/4f904998/sshd-core/src/test/java/org/apache/sshd/server/keyprovider/PEMGeneratorHostKeyProviderTest.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/test/java/org/apache/sshd/server/keyprovider/PEMGeneratorHostKeyProviderTest.java b/sshd-core/src/test/java/org/apache/sshd/server/keyprovider/PEMGeneratorHostKeyProviderTest.java
index 13d505e..a85973b 100644
--- a/sshd-core/src/test/java/org/apache/sshd/server/keyprovider/PEMGeneratorHostKeyProviderTest.java
+++ b/sshd-core/src/test/java/org/apache/sshd/server/keyprovider/PEMGeneratorHostKeyProviderTest.java
@@ -22,6 +22,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
 import java.io.File;
+import java.security.KeyPair;
 import java.security.spec.ECGenParameterSpec;
 
 import org.apache.sshd.common.KeyPairProvider;
@@ -48,7 +49,8 @@ public class PEMGeneratorHostKeyProviderTest {
         provider.setKeySize(512);
         provider.setPath(path.getPath());
         assertEquals(KeyPairProvider.SSH_DSS, provider.getKeyTypes());
-        assertNotNull(provider.loadKey(KeyPairProvider.SSH_DSS));
+        KeyPair pk1 = provider.loadKey(KeyPairProvider.SSH_DSS);
+        assertNotNull(pk1);
 
         // Read existing
         provider = new PEMGeneratorHostKeyProvider();
@@ -56,7 +58,10 @@ public class PEMGeneratorHostKeyProviderTest {
         provider.setKeySize(512);
         provider.setPath(path.getPath());
         assertEquals(KeyPairProvider.SSH_DSS, provider.getKeyTypes());
-        assertNotNull(provider.loadKey(KeyPairProvider.SSH_DSS));
+        KeyPair pk2 = provider.loadKey(KeyPairProvider.SSH_DSS);
+        assertNotNull(pk2);
+
+        assertEquals(pk2.getPublic(), pk1.getPublic());
     }
 
     @Test
@@ -72,7 +77,8 @@ public class PEMGeneratorHostKeyProviderTest {
         provider.setKeySize(512);
         provider.setPath(path.getPath());
         assertEquals(KeyPairProvider.SSH_RSA, provider.getKeyTypes());
-        assertNotNull(provider.loadKey(KeyPairProvider.SSH_RSA));
+        KeyPair pk1 = provider.loadKey(KeyPairProvider.SSH_RSA);
+        assertNotNull(pk1);
 
         // Read existing
         provider = new PEMGeneratorHostKeyProvider();
@@ -80,7 +86,10 @@ public class PEMGeneratorHostKeyProviderTest {
         provider.setKeySize(512);
         provider.setPath(path.getPath());
         assertEquals(KeyPairProvider.SSH_RSA, provider.getKeyTypes());
-        assertNotNull(provider.loadKey(KeyPairProvider.SSH_RSA));
+        KeyPair pk2 = provider.loadKey(KeyPairProvider.SSH_RSA);
+        assertNotNull(pk2);
+
+        assertEquals(pk2.getPublic(), pk1.getPublic());
     }
 
     @Test
@@ -100,7 +109,8 @@ public class PEMGeneratorHostKeyProviderTest {
         provider.setKeySpec(new ECGenParameterSpec("prime256v1"));
         provider.setPath(path.getPath());
         assertEquals(KeyPairProvider.ECDSA_SHA2_NISTP256, provider.getKeyTypes());
-        assertNotNull(provider.loadKey(KeyPairProvider.ECDSA_SHA2_NISTP256));
+        KeyPair pk1 = provider.loadKey(KeyPairProvider.ECDSA_SHA2_NISTP256);
+        assertNotNull(pk1);
 
         // Read existing
         provider = new PEMGeneratorHostKeyProvider();
@@ -108,7 +118,10 @@ public class PEMGeneratorHostKeyProviderTest {
         provider.setKeySpec(new ECGenParameterSpec("prime256v1"));
         provider.setPath(path.getPath());
         assertEquals(KeyPairProvider.ECDSA_SHA2_NISTP256, provider.getKeyTypes());
-        assertNotNull(provider.loadKey(KeyPairProvider.ECDSA_SHA2_NISTP256));
+        KeyPair pk2 = provider.loadKey(KeyPairProvider.ECDSA_SHA2_NISTP256);
+        assertNotNull(pk2);
+
+        assertEquals(pk2.getPublic(), pk1.getPublic());
     }
 
     @Test
@@ -128,7 +141,8 @@ public class PEMGeneratorHostKeyProviderTest {
         provider.setKeySpec(new ECGenParameterSpec("P-384"));
         provider.setPath(path.getPath());
         assertEquals(KeyPairProvider.ECDSA_SHA2_NISTP384, provider.getKeyTypes());
-        assertNotNull(provider.loadKey(KeyPairProvider.ECDSA_SHA2_NISTP384));
+        KeyPair pk1 = provider.loadKey(KeyPairProvider.ECDSA_SHA2_NISTP384);
+        assertNotNull(pk1);
 
         // Read existing
         provider = new PEMGeneratorHostKeyProvider();
@@ -136,7 +150,10 @@ public class PEMGeneratorHostKeyProviderTest {
         provider.setKeySpec(new ECGenParameterSpec("P-384"));
         provider.setPath(path.getPath());
         assertEquals(KeyPairProvider.ECDSA_SHA2_NISTP384, provider.getKeyTypes());
-        assertNotNull(provider.loadKey(KeyPairProvider.ECDSA_SHA2_NISTP384));
+        KeyPair pk2 = provider.loadKey(KeyPairProvider.ECDSA_SHA2_NISTP384);
+        assertNotNull(pk2);
+
+        assertEquals(pk2.getPublic(), pk1.getPublic());
     }
 
     @Test
@@ -156,7 +173,8 @@ public class PEMGeneratorHostKeyProviderTest {
         provider.setKeySpec(new ECGenParameterSpec("P-521"));
         provider.setPath(path.getPath());
         assertEquals(KeyPairProvider.ECDSA_SHA2_NISTP521, provider.getKeyTypes());
-        assertNotNull(provider.loadKey(KeyPairProvider.ECDSA_SHA2_NISTP521));
+        KeyPair pk1 = provider.loadKey(KeyPairProvider.ECDSA_SHA2_NISTP521);
+        assertNotNull(pk1);
 
         // Read existing
         provider = new PEMGeneratorHostKeyProvider();
@@ -164,6 +182,9 @@ public class PEMGeneratorHostKeyProviderTest {
         provider.setKeySpec(new ECGenParameterSpec("P-521"));
         provider.setPath(path.getPath());
         assertEquals(KeyPairProvider.ECDSA_SHA2_NISTP521, provider.getKeyTypes());
-        assertNotNull(provider.loadKey(KeyPairProvider.ECDSA_SHA2_NISTP521));
+        KeyPair pk2 = provider.loadKey(KeyPairProvider.ECDSA_SHA2_NISTP521);
+        assertNotNull(pk2);
+
+        assertEquals(pk2.getPublic(), pk1.getPublic());
     }
 }