3

このスタックオーバーフローの回答では、利用可能なすべてのプロバイダーと対応するアルゴリズムを出力するコードを見ることができます: How to find the algorithm [ encryption ] are supported by my JVM?

私はspongycastleの最新バージョンを使用しています.AndroidでSpongycastle(「SC」)のアルゴリズムを取得するように依頼するとほんの一握りのアルゴリズムしか取得できません。実際、私はこの非常に限られたリストを取得します:

provider: SC
algorithm: PBEWITHMD5ANDDES
algorithm: PBEWITHSHA256AND192BITAES-CBC-BC
algorithm: OLDHMACSHA384
algorithm: PBEWITHHMACSHA
algorithm: PBEWITHMD5ANDDES
algorithm: PKCS12PBE
algorithm: PBEWITHSHAAND128BITAES-CBC-BC
algorithm: IES
algorithm: PKIX
algorithm: RFC3280
algorithm: ISO9797ALG3MAC
algorithm: PBEWITHHMACSHA1
algorithm: CERTIFICATE
algorithm: PBEWITHSHAAND40BITRC2-CBC
algorithm: PBEWITHSHA1ANDDES
algorithm: PBEWITHMD5AND256BITA

一方、Linux マシンで SC のアルゴリズムを取得するように依頼すると、より多くのアルゴリズムが取得されます。数えたことはありませんが、上記の 10 倍のリストです。

残りのすべてのアルゴリズムはどこに行ったのですか??

このプロジェクトは典型的な android-java プロジェクトではなく、Android-Scala プロジェクトであるため、実行のたびにProguardを使用する必要があります。これは、欠落しているアルゴリズムに対して何らかの役割を果たしますか、それとも何か他のものですか?

注 1: SC を使用して鍵ペアを生成し、OpenPGP で暗号化および復号化しています

注 2: ソース コードは、OpenJDK-6、公開鍵暗号化用の RSA アルゴリズム、およびランダムな対称鍵としての BLOWFISH アルゴリズムを使用して、Linux マシンで完全に動作することがテストされています。

4

1 に答える 1

5

SpongyCastle OpenPGP API jarを含める必要がある場合があるため、それを含めていることを確認してください。

http://rtyley.github.com/spongycastle/#downloads

それ以外では、ProGuard 構成の問題が明らかな候補です。proguard 構成ファイルで次のように指定してみてください。

-keep class org.spongycastle.**
于 2013-03-29T20:27:14.630 に答える