3

在这个 stackoverflow 答案中,您可以看到打印所有可用提供程序和相应算法的代码:如何找出我的 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 。这对缺失的算法有什么作用还是别的什么?

Note1:我使用 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 回答