1

私はQlassified libraryを使用していると私はアンドロイド6.0と6.0.1にスローされる次の例外を取得しています: java.lang.ClassCastException: android.security.keystore.AndroidKeyStoreECPublicKey cannot be cast to java.security.interfaces.RSAPublicKeyアンドロイド6.0キーストアClassCast例外

データが内部に暗号化されているときに具体的に、この問題が発生しましたこのコードブロック:

final KeyStore.PrivateKeyEntry privateKeyEntry = (KeyStore.PrivateKeyEntry) keyStoreInstance.getEntry(alias, null); 

final RSAPublicKey publicKey = (RSAPublicKey) privateKeyEntry.getCertificate().getPublicKey(); // error 

byte[] dataBytes = input.getBytes(CHARSET); 
Cipher cipher = Cipher.getInstance(ALGORITHM, ANDROID_MODE); 
cipher.init(Cipher.ENCRYPT_MODE, publicKey); 
return Base64.encodeToString(cipher.doFinal(dataBytes), BASE64_MODE); 

任意の考えですか?

+0

RSA公開鍵で証明書を使用しますか? –

答えて

1

これはキーストアに格納されたキーの生成に由来します。あなたはECアルゴリズムを使用していました。

KeyPairGenerator generator = KeyPairGenerator.getInstance(KeyProperties.KEY_ALGORITHM_RSA, "AndroidKeyStore"); 
        generator.initialize(params); 

私は同じ問題を抱えており、これを解決しました。

関連する問題