Convertir un fichier PKCS#8 de la clé privée PEM en java

Bonjour à tous, je suis en train de convertir un fichier PKCS#8 clé privée que je génère dans mon programme java à un PEM fichier encodé.

Security.addProvider(new BouncyCastleProvider());
SecureRandom rand = new SecureRandom();
JDKKeyPairGenerator.RSA keyPairGen = new JDKKeyPairGenerator.RSA();        
keyPairGen.initialize(2048, rand);
KeyPair keyPair = keyPairGen.generateKeyPair();

PEMWriter privatepemWriter = new PEMWriter(new FileWriter(new File(dir + "private.key")));
privatepemWriter.writeObject(keyPair.getPrivate());

Après avoir exécuté le programme, j'ai la clé privée dans les deux formats et d'une clé publique(le code n'est pas indiqué qu'il fonctionne). Je puis utiliser cette commande openssl pour conver le privé.touche de retour pour un pem formaté fichier.

openssl pkcs8 -nocrypt -inform DER -in private.key -out private2.pem

Quand je compare privé.pem et private2.pem ils sont différents et il est évident que lorsque je tente d'utiliser le privé.pem, il dit que c'est pas un fichier valide.

Ce qui me manque dans le but de les convertir cette clé privée dans le format PEM que j'ai besoin? Je ne peux pas utiliser OpenSSL de l'intérieur de mon programme, sinon, je voudrais simplement ajouter que l'appel de fonction. J'ai accès à BouncyCastle libs dans ce programme, alors peut-être qu'il a une solution, je suis surplombant.

Ce logiciel vous essayer d'inter-opérer avec? (Quand vous dites, "il dit qu'il n'est pas un fichier valide," ce qui est "elle"?)
Curl et OpenSSL dire la même chose quand j'essaie d'utiliser le privé.clé pour les diverses opérations.
manquant privatepemWriter.close(); // pour rincer correctement. Je vous remercie.

OriginalL'auteur Hiro2k | 2010-08-24