我正在尝试使用Bouncy / SpongyCastle的OAEP编码来解码一些包装数据。但是,用于初始化OAEPEncoding
类的SpongyCastle API需要CipherParameters
。在我的情况下,我尝试使用Android PrivateKey
展开某些内容,因此我假设我需要以某种方式将密钥转换为AsymmetricKeyParam
并将其粘贴到OAEPEncoding.init
函数中。但是,我真的尝试搜索类似的东西,但大多数示例都显示通过执行getPrivate().getEncoded()
初始化。但是,Android不允许您获取原始私钥,因此我不确定如何处理此问题...
编辑:我使用BC的OAEP类的原因是使用OAEP和SHA-256
答案 0 :(得分:0)
无法访问存储在Android密钥库中的密钥材料。您可以使用密钥,但无法提取它们。这是一个安全限制。 privateKey.getEncoded()
总是为空,您将无法提取参数以使用SpongyCastle创建密钥。
提取预防
使用两种安全措施保护Android密钥库密钥的密钥材料不被提取:
- 密钥材料永远不会进入申请流程。当应用程序使用Android密钥库密钥执行加密操作时,幕后文本明文,密文以及要签名或验证的消息将被提供给系统进程执行加密操作。如果应用程序的进程受到损害,攻击者可能会使用该应用程序的密钥,但无法提取其密钥材料(例如,要在Android设备之外使用)。< / LI>
如果您想使用OAEP,您需要自己创建和存储密钥或定位Android&gt; = 23