Android получает запись SecretKey из keyStore возвращает ноль - PullRequest
0 голосов
/ 09 декабря 2018

Получить секретный ключ из хранилища ключей:

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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...