def deserialize()

in cvm-attestation/snp.py [0:0]


  def deserialize(cls, data):
    """
    Deserialize a binary blob into an instance of the AttestationReport class.
    """
    unpacked_data = struct.unpack(cls.FORMAT_STRING, data)

    instance = cls()
    instance.version = unpacked_data[0]
    instance.guest_svn = unpacked_data[1]
    instance.policy = unpacked_data[2]
    instance.family_id = list(unpacked_data[3])
    instance.image_id = list(unpacked_data[4])
    instance.vmpl = unpacked_data[5]
    instance.sig_algo = unpacked_data[6]
    instance.current_tcb = TcbVersion.deserialize(struct.pack('<Q', unpacked_data[7]))
    instance.plat_info = PlatformInfo.deserialize(struct.pack('<Q', unpacked_data[8]))
    instance.key_info = KeyInfo.deserialize(struct.pack('<I', unpacked_data[9]))
    instance._reserved_0 = unpacked_data[10]
    instance.report_data = list(unpacked_data[11])
    instance.measurement = list(unpacked_data[12])
    instance.host_data = list(unpacked_data[13])
    instance.id_key_digest = list(unpacked_data[14])
    instance.author_key_digest = list(unpacked_data[15])
    instance.report_id = list(unpacked_data[16])
    instance.report_id_ma = list(unpacked_data[17])
    instance.reported_tcb = TcbVersion.deserialize(struct.pack('<Q', unpacked_data[18]))
    instance._reserved_1 = list(unpacked_data[19])
    instance.chip_id = list(unpacked_data[20])
    instance.committed_tcb = TcbVersion.deserialize(struct.pack('<Q', unpacked_data[21]))
    instance.current_build = unpacked_data[22]
    instance.current_minor = unpacked_data[23]
    instance.current_major = unpacked_data[24]
    instance._reserved_2 = unpacked_data[25]
    instance.committed_build = unpacked_data[26]
    instance.committed_minor = unpacked_data[27]
    instance.committed_major = unpacked_data[28]
    instance._reserved_3 = unpacked_data[29]
    instance.launch_tcb = TcbVersion.deserialize(struct.pack('<Q', unpacked_data[30]))
    instance._reserved_4 = list(unpacked_data[31])
    instance.signature = Signature.deserialize(unpacked_data[32])

    return instance