我怎么知道如果我从罐子里使用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因为是...请填写。 –