From 1d52438592c4aa3533b495b48e1409f46f481018 Mon Sep 17 00:00:00 2001 From: Ilya Matyukhin Date: Fri, 2 Jul 2021 20:33:51 +0000 Subject: [PATCH] IFingerprint: update default implementation Bug: 166800618 Test: atest VtsHalBiometricsFingerprintTargetTest Change-Id: I0ac3a019081f4f5db6943fc019165ad1aa2e0bc8 --- .../aidl/default/include/FakeFingerprintEngine.h | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngine.h b/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngine.h index 6667f7a7f0..b92777068c 100644 --- a/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngine.h +++ b/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngine.h @@ -17,14 +17,19 @@ #pragma once #include +#include namespace aidl::android::hardware::biometrics::fingerprint { class FakeFingerprintEngine { public: + FakeFingerprintEngine() : mRandom(std::mt19937::default_seed) {} + void generateChallengeImpl(ISessionCallback* cb) { LOG(INFO) << "generateChallengeImpl"; - cb->onChallengeGenerated(0 /* challenge */); + std::uniform_int_distribution dist; + auto challenge = dist(mRandom); + cb->onChallengeGenerated(challenge); } void revokeChallengeImpl(ISessionCallback* cb, int64_t challenge) { @@ -32,8 +37,13 @@ class FakeFingerprintEngine { cb->onChallengeRevoked(challenge); } - void enrollImpl(ISessionCallback* cb, const keymaster::HardwareAuthToken& /*hat*/) { + void enrollImpl(ISessionCallback* cb, const keymaster::HardwareAuthToken& hat) { LOG(INFO) << "enrollImpl"; + // Do proper HAT verification in the real implementation. + if (hat.mac.empty()) { + cb->onError(Error::UNABLE_TO_PROCESS, 0 /* vendorError */); + return; + } cb->onEnrollmentProgress(0 /* enrollmentId */, 0 /* remaining */); } @@ -71,6 +81,8 @@ class FakeFingerprintEngine { LOG(INFO) << "resetLockoutImpl"; cb->onLockoutCleared(); } + + std::mt19937 mRandom; }; } // namespace aidl::android::hardware::biometrics::fingerprint