Files
usbd-ctaphid/pytests/basic.py
2020-06-04 22:24:30 +02:00

33 lines
977 B
Python

import fido2.attestation
import fido2.ctap2
import fido2.hid
dev = fido2.ctap2.CTAP2(next(fido2.hid.CtapHidDevice.list_devices()))
for alg in (-7, -8):
att = dev.make_credential(
b"1234567890ABCDEF1234567890ABCDEF",
{"id": "https://yamnord.com"},
{"id": b"nickray"},
[{"type": "public-key", "alg": alg}],
)
# basic sanity check - would raise
assert att.fmt == "packed"
verifier = fido2.attestation.Attestation.for_type(att.fmt)()
verifier.verify(
att.att_statement, att.auth_data, b"1234567890ABCDEF1234567890ABCDEF"
)
client_data_hash = b"some_client_data_hash_abcdefghij"
assn = dev.get_assertion(
"https://yamnord.com",
client_data_hash,
allow_list=[
{"type": "public-key", "id": att.auth_data.credential_data.credential_id}
],
)
# basic sanity check - would raise
assn.verify(client_data_hash, att.auth_data.credential_data.public_key)