我正在实施指纹支持,以保护应用程序的敏感区域并访问某些Web 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()
)
由于“ setUserAuthenticationValidityDurationSeconds”,此处的身份验证有效10秒钟。我真正想要的是类似“ setUserAuthenticationInvalidAfterInactivitySeconds”的东西。换句话说,我希望仅当我的应用程序中的用户不活动一段时间后,身份验证才会无效。是否存在或我必须创建一些专有的东西?