お世話になっております。
公開鍵で暗号化された値を、秘密鍵で復号する処理をColdFusionで実装していますが、
鍵仕様を鍵に変換するところでエラーになってしまいます。
解消法をご存知の方がいらっしゃったら、ご教授いただけないでしょうか。
【構成】
○サイトA(PHP)
openssl 使用で、鍵長が2048ビット、秘密鍵をパスワードにて暗号化
○サイトB(ColdFusion9 Enterprise)
サイトAより暗号化された引数をGETにて受け取り、復号化
【処理概要】
<cfscript>
/*秘密鍵の読み込み*/
privateKey = "C:\key\秘密鍵.pem";
privateKey = fileRead( privateKey );
/*秘密鍵をバイナリ変換*/
b64PrivateKey = toBase64(privateKey);
bnrPrivateKey = toBinary(b64PrivateKey);
/*秘密鍵をRSA方式に変換 */
privKeySpec = createObject("java", "java.security.spec.PKCS8EncodedKeySpec").init(bnrPrivateKey);
factory = createObject("java", "java.security.KeyFactory").getInstance("RSA");
privateKey = factory.generatePrivate(privKeySpec); ←★ここでエラーが発生
</cfscript>
【エラー内容】
21:26:49.049 - java.security.spec.InvalidKeySpecException - in AlgorithmID.findAlgID : line -1
Could not read BER data.(AlgorithmID.findAlgID: Could not find the OID)
21:26:49.049 - java.io.FileNotFoundException - in C:/ColdFusion9/wwwroot/WEB-INF/exception/errorcontext.cfm : line 44
AlgorithmID.findAlgID (指定されたファイルが見つかりません。)
writedump(privKeySpec);の結果
Class Name java.security.spec.PKCS8EncodedKeySpec
Methods
Method Return Type
getEncoded() byte[]
getFormat() java.lang.String
Parent Class
Class Name java.security.spec.EncodedKeySpec
Methods Method Return Type
getEncoded() byte[]
getFormat() java.lang.String
他サイトなど、色々参考に試してみましたが、行き詰まってしまいました。
ヒントでも構いませんので、ご教授いただけると幸いです。
よろしくお願い致します。Your text to link here...