1. ホーム
  2. java

[解決済み] java swingアプリケーションでJCEがプロバイダBCを認証できない

2022-02-26 11:43:06

質問

私は、ある暗号化技術を使用するJavaでスイングベースのアプリケーションを作成しています。しかし javax.crypto.KeyGenerator.getInstance("AES", "BC") は例外を発生させます。

java.security.NoSuchProviderException: JCE cannot authenticate the provider BC
        at javax.crypto.SunJCE_b.a(DashoA13*..)
        at javax.crypto.KeyGenerator.getInstance(DashoA13*..)

では、何が問題なのでしょうか?

解決方法は?

GregS からのコメントを補足すると、すべての JCE プロバイダー JAR は、Java ランタイムによって信頼される前に署名されなければなりません。

BouncyCastleは、問題なく動作する署名付きJARを忠実に供給しています。しかし、このJARからクラスファイルを抽出したり、ソースを再コンパイルすると、署名が削除され、Javaがコードを拒否する原因となります。

関連するSOの質問はこちらをご覧ください。 カスタムJCEセキュリティプロバイダに署名する方法