2017-02-17 22 views
0

jarのBouncy CastleやAndroidに実装されているBouncy Castleを使用しているかどうかはどうですか? https://www.bouncycastle.org/latest_releases.htmlからダウンロードし、Androidスタジオプロジェクトにjarを追加しました。 私はそれを使用しているかどうかを確認できますか(ダウンロードしたもの)?JounのBouncy CastleやAndroidに実装されているBouncy Castleを使用しているかどうかはどうですか?

+0

代わりにSpongyCastleを試してみることができます – EpicPandaForce

+0

@EpicPandaForceですので、どうか記入してください。 –

答えて

1

。私は、これが発生したときに正確にわからないんだけど、https://android.googlesource.com/platform/external/bouncycastle/+refsでソースコードリポジトリを見ていると、変更はアイスクリームサンドイッチで始まる起こっ示唆 - APIレベル14

私は、彼らがのstring-について何をしたかわからないんだけどベースのプロバイダールックアップ、たとえばCipher.getInstance("AES/GCM/PKCS5PADDING", "BC")。ただし、JCEのメソッドgetInstance()には、明示的にProviderクラスを指定できるバージョンがあります。 Cipher.getInstance("AES/GCM/PKCS5PADDING", new org.bouncycastle.jce.provider.BouncyCastleProvider())はあいまいさを排除します。

1

SpongyCastleは、Android用のBouncyCastleの正式なリパッケージです。このパッケージを使用する必要がありますhttps://rtyley.github.io/spongycastle/

なぜですか?

残念なことに、Androidプラットフォームには、Bouncy Castleのカットダウンバージョンが付属しています。また、障害が発生するだけでなく、クラスローダーの競合のためにライブラリの更新版をインストールすることも難しくなります。

海綿状城は、Android上で動作させるために小さな変化のカップルと株式弾む城のライブラリです:

  • すべてのパッケージ名がorg.bouncycastleから移動してきた* org.spongycastleします*。。クラスローダを避けるために

  • は、JavaセキュリティAPIプロバイダ名は現在、SCではなくBC

  • を海綿状ではなく、何のクラス名は変更しないので、BouncyCastleProviderクラスが弾むのままですが、トンへ移動している競合しますorg.spongycastle.jce.providerパッケージ。 Androidは、彼らがcom.androidに使用はBouncyCastleクラスの名前を変更することで、名前空間の競合を修正しました。**少なくとも最後のいくつかのバージョンの

+0

Androidの最近のバージョンでは、Androidが使用するbouncycastleクラスの名前がcom.android.org.bouncycastle。*などに変更されているため、少なくともこれらのバージョンではもはや問題はなくなりました。 –

+0

@JamesKPolkあなたは最近どれくらいか教えてくれますか? –

+0

@JamesKPolkソースを見ると、少なくともAPI 17はあなたが言及した「リファクタリング」バージョンを使用しています。私はあなたのコメントが答えになるかもしれないと信じています。 –

関連する問題