| 151 | |
| 152 | |
| 153 | class GetQuoteResponse(BaseModel): |
| 154 | quote: str |
| 155 | event_log: str |
| 156 | report_data: str = "" |
| 157 | vm_config: str = "" |
| 158 | |
| 159 | def decode_quote(self) -> bytes: |
| 160 | return bytes.fromhex(self.quote) |
| 161 | |
| 162 | def decode_event_log(self) -> "List[EventLog]": |
| 163 | return [EventLog(**event) for event in json.loads(self.event_log)] |
| 164 | |
| 165 | def replay_rtmrs(self) -> Dict[int, str]: |
| 166 | parsed_event_log = json.loads(self.event_log) |
| 167 | rtmrs: Dict[int, str] = {} |
| 168 | for idx in range(4): |
| 169 | history = [ |
| 170 | event["digest"] for event in parsed_event_log if event.get("imr") == idx |
| 171 | ] |
| 172 | rtmrs[idx] = replay_rtmr(history) |
| 173 | return rtmrs |
| 174 | |
| 175 | |
| 176 | class AttestResponse(BaseModel): |