私はJava KeyStore(JKS)を持っており、BouncyCastleで読む必要があります。私はこの方法キーストアを作成した場合BouncyCastleでJKSを読む
Security.insertProviderAt(new BouncyCastleProvider(), 1);
は::私はプロバイダのリストの一番上にBC
プロバイダを追加しました
java.security.KeyStoreException: JKS not found
:
final KeyStore keystore = KeyStore.getInstance("JKS", "BC");
を私はエラーを取得しますプロバイダを指定しない場合、KeyStoreはSun
プロバイダで作成され、 keystore.aliases()
はEmptyEnumeration
を含みます。
私はthisトピックで見たように、はBouncyCastleは、私ははBouncyCastleでJKSを読むことができますどのようにJKS
で作業することができますか?
プログラムの先頭に次の行を追加しましたか: 'Security.addProvider(new BouncyCastleProvider());'? [Section 6.0](https://www.bouncycastle.org/specifications.html)を参照してください。 –
@ Mr.Polywhirlはい。私は説明を編集しました – Kirill
あなたは "働いている"と "実装中"を混同しています。通常は、JCEの 'getInstance()'メソッドのどれかでプロバイダを指定しないでください。 'Security.addProvider()'とプロバイダを追加するだけで、JCEはどのプロバイダからでも実装を見つけることができます。 OracleプロバイダのみがJKSキーストアを実装していますが、KeyStore.getInstance( "JKS"、 "BC");はJCE実装にはBouncyCastleだけを見なければなりません。また、あなたが何をしているのか本当に分かっていない限り、特定の位置にBouncyCastleプロバイダを追加しないでください。 –