我正在使用SpongyCastle(完全实现BouncyCastle的Android加密功能),我有一个包含384密钥的bks。我正在尝试使用KeyStore.getKey(别名,密码)方法提取该密钥就像你在密钥库中的任何密钥一样。但我遇到的是错误
java.security.UnrecoverableKeyException: no match
。
进行一些研究表明,这可能是因为密钥大小太大而Android无法处理,这是有道理的,因为我的程序获得大小128和256的其他密钥没问题。通常在Java中,这可以通过将“Unlimited Strength”JCE导入Java安全文件夹来解决,但是android呢?我可以将无限强度JCE导入android(我的直觉本能是否)如果没有,是否有任何关于如何提取密钥的建议? SpongyCastle解决了很多我的其他问题,我希望这里也有SpongyCastle解决方案。
谢谢!
答案 0 :(得分:8)
因此,经过多次摔跤,我发现了问题。
我没有指定提供商,所以我的程序默认为默认的Android BouncyCastle。我做的那一刻
KeyStore ks = new KeyStore("BKS","SC");
而不是
KeyStore ks = new KeyStore("BKS");
它运作得很好,并没有抱怨。