我怎麼知道如果我從罐子裏使用Bouncy Castle或在Android中使用Bouncy Castle? 我已從https://www.bouncycastle.org/latest_releases.html下載並將jar添加到我的Android Studio項目中。 如何檢查我是否使用它(我下載的那個)?我如何知道從罐子裏使用Bouncy Castle還是在Android中使用Bouncy Castle?
回答
對於至少在過去的幾個版本的Android已經通過重命名他們使用com.android的BouncyCastle的類固定的命名空間衝突。**。我不確定這是什麼時候發生的,但是查看源代碼存儲庫https://android.googlesource.com/platform/external/bouncycastle/+refs表明發生了變化,從冰淇淋三明治開始 - API級別14.
我不確定他們做了什麼,基於服務器的查詢,例如Cipher.getInstance("AES/GCM/PKCS5PADDING", "BC")
。但是,JCE中的每個getInstance()
方法也有一個可以明確指定Provider類的版本,例如Cipher.getInstance("AES/GCM/PKCS5PADDING", new org.bouncycastle.jce.provider.BouncyCastleProvider())
,消除了任何歧義。
SpongyCastle是BouncyCastle for Android的官方重新包裝。你應該使用這個包https://rtyley.github.io/spongycastle/
爲什麼?
不幸的是,Android平臺附帶了Bouncy Castle的精簡版本 - 以及被削弱,由於類加載器的衝突,它還使安裝更新版本的庫變得困難。
海綿城堡股票有幾個小的變化充氣城堡庫,使其在Android上工作:
所有程序包名稱已經從org.bouncycastle移動*到org.spongycastle *。
,以避免衝突的類加載器的Java安全API提供商名稱現在是SC,而不是BC
無類名稱變化,所以BouncyCastleProvider類仍然有彈性,不海綿,而是移動到t他org.spongycastle.jce.provider包。
最近的Android版本已將Android使用的bouncycastle類重命名爲com.android.org.bouncycastle。*之類的東西,所以這不再是一個問題,至少對於這些版本來說。 –
@JamesKPolk你能告訴我最近怎麼樣? –
@JamesKPolk查看來源,至少API 17使用您提到的「重構」版本。我相信你的評論也可能是一個答案。 –
- 1. 使用Bouncy Castle閱讀PEM RSA公鑰僅使用Bouncy Castle
- 2. 如何在Bouncy Castle,Java中使用V2Form?
- 3. SecurityException和Bouncy Castle
- 4. bouncy castle DefaultSignatureAlgorithmIdentifierFinder NoSuchFieldError:gostR3410_94
- 5. Bouncy Castle作爲提供者v/s Bouncy Castle API
- 6. 使用Bouncy Castle的GOST 3411算法
- 7. 使用Bouncy Castle的C#RSA解密
- 8. 使用Mono或Bouncy Castle c#實現TLS
- 9. 使用Bouncy Castle Java生成X509證書
- 10. Bouncy Castle使用哪個版本的OpenSSL?
- 11. 爲Bouncy Castle C#使用多個鍵API
- 12. Bouncy Castle C中的PBKDF2#
- 13. 如何使用Bouncy Castle從CMS中刪除簽名?
- 14. Bouncy Castle Diffie-Hellman DHParams問題
- 15. Bouncy Castle PBEWITHSHA256AND256BITAES加密C#
- 16. Bouncy Castle的TLS-SRP支持
- 17. 如何在C中使用Bouncy Castle簽署公共PGP密鑰#
- 18. 如何在AES和PBE中使用Bouncy Castle輕量級API
- 19. 如何使用Bouncy Castle用Eclipse加密J2ME應用程序
- 20. 用Bouncy Castle重建私鑰和公鑰?
- 21. 使用Android實現Bouncy Castle密碼算法
- 22. 如何使用Bouncy Castle和java解密secureZip加密文件?
- 23. 如何正確使用Bouncy Castle的RSA(輕量級API)的OAEPEncoding
- 24. 使用Bouncy Castle在Java中創建自定義X509 v3擴展
- 25. 如何使用Bouncy Castle庫在C#中使用PGP密鑰簽署txt文件
- 26. Bouncy Castle中的空PGPKeyRing或PGPKeyRingCollection
- 27. Itext中的Bouncy Castle Error錯誤
- 28. Java中的PBKDF2與Bouncy Castle vs .NET Rfc2898DeriveBytes?
- 29. 閱讀C#和Bouncy Castle中的RSA PrivateKey
- 30. 創建密鑰使用情況離線CRL在Bouncy Castle簽名
你可以嘗試使用SpongyCastle而不是 – EpicPandaForce
@EpicPandaForce因爲是...請填寫。 –