1

Ich bin mit dem Qlassified library und ich erhalte die folgende Ausnahme auf Android 6.0 und 6.0.1 geworfen: java.lang.ClassCastException: android.security.keystore.AndroidKeyStoreECPublicKey cannot be cast to java.security.interfaces.RSAPublicKeyAndroid 6.0 Schlüsselspeicher ClassCast Ausnahme

Insbesondere dies geschieht, wenn die Daten verschlüsselt werden innerhalb von Dieser Codeblock:

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); 

keine Gedanken?

+0

Verwenden Sie ein Zertifikat mit einem öffentlichen RSA-Schlüssel? –

Antwort

1

Dies kommt von der Generierung von Schlüsseln, die im Keystore gespeichert sind. Sie haben einen EC-Algorithmus verwendet. Sie müssen RSA-Algorithmus wie folgt angeben:

Ich hatte das gleiche Problem und das löste es.