相关疑难解决方法(0)

无法从KeyStore删除别名-keyStore.store引发UnsupportedOperationException

无法从KeyStore中删除别名中提到了相同的问题。该问题的解决方案是“在keyStore上调用.store()方法以刷新更改”,这看起来不错。

我的问题是,我正在使用AndroidKeyStore,它似乎不支持该操作。我的代码如下:

public static void resetKeyStore() {
    KeyStore keyStore;
    try {
        keyStore = KeyStore.getInstance("AndroidKeyStore");
        keyStore.load(null);

        ArrayList<String> toDelete = new ArrayList<>();

        Enumeration<String> e = keyStore.aliases();
        while(e.hasMoreElements()){
            toDelete.add(e.nextElement());
        }

        for(String s : toDelete) {
            keyStore.deleteEntry(s);
        }
        // keyStore.store(null);

    } catch (KeyStoreException | IOException | NoSuchAlgorithmException | CertificateException e) {           
        Log.wtf(TAG, e);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果没有调用keyStore.store(null),则此函数将成功退出,但是密钥存储区中仍然有一些密钥。

如果我拨打电话,则会引发此异常:

E/AndroidRuntime:  Caused by: java.lang.UnsupportedOperationException
E/AndroidRuntime:     at java.security.KeyStoreSpi.engineStore(KeyStoreSpi.java:256)
E/AndroidRuntime:     at java.security.KeyStore.store(KeyStore.java:565)
E/AndroidRuntime:     at com.mycompany.myapp.LocalKeyStore.resetKeyStore(LocalKeyStore.java:235)
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激

java android

7
推荐指数
0
解决办法
422
查看次数

标签 统计

android ×1

java ×1