PrivateKey在注册

时间:2018-03-06 14:35:45

标签: android private-key android-fingerprint-api

您是否经历过Android指纹API以不期望的方式运行的情况?我遇到的问题是,当我使用给定PrivateKeyattestationChallenge生成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()

我做错了什么或遗失了什么?谢谢!

1 个答案:

答案 0 :(得分:0)

回答我自己的问题。如果将PrivateKey设置为正值,则操作系统不会使userAuthenticationValidityDurationSeconds无效。只有在使用指纹进行身份验证时才能使用该密钥,才能在注册新指纹时使密钥失效。