You've already forked usbd-ctaphid
mirror of
https://github.com/trussed-dev/usbd-ctaphid.git
synced 2026-03-11 16:36:57 -07:00
33 lines
977 B
Python
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)
|