У меня есть открытая / закрытая пара ключей в AndroidKeyStore, которую я сгенерировал следующим образом:
val spec = KeyGenParameterSpec.Builder(alias(username), KeyProperties.PURPOSE_DECRYPT or KeyProperties.PURPOSE_ENCRYPT)
.setKeySize(keySize)
.setUserAuthenticationRequired(true)
.setBlockModes(ablockMode)
.setEncryptionPaddings(apaddingMode)
.setCertificateSubject(X500Principal("CN=Itsami Mario, OU=Adventure Unit, O=Plumber Bros, C=US"))
.setKeyValidityStart(Date())
.setKeyValidityEnd(Date(Date().time + 1000 * 60 * 60 * 24 * 7))
.setCertificateSerialNumber(BigInteger(64, SecureRandom()))
.setDigests(digest)
.build()
keyPairGen.initialize(spec)
return keyPairGen.genKeyPair()
Я хочу требовать биометрической аутентификации каждый раз, когда используется закрытый ключ, но я не хочу требоватьБиометрическая подсказка при шифровании с открытым ключом.Однако при использовании я использую setUserAuthenticationRequired(true)
в KeyGeneratior, а затем пытаюсь зашифровать, не показывая сначала BiometricPrompt, я получаю android.security.KeyStoreException
с сообщением: Key user not authenticated
Как мне потребовать аутентификацию для де шифрование, но не ru шифрование?