Есть ли способ хранить ключи cryptographi c только в программном обеспечении с помощью KeyStore на Android уровне API 28? - PullRequest
0 голосов
/ 20 июня 2020

В настоящее время я сравниваю различные решения для хранения ключей на Android в отношении производительности и поэтому хочу принудительно создать и сохранить пару ключей RSA только в программном обеспечении. Есть ли способ сделать это, используя Android Keystore с устройством, работающим на Android API уровня 28 или выше?

Я пробовал использовать других поставщиков, таких как B C, но они больше не поддерживаются для этого уровня API. Использование более старого устройства невозможно из-за различий в производительности оборудования.

Я использую следующий код для генерации пары ключей в TEE и .setIsStrongBoxSet (true) для использования встроенного элемента безопасности:

KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance(
                keyProperties, "AndroidKeyStore");
        keyPairGenerator.initialize(
                new KeyGenParameterSpec.Builder(
                        keyAlias,
                        keyUsage).setDigests(KeyProperties.DIGEST_SHA256,
                        KeyProperties.DIGEST_SHA512)
                        .setEncryptionPaddings(
                                KeyProperties.ENCRYPTION_PADDING_RSA_PKCS1)
                        .setKeySize(2048)
                        .setSignaturePaddings(KeyProperties.SIGNATURE_PADDING_RSA_PKCS1)
                        .setIsStrongBoxBacked(false)
                        .build());
        keyPairTeeRSA = keyPairGenerator.generateKeyPair();
...