В настоящее время я сравниваю различные решения для хранения ключей на 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();