user = {"id": b"user_id", "name": "A. User"} # Prepare parameters for makeCredential create_options, state = server.register_begin( user, resident_key=True, user_verification=uv, authenticator_attachment="cross-platform", ) # Create a credential if use_prompt: print("\nTouch your authenticator device now...\n") attestation_object, client_data = client.make_credential( create_options["publicKey"], pin=pin ) # Complete registration auth_data = server.register_complete(state, client_data, attestation_object) credentials = [auth_data.credential_data] print("New credential created!") print("CLIENT DATA:", client_data) print("ATTESTATION OBJECT:", attestation_object) print() print("CREDENTIAL DATA:", auth_data.credential_data) # Prepare parameters for getAssertion
print("Authenticator supports User Verification") server = Fido2Server( { "id": "example.com", "name": "Example RP" }, attestation="direct", verify_attestation=YubicoAttestationVerifier(), ) user = {"id": b"user_id", "name": "A. User"} # Prepare parameters for makeCredential create_options, state = server.register_begin( user, user_verification=uv, authenticator_attachment="cross-platform") # Create a credential if use_prompt: print("\nTouch your authenticator device now...\n") result = client.make_credential(create_options["publicKey"]) # Complete registration auth_data = server.register_complete(state, result.client_data, result.attestation_object) credentials = [auth_data.credential_data] print("New credential created, attestation verified!") print("Yubico device AAGUID:", auth_data.credential_data.aaguid.hex())
print("Authenticator supports User Verification") server = Fido2Server({"id": "example.com", "name": "Example RP"}, attestation="direct") user = {"id": b"user_id", "name": "A. User"} # Prepare parameters for makeCredential create_options, state = server.register_begin( user, user_verification=uv, authenticator_attachment="cross-platform" ) # Create a credential try: result = client.make_credential( create_options["publicKey"], on_keepalive=on_keepalive ) except PinRequiredError as e: if isinstance(e.cause, CtapError): print(e.cause) result = client.make_credential( create_options["publicKey"], on_keepalive=on_keepalive, pin=getpass("Enter PIN: "), ) # Complete registration auth_data = server.register_complete( state, result.client_data, result.attestation_object ) credentials = [auth_data.credential_data]