Next Page

1

Previous Page

スレッド: 公開鍵暗号方式の復号化

作成日: 04/10/15 09:56 PM

返信: 1

sato


新米


入会日: 04/10/15

投稿数: 2

公開鍵暗号方式の復号化
04/10/15 9:56 PM

お世話になっております。

公開鍵で暗号化された値を、秘密鍵で復号する処理を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...

Link | Top | Bottom

sato


新米


入会日: 04/10/15

投稿数: 2

RE: 公開鍵暗号方式の復号化
04/13/15 10:46 AM

自己解決しました。
JavaではPEM形式の鍵は使えないので、DER形式に変換後、
無事復号できました。

お騒がせいたしました。

Link | Top | Bottom

Next Page

1

Previous Page

新規投稿

ログイン して返信して下さい。