From: Felix Dörre Date: Wed, 23 Jul 2014 07:54:45 +0000 (+0200) Subject: Certificate testCase fix error on mac. X-Git-Url: https://code.wpia.club/?p=gigi.git;a=commitdiff_plain;h=98b0a9f22e27177b810f6977e44dfa803cd0c4f0 Certificate testCase fix error on mac. (... why does openssl on mac output other formats?) --- diff --git a/tests/org/cacert/gigi/testUtils/PemKey.java b/tests/org/cacert/gigi/testUtils/PemKey.java index 14d282fd..1bf2c250 100644 --- a/tests/org/cacert/gigi/testUtils/PemKey.java +++ b/tests/org/cacert/gigi/testUtils/PemKey.java @@ -1,5 +1,7 @@ package org.cacert.gigi.testUtils; +import java.io.IOException; +import java.io.InputStreamReader; import java.security.KeyFactory; import java.security.NoSuchAlgorithmException; import java.security.PrivateKey; @@ -10,10 +12,21 @@ import java.util.Base64; public class PemKey { public static PrivateKey parsePEMPrivateKey(String privKeyPEM) throws NoSuchAlgorithmException, InvalidKeySpecException { - privKeyPEM = privKeyPEM.replaceAll("-----BEGIN (RSA )?PRIVATE KEY-----", "").replace("\n", ""); + 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 (RSA )?PRIVATE KEY-----", ""); - + privKeyPEM = privKeyPEM.replaceAll("-----END PRIVATE KEY-----", ""); + System.out.println(privKeyPEM); // Base64 decode the data byte[] encoded = Base64.getDecoder().decode(privKeyPEM);