0

I have a key created with OpenSSL from a previous app with the commands:

openssl req -nodes -newkey rsa:2048 -keyout root.key \ -out root.csr -config ./openssl.cnf 

I changed it to a PKCS8 key since I need to use that key in Java with:

openssl pkcs8 -topk8 -nocrypt -in pkcs1_key_file -out pkcs8_key.pem 

As far as I can tell, this works since I'm able to create a SSLContext with it. I'm having trouble recreating a KeyPair object in order to perform other operations with it. I've tried:

Path privateKeyPath = Paths.get("root.key.pem"); File privateKeyFile = new File( System.getProperty("user.dir") + File.separator + "ue.key.pem"); byte[] bytes = Files.readAllBytes(privateKeyPath); PKCS8EncodedKeySpec ks = new PKCS8EncodedKeySpec(bytes); BufferedReader br = new BufferedReader(new FileReader(privateKeyPath.toFile())); PEMParser pemParser = new PEMParser(new FileReader(privateKeyFile)); PrivateKeyInfo privateKeyInfo = (PrivateKeyInfo) pemParser.readObject(); // ????? 

I've seen other code like Read an encrypted private key with bouncycastle/spongycastle, where they do pemParser.readObject, the object is of type PEMEncryptedKeyPair, or they use the converter to getKeyPair(), but when I call readObject, my object is of type PrivateKeyInfo so I cannot call getKeyPair either.

Is there a step somewhere I'm missing in either the changing to PKCS8 key with the OpenSSL command, or in trying to reconstruct the KeyPair?

3

0

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.