github.com/google/trillian-examples@v0.0.0-20240520080811-0d40d35cef0e/binary_transparency/firmware/docs/design/diagrams/fw_flash_tool.puml (about) 1 @startuml fw_flash_tool 2 !include ./puml/style.puml 3 4 PARTICIPANT_VENDOR(vendor, "Firmware Vendor") 5 PARTICIPANT_DEVICE_UPDATE(update, "Update Client") 6 PARTICIPANT_DEVICE_FLASH(flash, "Device Flash") 7 PARTICIPANT_LOG(log, "FT Log") 8 9 vendor o--> update: Firmware update available 10 11 ... 12 13 group Verify bundle 14 update -> update: Verify bundle 15 note right 16 # Verify signatures 17 # Verify manifest inclusion proof 18 # Verify firmware image Hash 19 endnote 20 21 alt #FAIL Invalid Bundle 22 update -> update: Abort update 23 else #SUCCESS OK 24 end 25 end 26 27 ||| 28 29 group Verify consistency 30 update -> flash ++ : Fetch previous STH 31 return STH_old 32 33 update -> log ++: GetConsistencyProof 34 return consistency proof 35 36 update -> update: Verify consistency 37 alt #FAIL Invalid consistency 38 update -> update: Abort update 39 else #SUCCESS OK 40 end 41 end 42 43 ||| 44 45 group Update flash 46 update -> flash ++: Write Firmware + Proof Bundle 47 return Write OK 48 end 49 50 @enduml