android密钥存储条目清理

Hak*_*ata 5 android android-keystore

我有一个使用 AndroidKeystore 的应用程序,当我的应用程序被卸载时,我想从 Android Key Store 清除我的应用程序特定的键条目(因此,应用程序没有太多控制来调用 deleteEntry)。

我相信当我的应用程序被卸载时 android 会清理,但我不知道如何确认。我也找不到关于 android-dev 上 clenaup 的太多信息。

任何人都可以确认或帮助我们如何确保在卸载该应用程序时删除该应用程序的密钥库条目?

div*_*eek 7

是的,当您的应用程序被删除时,您的密钥库密钥会自动删除。具体来说,每当删除应用程序时,都会调用PackageManagerService.removeKeyStoreDataIfNeeded 。这会调用KeyStoreService::clear_uid来查找并删除指定应用程序 UID 的所有密钥别名。


Shi*_*ine 0

是的,密钥将从AndroidKeyStore中删除。为了确保这一点,如果调用后密钥不存在,您可以使用创建密钥的方法KeyStore.getInstance(),并验证在应用程序卸载时调用这些方法。

private static void init() throws KeyStoreException {

    keyStore = KeyStore.getInstance(ANDROID_KEY_STORE);
    try {
        keyStore = loadKeystore();
    } catch (CertificateException | IOException | NoSuchAlgorithmException e) {
        e.printStackTrace();
    }

    if (!keyStore.containsAlias(KEY_ALIAS)) {
        Log.w(Constants.TAG, "GENERATING KEYS");
        //KEY ABSENT, generate it

    }else{
        //EXISTING KEY
    }
}
Run Code Online (Sandbox Code Playgroud)

另请参阅此回复