Я пытаюсь сохранить ключ AES в Android KeyStore используя следующий код:Android KeyStore: неподдерживаемый алгоритм секретного ключа AES/CBC/PKCS5Padding
SecretKey AESkey = new SecretKeySpec(
byteKey, 0, byteKey.length, "AES/CBC/PKCS5Padding");
if (ks == null)
{
ks = KeyStore.getInstance("AndroidKeyStore");
ks.load(null);
}
ks.deleteEntry("aes_key");
ks.setEntry("aes_key",
new KeyStore.SecretKeyEntry(AESkey),
new KeyProtection.Builder(KeyProperties.PURPOSE_ENCRYPT |
KeyProperties.PURPOSE_DECRYPT)
.setBlockModes(KeyProperties.BLOCK_MODE_CBC)
.setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_PKCS7)
.build());
Линия с 'setEntry (...)' не работает throwig:
java.security.KeyStoreException: java.lang.IllegalArgumentException: Unsupported secret key algorithm: AES/CBC/PKCS5Padding
Как я могу сохранить свой ключ в Android.KeyStore?
'CBC' и' PKCS5Padding' не являются частью ключа, но размер ключа. – zaph
@zaph вы хотите сказать, что мне нужно изменить строку new SecretKeySpec ( byteKey, 0, byteKey.length, «AES/CBC/PKCS5Padding»); к новому SecretKeySpec ( byteKey, 0, byteKey.length, «AES»); ? – JoeFox