私は、次のようにのpom.xmlでの依存関係としてはBouncyCastleと春ブーツ(1.4.2.RELEASE)プロジェクトを持っている:私は指定しようとすると、しかし春ブーツとJCAプロバイダ
pom.xml
...
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.54</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
<version>1.54</version>
</dependency>
...
以下のような私のコードでのJCA操作のためのプロバイダとして、「BC」、:
:
Signature aSig = Signature.getInstance("SHA256withRSA","BC");
私は標準にはそのようなプロバイダーの例外を取得していませんエントリー私のJREのjava.securityファイル内
security.provider.1=org.bouncycastle.jce.provider.BouncyCastleProvider
を有しているにもかかわらず
。私のPOMファイルでこの依存関係で
、構築されたjarファイルは、BOOT-INF/libフォルダに弾む城の瓶を持っている:「私は無問題でそれらの中にクラスにアクセスすることができますが、JCAができ
3277268 Tue Dec 29 12:46:28 EST 2015 BOOT-INF/lib/bcprov-jdk15on-1.54.jar
673715 Tue Dec 29 12:46:02 EST 2015 BOOT-INF/lib/bcpkix-jdk15on-1.54.jar
プロバイダを見つける。
したがって、JCA には、プロバイダのjarsがjre/lib/extにある必要がありますか?
...または私は単に何かが不足していますか?
EDIT:
しかし、この:
Signature.getInstance("SHA256withRSA",new BouncyCastleProvider());
作品。
私は静的なインストールを行います...私のオリジナルの投稿を参照してください。 – RobD
次に、jreを 'jre/lib/ext'に追加する必要があります。また、 'bouncycastle'は依存関係を持つことができるため、positiを使用しないでください。 bouncycastleを参照するOracle https://docs.oracle.com/cd/E19830-01/819-4712/ablsc/index.htmlのこのリンクを参照してください。これらの他のリンクでは、jarをJVMの 'lib/ext'に含める必要があることも示しています。http://tomee.apache.org/bouncy-castle.html https://docs.jboss.org/jbossas/docs/Server_Configuration_Guide /4/html/ch09s19s04s04.html – pedrofb
ご返信ありがとうございます...感謝しています。あなたのコメントについては、どうしてですか?signature.getInstance( "SHA256withRSA"、新しいBouncyCastleProvider());仕事だが署名。getInstance( "SHA256withRSA"、 "BC");ジャーが/ jre/lib/extフォルダにない*ときに失敗しますか? – RobD