更改密码后,KeyStore getEntry返回null

fli*_*r83 10 android keystore

嗨,我有一个程序,需要在密钥库中存储密钥,我生成一对密钥,我签署一个值,这一切都很有效.当用户转到首选项并更改密码或将密码模式更改为引脚模式时,问题就出现了.之后,当我尝试访问私钥时,密钥库返回给我一个空值.

我知道keysotore值是用解锁密码值签名的,但我相信如果用户更改了密码,密钥库将使用新密钥进行签名,但事实并非如此.

我做错了什么?如果不是这样,有没有办法改变密码并手动进行?

这是我正在使用的代码.

KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", "AndroidKeyStore");
kpg.initialize(new KeyPairGeneratorSpec.Builder(context)
        .setAlias(ALIAS)
        .setStartDate(now)
        .setEndDate(end)
        .setSerialNumber(BigInteger.valueOf(1))
        .setSubject(new X500Principal("CN=test1"))
        .build());

KeyPair kp = kpg.generateKeyPair();
Run Code Online (Sandbox Code Playgroud)

这是获取密钥库的代码

    KeyStore ks = KeyStore.getInstance("AndroidKeyStore");
    ks.load(null);
    KeyStore.Entry entry = ks.getEntry(ALIAS, null);
    if (!(entry instanceof KeyStore.PrivateKeyEntry)) {
        Log.w("borrar", "Not an instance of a PrivateKeyEntry");
        return null;
    } 
Run Code Online (Sandbox Code Playgroud)

谢谢,