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