背景BouncyCastle的1.51裝載在戰爭Wildfly 8.0
我想使用充氣城堡庫在我的戰爭解密私鑰。現在我先在獨立應用程序中測試代碼,並且它工作正常。現在,當我在Wildfly8.0上測試它作爲webapp時,面臨着Bouncy城堡的一些問題。
Wildfly 8.0正在使用安裝了充氣城堡供應商模塊。 BC版本在v1.46中使用。
我開發的代碼使用v1.51。 我按照此處提到的步驟:
- https://developer.jboss.org/thread/175395
- bouncycastle + JBoss AS7: JCE cannot authenticate the provider BC - 具體而言,接着在提供的指令對於特定部署(優選)
已經嘗試過
- 安裝JCE po licy文件。
- 添加到提供者列表中。
問題
我得到的錯誤是:
unable to read encrypted data: JCE cannot authenticate the provider BC
並觸發上述錯誤,在如下的代碼:
PKCS8EncryptedPrivateKeyInfo kp = (PKCS8EncryptedPrivateKeyInfo) keyPair;
InputDecryptorProvider pkcs8dec = new JceOpenSSLPKCS8DecryptorProviderBuilder()
.setProvider(new BouncyCastleProvider())
.build("somepass".toCharArray());
PrivateKeyInfo pko = kp.decryptPrivateKeyInfo(pkcs8dec);<-- ##Error here
還添加詳細信息,在我的pom.xml中,我添加了具有編譯範圍的jar,所以這些庫被複制到war和ge中安裝在WEB-INF/lib中。
任何提示解決上述問題?
您引用的'JBoss AS7:...'問題說:「創建一個Jboss模塊(文件夾[...])。把[...]「,但在上面說BC jar被安裝在WEB-INF/lib中。有沒有可能你誤解了那裏的指示? –
現有的JBoss模塊使用BC v1.46。我想用我的webapp使用BC v1.51。我無法升級JBoss模塊以使用BC v1.51,因爲還有其他webapps依賴於v1.46。希望這個清楚。 – eminemence
難道你不能爲1.51創建第二個模塊嗎? –