Android PrivateKey到BouncyCastle PrivateKeyInfo?

时间:2017-03-03 09:46:25

标签: java android rsa bouncycastle spongycastle

我正在尝试使用Bouncy / SpongyCastle的OAEP编码来解码一些包装数据。但是,用于初始化OAEPEncoding类的SpongyCastle API需要CipherParameters。在我的情况下,我尝试使用Android PrivateKey展开某些内容,因此我假设我需要以某种方式将密钥转换为AsymmetricKeyParam并将其粘贴到OAEPEncoding.init函数中。但是,我真的尝试搜索类似的东西,但大多数示例都显示通过执行getPrivate().getEncoded()初始化。但是,Android不允许您获取原始私钥,因此我不确定如何处理此问题...
编辑:我使用BC的OAEP类的原因是使用OAEP和SHA-256

1 个答案:

答案 0 :(得分:0)

无法访问存储在Android密钥库中的密钥材料。您可以使用密钥,但无法提取它们。这是一个安全限制。 privateKey.getEncoded()总是为空,您将无法提取参数以使用SpongyCastle创建密钥。

请参阅Android Keystore

的安全功能
  

提取预防

     

使用两种安全措施保护Android密钥库密钥的密钥材料不被提取:

     
      
  • 密钥材料永远不会进入申请流程。当应用程序使用Android密钥库密钥执行加密操作时,幕后文本明文,密文以及要签名或验证的消息将被提供给系统进程执行加密操作。如果应用程序的进程受到损害,攻击者可能会使用该应用程序的密钥,但无法提取其密钥材料(例如,要在Android设备之外使用)。< / LI>   

如果您想使用OAEP,您需要自己创建和存储密钥或定位Android&gt; = 23