]> WPIA git - gigi.git/blobdiff - tests/org/cacert/gigi/testUtils/PemKey.java
Extract PEM I/O
[gigi.git] / tests / org / cacert / gigi / testUtils / PemKey.java
index 1bf2c2508eac84b5a9224c28e68ccb675a1dbac6..c790dd7250d45cd67ef2e104ddd3da1fa1b41b50 100644 (file)
@@ -10,30 +10,31 @@ import java.security.spec.PKCS8EncodedKeySpec;
 import java.util.Base64;
 
 public class PemKey {
-       public static PrivateKey parsePEMPrivateKey(String privKeyPEM) throws NoSuchAlgorithmException,
-               InvalidKeySpecException {
-               if (privKeyPEM.startsWith("-----BEGIN RSA PRIVATE KEY-----")) {
-                       // key is pkcs1 convert to p8
-                       try {
-                               Process p = Runtime.getRuntime().exec(new String[] { "openssl", "pkcs8", "-topk8", "-nocrypt" });
-                               p.getOutputStream().write(privKeyPEM.getBytes());
-                               p.getOutputStream().close();
-                               privKeyPEM = IOUtils.readURL(new InputStreamReader(p.getInputStream()));
-                       } catch (IOException e) {
-                               e.printStackTrace();
-                       }
-               }
-               privKeyPEM = privKeyPEM.replaceAll("-----BEGIN PRIVATE KEY-----", "").replace("\n", "");
-               // Remove the first and last lines
-               privKeyPEM = privKeyPEM.replaceAll("-----END PRIVATE KEY-----", "");
-               System.out.println(privKeyPEM);
-               // Base64 decode the data
-               byte[] encoded = Base64.getDecoder().decode(privKeyPEM);
 
-               // PKCS8 decode the encoded RSA private key
-               PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(encoded);
-               KeyFactory kf = KeyFactory.getInstance("RSA");
-               PrivateKey privKey = kf.generatePrivate(keySpec);
-               return privKey;
-       }
+    public static PrivateKey parsePEMPrivateKey(String privKeyPEM) throws NoSuchAlgorithmException, InvalidKeySpecException {
+        if (privKeyPEM.startsWith("-----BEGIN RSA PRIVATE KEY-----")) {
+            // key is pkcs1 convert to p8
+            try {
+                Process p = Runtime.getRuntime().exec(new String[] {
+                        "openssl", "pkcs8", "-topk8", "-nocrypt"
+                });
+                p.getOutputStream().write(privKeyPEM.getBytes());
+                p.getOutputStream().close();
+                privKeyPEM = IOUtils.readURL(new InputStreamReader(p.getInputStream()));
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        privKeyPEM = privKeyPEM.replaceAll("-----BEGIN PRIVATE KEY-----", "").replace("\n", "");
+        // Remove the first and last lines
+        privKeyPEM = privKeyPEM.replaceAll("-----END PRIVATE KEY-----", "");
+        // Base64 decode the data
+        byte[] encoded = Base64.getDecoder().decode(privKeyPEM);
+
+        // PKCS8 decode the encoded RSA private key
+        PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(encoded);
+        KeyFactory kf = KeyFactory.getInstance("RSA");
+        PrivateKey privKey = kf.generatePrivate(keySpec);
+        return privKey;
+    }
 }