0

注意:这个问题是我关于在 Android 的 KeyStore 中安全密钥导入的其他问题的后续问题。

也就是说,当我的代码看似符合规范时,我得到了 INVALID_ARGUMENT 错误。

在尝试了 INVALID_ARGUMENT 错误的各种解决方案后,我决定尝试最基本的设置 - 运行 CTS 测试功能之一,但即使这样也会导致相同的 INVALID_ARGUMENT 错误。我真的对接下来要尝试什么没有任何想法,因为这是一个官方的 Android 测试并且(可能)代码部分是正确的,所以唯一的结论是问题出在另一个地方。

详细信息:我使用来自testKeyStore_ImportWrappedKey() CTS 测试函数的复制粘贴代码。wrap/authList/等。功能也是一样的。这些常量在Android 源代码中可以找到,但我也会在下面列出它们。

    private static final int WRAPPED_FORMAT_VERSION = 0;
    private static final int GCM_TAG_SIZE = 128;
    public static final int KM_KEY_FORMAT_RAW = 3;
    public static final int KM_ALGORITHM_AES = 32;
    public static final int KM_PURPOSE_ENCRYPT = 0;
    public static final int KM_PURPOSE_DECRYPT = 1;
    public static final int KM_MODE_ECB = 1;
    public static final int KM_MODE_CBC = 2;
    public static final int KM_PAD_NONE = 1;
    public static final int KM_PAD_PKCS7 = 64;

另一个重要的部分是使用的 bouncycastle 库,它们如下:

(使我能够在不替换已弃用类的情况下使用 CTS 代码的最后一个版本)

    implementation 'org.bouncycastle:bcpkix-jdk15on:1.49'
    implementation 'org.bouncycastle:bcprov-jdk15on:1.49'

一个 ASN.1 生成的 blob 示例,它可能会导致问题...有人可以给我发送一个有效的 ASN.1 blob,以便我可以比较并查看那里是否有任何错误?

4

0 回答 0