Skip to content

Commit fb88c1a

Browse files
Copilotrainzhang05
andcommitted
Add attestation check fields (signature_valid, root_valid, rp_id_hash_valid, aaguid_match) to log payload
Co-authored-by: rainzhang05 <[email protected]>
1 parent eb054f9 commit fb88c1a

File tree

3 files changed

+21
-0
lines changed

3 files changed

+21
-0
lines changed

server/server/device_logs.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,10 @@ class RegistrationEvent:
5757
attestation_format: str
5858
attestation_object: bytes
5959
client_data_json: bytes
60+
signature_valid: Optional[bool] = None
61+
root_valid: Optional[bool] = None
62+
rp_id_hash_valid: Optional[bool] = None
63+
aaguid_match: Optional[bool] = None
6064

6165

6266
def to_b64url(data: bytes) -> str:
@@ -170,6 +174,10 @@ def _build_log_payload(event: RegistrationEvent) -> Tuple[str, Mapping[str, Any]
170174
"device_name_mds": event.device_name_mds or "unknown",
171175
"raw_attestation_object": attestation_raw,
172176
"decoded_attestation_object": attestation_decoded,
177+
"signature_valid": event.signature_valid,
178+
"root_valid": event.root_valid,
179+
"rp_id_hash_valid": event.rp_id_hash_valid,
180+
"aaguid_match": event.aaguid_match,
173181
}
174182

175183
summary: MutableMapping[str, str] = {

server/server/routes/simple.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -766,6 +766,10 @@ def register_complete():
766766
attestation_format=str(attestation_format or ""),
767767
attestation_object=_decode_base64url_bytes(raw_attestation_object_b64),
768768
client_data_json=_decode_base64url_bytes(client_data_json_b64),
769+
signature_valid=attestation_signature_valid,
770+
root_valid=attestation_root_valid,
771+
rp_id_hash_valid=attestation_rp_id_hash_valid,
772+
aaguid_match=attestation_aaguid_match,
769773
)
770774

771775
record_registration_event(event)

tests/test_device_logs.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,10 @@ def fake_upload(path, payload, **kwargs):
4545
attestation_format="packed",
4646
attestation_object=attestation_object,
4747
client_data_json=client_data_json,
48+
signature_valid=True,
49+
root_valid=True,
50+
rp_id_hash_valid=True,
51+
aaguid_match=True,
4852
)
4953

5054
device_logs.record_registration_event(event)
@@ -68,6 +72,11 @@ def fake_upload(path, payload, **kwargs):
6872
assert payload["device_name_mds"] == "Example Authenticator"
6973
assert payload["raw_attestation_object"] == device_logs.to_b64url(attestation_object)
7074
assert payload["decoded_attestation_object"] == {"test": device_logs.to_b64url(b"value")}
75+
# Verify attestation check fields are included
76+
assert payload["signature_valid"] is True
77+
assert payload["root_valid"] is True
78+
assert payload["rp_id_hash_valid"] is True
79+
assert payload["aaguid_match"] is True
7180

7281

7382
def test_record_registration_event_creates_unique_files(monkeypatch, capsys):

0 commit comments

Comments
 (0)