DKIM for JavaMailを使用して、 DKIM で送信メールに署名しています。
私のプライベート DKIM キーはopendkim-genkey -s default -d example.com次のように生成されます。
-----BEGIN RSA PRIVATE KEY-----
ABCCXQ...[long string]...SdQaZw9
-----END RSA PRIVATE KEY-----
JavaMail ライブラリの DKIM には、readme ファイルに記載されているように、DER 形式の秘密 DKIM キーが必要です。
JavaMail の DKIM には DER 形式の秘密鍵が必要です。openssl を使用して PEM キーを変換できます。
openssl pkcs8 -topk8 -nocrypt -in private.key.pem -out private.key.der -outform der
openssl を使用してキーを DER 形式に変換する必要がないようにする方法を探しています。代わりに、Java で直接変換したいと思います。
さまざまな提案(1、2、3 ) を試しましたが、これまでのところ何も機能していません。
DKIM for 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.
RSAPrivateKeyJavaMail の DKIM が RSA 秘密鍵から必要とするこれを簡単に生成するにはどうすればよいですか?