1
私は次のコードを使用してAndroidのKeyStoreのAESキーを保存しようとしています:Androidのキーストア:サポートされていない秘密鍵アルゴリズム: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(...)' の行をスローされません:
java.security.KeyStoreException: java.lang.IllegalArgumentException: Unsupported secret key algorithm: AES/CBC/PKCS5Padding
私のキーをAndroid.KeyStoreに保存するにはどうすればよいですか?
'CBC'と' PKCS5Padding'はキーの一部ではありませんが、キーサイズはです。 – zaph
@zaph私は、新しいSecretKeySpec( byteKey、0、byteKey.length、 "AES/CBC/PKCS5Padding")の行を変更する必要があると言いたいと思います。新しいSecretKeySpecに( byteKey、0、byteKey.length、 "AES"); ? – JoeFox