github.com/google/trillian-examples@v0.0.0-20240520080811-0d40d35cef0e/binary_transparency/firmware/docs/design/diagrams/fw_monitor.puml (about) 1 @startuml fw_monitor 2 !include ./puml/style.puml 3 4 PARTICIPANT_VENDOR(vendor, "Firmware Vendor") 5 PARTICIPANT_MONITOR(monitor, "Obs/Vendor Monitor") 6 PARTICIPANT_LOG(log, "FT Log") 7 PARTICIPANT_ARBITER(arbiter, "Arbiter") 8 9 activate monitor 10 loop Forever 11 12 monitor -> log ++ : GetCheckpoint 13 return checkpoint 14 monitor -> log ++: GetConsistencyProof 15 return consistency proof 16 monitor -> monitor: Validate ConsistencyProof 17 18 ||| 19 20 loop For each new LogEntry e 21 monitor -> log ++: GetEntry e 22 return entry 23 note right 24 Monitor verifies inclusion of all entries locally 25 endnote 26 monitor -> monitor: Inspect entry 27 ||| 28 alt #FAIL Badness detected 29 monitor -->o arbiter: Alert 30 else #WARNING Firmware from Vendor detected 31 monitor -->o vendor: Inform 32 else #SUCCESS Ok 33 end 34 end 35 end 36 deactivate monitor 37 @enduml