1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
from fido2.client import UserInteraction
TEST_PIN = "a1b2c3d4"
class Printer:
def __init__(self, capmanager):
self.capmanager = capmanager
def print(self, *messages):
with self.capmanager.global_and_fixture_disabled():
print("")
for m in messages:
print(m)
def touch(self):
self.print("👉 Touch the Authenticator")
def insert(self, nfc=False):
self.print(
"♻️ "
+ (
"Place the Authenticator on the NFC reader"
if nfc
else "Connect the Authenticator"
)
)
def remove(self, nfc=False):
self.print(
"🚫 "
+ (
"Remove the Authenticator from the NFC reader"
if nfc
else "Disconnect the Authenticator"
)
)
# Handle user interaction
class CliInteraction(UserInteraction):
def __init__(self, printer, pin=TEST_PIN):
self.printer = printer
self.pin = pin
def prompt_up(self):
self.printer.touch()
def request_pin(self, permissions, rd_id):
return self.pin
def request_uv(self, permissions, rd_id):
self.printer.print("User Verification required.")
return True
|