このスタックオーバーフローの回答では、利用可能なすべてのプロバイダーと対応するアルゴリズムを出力するコードを見ることができます: 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 マシンで完全に動作することがテストされています。