Я внедряю поддержку отпечатков пальцев для защиты чувствительных областей моего приложения и доступа к некоторым веб-API (используя подпись).Я инициализирую генератор ключей следующим образом:
keyPairGenerator.initialize(
KeyGenParameterSpec.Builder(KEY_NAME, KeyProperties.PURPOSE_SIGN)
.setDigests(KeyProperties.DIGEST_SHA256)
.setAlgorithmParameterSpec(ECGenParameterSpec("secp256r1"))
.setUserAuthenticationRequired(true)
.setInvalidatedByBiometricEnrollment(true)
.build()
)
Эта настройка потребует отпечаток пальца пользователя при каждом получении ключа для создания подписи.Поведение, которое я хочу, больше похоже на это:
keyPairGenerator.initialize(
KeyGenParameterSpec.Builder(KEY_NAME, KeyProperties.PURPOSE_SIGN)
.setDigests(KeyProperties.DIGEST_SHA256)
.setAlgorithmParameterSpec(ECGenParameterSpec("secp256r1"))
.setUserAuthenticationRequired(true)
.setUserAuthenticationValidityDurationSeconds(10)
.setInvalidatedByBiometricEnrollment(true)
.build()
)
Здесь аутентификация хороша в течение 10 секунд из-за "setUserAuthenticationValidityDurationSeconds".Что я действительно хочу, это что-то вроде "setUserAuthenticationInvalidAfterInactivitySeconds".Другими словами, я хотел бы, чтобы аутентификация была аннулирована только после периода неактивности пользователя в моем приложении.Это существует или я должен создать что-то частное?