Привет всем, я пытаюсь преобразовать закрытый ключ PKCS # 8, который я генерирую в своей java-программе, в файл в кодировке PEM.
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());
После запуска программы у меня есть закрытый ключ в обоих форматах и открытый ключ (код не отображается, как он работает).Затем я использую эту команду openssl, чтобы преобразовать файл private.key обратно в форматированный файл pem.
openssl pkcs8 -nocrypt -inform DER -in private.key -out private2.pem
Когда я сравниваю private.pem и private2.pem, они различаются и, очевидно, когда я пытаюсь использовать private.Это говорит о том, что это неверный файл.
Какой шаг мне не хватает, чтобы правильно преобразовать этот закрытый ключ в нужный мне формат PEM?Я не могу использовать OpenSSL из моей программы, иначе я бы просто добавил этот вызов функции.У меня есть доступ к библиотекам BouncyCastle в этой программе, поэтому, возможно, у нее есть решение, которое я пропускаю.