如何使用Android存储的私钥

我试图从Android系统存储使用下一个代码导入私钥:

PrivateKey privateKey = KeyChain.getPrivateKey(activity, alias); 

使用KeyChain.choosePrivateKeyAlias()方法检索aliasKeyChain.getPrivateKey不返回null但PrivateKey对象包含错误的关键字(其所有重要字段均为null )。 我以为密钥是不可导出的,并试图在下一个代码中使用它:

 Cipher rsa; rsa = Cipher.getInstance("RSA"); rsa.init(Cipher.ENCRYPT_MODE, privateKey); byte[] enc = rsa.doFinal(str.getBytes()); 

但得到了来自BouncyCastle内部的NullPointerException

带有密钥的证书是从存储卡function使用Android标准加载的PFX文件导入的。

我做错了什么?

UPD:我试图做不同的RSA证书和结果是一样的:(

Solutions Collecting From Web of "如何使用Android存储的私钥"