Как мне требовать аутентификацию пользователя только для расшифровки, но не для шифрования - PullRequest
0 голосов
/ 12 июня 2019

У меня есть открытая / закрытая пара ключей в 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 шифрование?

...