AndroidKeysetManager生成器与HybridKeyTemplates一起崩溃

AndroidKeysetManager生成器与HybridKeyTemplates一起崩溃,android,cryptography,tink,Android,Cryptography,Tink,我有安卓密码,可以加密/解密数据。它是一年多前由另一个开发人员编写的(他后来离开了),一直工作得很好,直到最近,它开始崩溃,只有以下例外: android.security.keystore.AndroidKeyStoreRSAPrivateKey cannot be cast to javax.crypto.SecretKey 只有在升级应用程序且现有密钥已存在时,才会出现这种情况。我将gradle文件与之前的版本(有效)进行了比较,没有更新任何框架/SDK 异常发生在.build()中:

我有安卓密码,可以加密/解密数据。它是一年多前由另一个开发人员编写的(他后来离开了),一直工作得很好,直到最近,它开始崩溃,只有以下例外:

android.security.keystore.AndroidKeyStoreRSAPrivateKey cannot be cast to javax.crypto.SecretKey
只有在升级应用程序且现有密钥已存在时,才会出现这种情况。我将gradle文件与之前的版本(有效)进行了比较,没有更新任何框架/SDK

异常发生在.build()中:

我将代码追溯到
androidkeystreaesgcm
,从getKey返回的赋值出现异常(成功):

这使我无法确定如何进行。密钥库有一个密钥,我需要它来访问应用程序数据。我怀疑我的宿敌格拉德尔应该受到责备,但是。。。嗯,任何帮助或见解都将不胜感激

    private fun getOrGenerateNewKeysetHandle(alias: String): KeysetHandle {
        val keysetName = "${TINK_KEYSET_NAME}_$alias"
        return AndroidKeysetManager.Builder()
                .withSharedPref(reactApplicationContext, keysetName, PREF_FILE_NAME)
                .withKeyTemplate(HybridKeyTemplates.ECIES_P256_HKDF_HMAC_SHA256_AES128_GCM)
                .withMasterKeyUri(MASTER_KEY_URI)
                .build()
                .keysetHandle
    }
  public AndroidKeystoreAesGcm(String keyId) throws GeneralSecurityException, IOException {
    KeyStore keyStore = KeyStore.getInstance("AndroidKeyStore");
    keyStore.load(null /* param */);
    key = (SecretKey) keyStore.getKey(keyId, null /* password */);
  }