Получить секретный ключ из хранилища ключей:
KeyStore keystore = KeyStore.getInstance("PKCS12");
InputStrem is = this.getClass().getResourceAsStream("/my-keystore");
keystore.load(is, password);
KeyStore.PasswordProtection passwordProtection = new KeyStore.PasswordProtection(new byte[]{1,2,3,4,5,6});
KeyStore.SecretKeyEntry secretKeyEntry = (KeyStore.SecretKeyEntry) keyStore.getEntry("alias", passwordProtection);
Это прекрасно работает в Java SE.Но для Android, возвращенный secretKeyEntry является нулевым.Как это исправить на андроид?Протестировано на уровне API 28.
Хранилище ключей было создано с помощью keytool, а секретный ключ был добавлен программно с помощью Java SE JVM.
UPDATE
В android перечислены псевдонимы хранилища ключейне содержит ключа для секретного ключа.
В java и keytool список псевдонимов хранилища ключей содержит список для секретного ключа.
Enumeration<String> aliases = keyStore.aliases();
Есть ли способ конвертировать PKCS12 в AndroidKeyStore?