密钥库无法加载ID为_androidx_security_master_key_的密钥

我正在尝试使用 masterKey 来加密共享首选项。但是,有时我的用户会由于来自密钥库的 invalidKeyException 而崩溃。我无法在本地重现这个 =

 java.security.KeyStoreException: the master key android-keystore://_androidx_security_master_key_ exists but is unusable


 Caused by: java.security.InvalidKeyException: Keystore cannot load the key with ID: _androidx_security_master_key_

任何想法为什么会发生这种情况?

    val masterKey = MasterKey.Builder(context)
        .setKeyGenParameterSpec(
            KeyGenParameterSpec.Builder(
                MasterKey.DEFAULT_MASTER_KEY_ALIAS,
                PURPOSE_ENCRYPT or PURPOSE_DECRYPT
            )
                .setBlockModes(BLOCK_MODE_GCM)
                .setEncryptionPaddings(ENCRYPTION_PADDING_NONE)
                .setKeySize(MasterKey.DEFAULT_AES_GCM_MASTER_KEY_SIZE)
                .build()
        )
        .build()
    securePrefs = EncryptedSharedPreferences.create(
        context,
        PREFERENCES,
        masterKey,
        EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
        EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
    )

回答

该问题也已详细报告给 Google 错误跟踪器。关注那里的讨论可能会更好。

https://issuetracker.google.com/issues/176215143


以上是密钥库无法加载ID为_androidx_security_master_key_的密钥的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>