from .parse_attestation_statement import parse_attestation_statement from .parse_authenticator_data import parse_authenticator_data from .structs import AttestationObject from .parse_cbor import parse_cbor def parse_attestation_object(val: bytes) -> AttestationObject: """ Decode and peel apart the CBOR-encoded blob `response.attestationObject` into structured data. """ attestation_dict = parse_cbor(val) decoded_attestation_object = AttestationObject( fmt=attestation_dict["fmt"], auth_data=parse_authenticator_data(attestation_dict["authData"]), ) if "attStmt" in attestation_dict: decoded_attestation_object.att_stmt = parse_attestation_statement( attestation_dict["attStmt"] ) return decoded_attestation_object