android - 无限力量 Jce和Android

标签 android bouncycastle spongycastle

我正在使用 SpongyCaSTLe(BouncyCaSTLe 的 Android 加密功能的完整实现)并且我有一个包含大小为 384 的 key 的 bks。我正在尝试使用 KeyStore.getKey(alias, password) 方法提取该 key 就像 keystore 中的任何 key 一样。但是我遇到的是错误

java.security.UnrecoverableKeyException:不匹配

做一些研究表明,这可能是因为 key 大小太大,Android 无法处理,这是有道理的,因为我的程序获得大小为 128 和 256 的其他 key 没问题。通常在 Java 中,这可以通过将“Unlimited Strength”JCE 导入 Java 安全文件夹来解决,但是 android 呢?我可以将无限强度的 JCE 导入到 android 中吗(我的直觉是不能)如果不能,是否有关于如何提取 key 的任何建议? SpongyCaSTLe 解决了我的很多其他问题,我希望这里也有 SpongyCaSTLe 解决方案。

谢谢!

最佳答案

经过一番折腾,我终于找到了问题所在。

我没有指定提供商,所以我的程序默认使用默认的 Android BouncyCaSTLe。我做的那一刻

KeyStore ks = new KeyStore("BKS","SC");

相对于

KeyStore ks = new KeyStore("BKS");

它工作得很好,没有提示。

关于android - 无限力量 Jce和Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7258016/

相关文章:

openssl - 如何让JAVA验证OpenSSL RSA/PSS签名

java - ".android"文件夹和 "debug.keystore"文件丢失

java - 使用 XYPlot 时如何解决问题 'Binary XML file line #8: Binary XML file line #8: Error inflating class com.androidplot.xy.XYPlot'

java - 找不到属性 setter 方法 setAlpha

android - 在 Android 上创建投票应用程序的任何指南?

java - 如何从tomcat的context.xml中传递加密相关属性以用于java中的jdbc连接?

java - RSA_NO_PADDING 在 Java 和 C++ 之间有什么不同?

bouncycaSTLe - 如何生成有效的 ECDSA EC key 对?

android - SpongycaSTLe 在 android 上加载时缺少许多算法

java - ECC加密解密中的Base64编码/解码