さまざまなタスクに RSA を使用するプログラムを作成しています。
キーペアを生成してファイルに書き込む方法は知っていますが、暗号化された (AES-256-CFB) キーペアを KeyPair オブジェクトにロードできません。
問題は、BouncyCastle ライブラリを使用して、暗号化された PEM キー ペアを java.security.KeyPair オブジェクトとしてロード/復号化するにはどうすればよいかということです。
ありがとう。
生成/エクスポート コード:
public void generateKeyPair(int keysize, File publicKeyFile, File privateKeyFile, String passphrase) throws FileNotFoundException, IOException, NoSuchAlgorithmException, InvalidKeySpecException, NoSuchProviderException {
SecureRandom random = new SecureRandom();
KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA", "BC");
generator.initialize(keysize, random);
KeyPair pair = generator.generateKeyPair();
Key pubKey = pair.getPublic();
PEMWriter pubWriter = new PEMWriter(new FileWriter(publicKeyFile));
pubWriter.writeObject(pubKey);
pubWriter.close();
PEMWriter privWriter = new PEMWriter(new FileWriter(privateKeyFile));
if (passphrase == null) {
privWriter.writeObject(pair);
} else {
PEMEncryptor penc = (new JcePEMEncryptorBuilder("AES-256-CFB"))
.build(passphrase.toCharArray());
privWriter.writeObject(pair, penc);
}
privWriter.close();
}