您是否经历过Android指纹API以不期望的方式运行的情况?我遇到的问题是,当我使用给定PrivateKey
和attestationChallenge
生成userAuthenticationValidityDurationSeconds
进行数据签名时。如果我没有注册新的指纹,一切都按预期工作,但是在注册新指纹之后,我希望该密钥永久无效,但事实并非如此。你有过相似的经历吗?
以下是我用来生成PrivateKey
。
val keyStore = KeyStore.getInstance("AndroidKeystore")
keyStore.load(null)
val keyPairGenerator = KeyPairGenerator.getInstance(algorithm, "AndroidKeyStore")
val builder = KeyGenParameterSpec.Builder("alias", KeyProperties.PURPOSE_SIGN)
builder.apply {
setDigests(digests)
setSignaturePaddings(paddings)
setUserAuthenticationRequired(true)
setInvalidatedByBiometricEnrollment(true)
setAttestationChallenge(attestationChallenge)
setUserAuthenticationValidityDurationSeconds(userAuthenticationValidityDurationSeconds)
}
keyPairGenerator.initialize(builder.build())
keyPairGenerator.generateKeyPair()
我做错了什么或遗失了什么?谢谢!
答案 0 :(得分:0)
回答我自己的问题。如果将PrivateKey
设置为正值,则操作系统不会使userAuthenticationValidityDurationSeconds
无效。只有在使用指纹进行身份验证时才能使用该密钥,才能在注册新指纹时使密钥失效。