2016-05-11 22 views
0

opensslシェルコマンドの使用pkcs12ファイルをエクスポートするときにカスタムプロバイダを定義するために-CSPパラメータを渡すことができます。Javaを使用してキーストア用の暗号化サービスプロバイダを設定する方法

OpenSSLのPKCS12 -export -in "$ {DIR}/$ {NAME} .CRT" -passinパス: "$ {PASSWD_KEY}" -passoutパス: "$ {PASSWD_KEY}" 例えば

-in "$ {DIR}/$ {名前} .key" -name "$ {名前}" -certfile $ {ファイル} -CSP "ECDSA_p256#Microsoftソフトウェアキーサービスプロバイダ" -out "$ {DIR}/$ { NAME} .p12 "

Java APIとbouncy castleを使用して生成されたキーストア用に、このプロバイダを設定する必要があります。 キーストアとX509v3CertificateBuilderクラスを使用しています。

Java APIを使用してpkcs12を生成する際に、プロバイダを設定するにはどうすればよいですか?

注:Keystore.getInstanceメソッドはプロバイダーを指定するStringを受け取るが、この文字列は、Windowsアプリケーションで楕円曲線を使用できるプロバイダーではなく、弾力のある城スタイルのプロバイダーを表していることが分かります。

+1

あなたは、なぜこれが必要? – EJP

+0

Javaで作成されたPKCS12キーストアを使用して.Netアプリケーションで楕円曲線暗号アルゴリズムを使用するため。 –

答えて

1

マイクロソフトCSPのプロパティを設定する方法を私が発見した、あなたがこれをしなければならない。

PKCS12BagAttributeCarrier bagAttr = (PKCS12BagAttributeCarrier)privateKey; 
bagAttr.setBagAttribute( 
MicrosoftObjectIdentifiers.microsoft.branch("17").branch("1"), 
new DERBMPString("ECDSA_P256#Microsoft Software key Service Provider")); 
関連する問題