Java: преобразование закрытого ключа DKIM из RSA в DER для JavaMail
я используюDKIM для JavaMail подписать исходящую почту с DKIM.
Мой личный ключ DKIM генерируется сopendkim-genkey -s default -d example.com
и выглядит так:
-----BEGIN RSA PRIVATE KEY-----
ABCCXQ...[long string]...SdQaZw9
-----END RSA PRIVATE KEY-----
Библиотеке DKIM для JavaMail необходим закрытый ключ DKIM в формате DER, как указано в их файле readme:
DKIM для JavaMail нужен закрытый ключ в формате DER, вы можете преобразовать ключ PEM с помощью openssl:
openssl pkcs8 -topk8 -nocrypt -in private.key.pem -out private.key.der -outform der
Я ищу способ избежать использования openssl для преобразования моего ключа в формат DER. Вместо этого я хотел бы сделать преобразование в Java напрямую.
Я пробовал разные предложения(1, 2, 3) но пока ничего не получалось.
DKIM для Java обрабатывает файл DER следующим образом:
File privKeyFile = new File(privkeyFilename);
// read private key DER file
DataInputStream dis = new DataInputStream(new FileInputStream(privKeyFile));
byte[] privKeyBytes = new byte[(int) privKeyFile.length()];
dis.read(privKeyBytes);
dis.close();
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
// decode private key
PKCS8EncodedKeySpec privSpec = new PKCS8EncodedKeySpec(privKeyBytes);
RSAPrivateKey privKey = (RSAPrivateKey) keyFactory.generatePrivate(privSpec);
Итак, в конце концов мне нужноRSAPrivateKey
.
Как я могу легко сгенерировать этоRSAPrivateKey
что DKIM для JavaMail требует от моего закрытого ключа RSA?