Я строю нативное приложение React, и мне нужно надежно хранить конфиденциальные данные на Android. На Android я хочу использовать songbox , который является наиболее безопасным вариантом для хранения хранилища ключей с оборудованием. /> Сгенерировать и хранить ключ с использованием Songbox < /p>
< /li>
). Подход:
// Check StrongBox support
fun isStrongBoxSupported(context: Context): Boolean {
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
context.packageManager.hasSystemFeature(PackageManager.FEATURE_STRONGBOX_KEYSTORE)
} else false
}
// Generate StrongBox-backed key
@TargetApi(Build.VERSION_CODES.P)
fun generateStrongBoxKey(alias: String) {
val keyPairGenerator = KeyPairGenerator.getInstance(
KeyProperties.KEY_ALGORITHM_RSA, "AndroidKeyStore"
)
val parameterSpec = KeyGenParameterSpec.Builder(
alias,
KeyProperties.PURPOSE_ENCRYPT or KeyProperties.PURPOSE_DECRYPT
)
.setDigests(KeyProperties.DIGEST_SHA256)
.setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_RSA_PKCS1)
.setIsStrongBoxBacked(true)
.build()
keyPairGenerator.initialize(parameterSpec)
keyPairGenerator.generateKeyPair()
}
< /code>
Я становлюсь ложным каждый раз, когда я проверяю устройство, имеет сильную поддержку ящика или нет. Каким -то образом я что -то упускаю.
Подробнее здесь: https://stackoverflow.com/questions/797 ... ndroid-pla