Я пытаюсь получить значение байтового массива сгенерированного SecretKey, но результат всегда равен нулю,
Это мой код:
mKeyStore = KeyStore.getInstance(ANDROID_KEYSTORE_PROVIDER);
mKeyStore.load(null);
KeyStore.SecretKeyEntry secretKeyEntry = null;
if (!mKeyStore.containsAlias(KEY_ALIAS_AES)) {
KeyGenerator keyGenerator = KeyGenerator.getInstance(
KeyProperties.KEY_ALGORITHM_AES, ANDROID_KEYSTORE_PROVIDER);
KeyGenParameterSpec.Builder builder = null;
builder = new KeyGenParameterSpec.Builder(
KEY_ALIAS_AES,
KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT);
builder.setBlockModes(KeyProperties.BLOCK_MODE_CBC)
.setKeySize(256);
keyGenerator.init(builder.build());
sKey = keyGenerator.generateKey();
secretKeyEntry = new KeyStore.SecretKeyEntry(sKey);
mKeyStore.setKeyEntry(KEY_ALIAS_AES, secretKeyEntry.getSecretKey().getEncoded(), null);
}
try {
tmpKey = mKeyStore.getKey(KEY_ALIAS_AES, null).getEncoded();
} catch (UnrecoverableKeyException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
} catch (CertificateException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (InvalidAlgorithmParameterException e) {
e.printStackTrace();
} catch (NoSuchProviderException e) {
e.printStackTrace();
} catch (KeyStoreException e) {
e.printStackTrace();
}
tmpKey всегда равен нулю, любая помощь, пожалуйста?