我读到 Android 4.1 上的方法 KeyChain.getPrivateKey(Context,String) 存在问题,尽管在旧版本上它可以工作。有人有解决方案如何在 JellyBean 上获取私钥吗?
看到这个Using Android 4.1 Keychain,但不知何故无法处理我的情况。
不能在 4.1 上运行的代码,但在旧版本上运行良好。
PrivateKey pk;
try {
pk = KeyChain.getPrivateKey(context,string);
byte[] pkByte = pk.getEncoded();
pkBase64 = new String(Base64.encode(pkByte, Base64.NO_WRAP));
}
编辑:发现如果我在添加它时不更改证书别名(默认十六进制-十六进制-十六进制),那么getPrivateKey返回null,但是当我将别名更改为例如aaa方法时返回一些东西,但仍然不是正确的私钥. (例如,返回的私钥为 primeP =null primeQ =null。在 Android 4.0.4 上,primeP 和 primeQ 不是空值)