Android PrivateKey 到 BouncyCastle PrivateKeyInfo?
Android PrivateKey to BouncyCastle PrivateKeyInfo?
我正在尝试使用 Bouncy/SpongyCastle 的 OAEP 编码来解码一些包装数据。但是,用于初始化 OAEPEncoding
class 的 SpongyCastle API 需要 CipherParameters
。在我的例子中,我正在尝试使用 Android PrivateKey
解包,所以我假设我需要以某种方式将密钥转换为 AsymmetricKeyParam
并将其粘贴在 OAEPEncoding.init
功能。然而,我确实尝试过搜索类似的东西,但大多数示例都显示通过执行 getPrivate().getEncoded()
来初始化它。但是,Android 不允许您获取原始私钥,所以我不确定如何处理这个...
编辑:我使用 BC 的 OAEP classes 的原因是将 OAEP 与 SHA-256
一起使用
存储在 Android 密钥库中的密钥 material 不可访问。您可以使用密钥,但不能提取它们。这是一个安全限制。 privateKey.getEncoded()
将始终为 null,您将无法提取参数以使用 SpongyCastle 创建密钥。
的安全功能
Extraction Prevention
Key material of Android Keystore keys is protected from extraction using two security measures:
- Key material never enters the application process. When an application performs cryptographic operations using an Android Keystore key, behind the scenes plaintext, ciphertext, and messages to be signed or verified are fed to a system process which carries out the cryptographic operations. If the app's process is compromised, the attacker may be able to use the app's keys but will not be able to extract their key material (for example, to be used outside of the Android device).
如果你想使用 OAEP,你需要自己创建和存储密钥或目标 Android>=23
我正在尝试使用 Bouncy/SpongyCastle 的 OAEP 编码来解码一些包装数据。但是,用于初始化 OAEPEncoding
class 的 SpongyCastle API 需要 CipherParameters
。在我的例子中,我正在尝试使用 Android PrivateKey
解包,所以我假设我需要以某种方式将密钥转换为 AsymmetricKeyParam
并将其粘贴在 OAEPEncoding.init
功能。然而,我确实尝试过搜索类似的东西,但大多数示例都显示通过执行 getPrivate().getEncoded()
来初始化它。但是,Android 不允许您获取原始私钥,所以我不确定如何处理这个...
编辑:我使用 BC 的 OAEP classes 的原因是将 OAEP 与 SHA-256
存储在 Android 密钥库中的密钥 material 不可访问。您可以使用密钥,但不能提取它们。这是一个安全限制。 privateKey.getEncoded()
将始终为 null,您将无法提取参数以使用 SpongyCastle 创建密钥。
Extraction Prevention
Key material of Android Keystore keys is protected from extraction using two security measures:
- Key material never enters the application process. When an application performs cryptographic operations using an Android Keystore key, behind the scenes plaintext, ciphertext, and messages to be signed or verified are fed to a system process which carries out the cryptographic operations. If the app's process is compromised, the attacker may be able to use the app's keys but will not be able to extract their key material (for example, to be used outside of the Android device).
如果你想使用 OAEP,你需要自己创建和存储密钥或目标 Android>=23