github.com/transparency-dev/armored-witness-applet@v0.1.1/trusted_applet/internal/firmware/bundle.go (about) 1 // Copyright 2023 The Armored Witness Applet authors. All Rights Reserved. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 // Package firmware provides definitions of the firmware executable and 16 // associated metadata. 17 package firmware 18 19 // Bundle represents the required information for firmware to be installed 20 // onto the device. 21 type Bundle struct { 22 // Checkpoint is an append-only commitment from the log that includes the 23 // Manifest as a leaf. 24 Checkpoint []byte 25 // Index is the position in the log that Manifest is committed to as a leaf. 26 Index uint64 27 // InclusionProof is a chain of hashes that proves that Manifest is the 28 // leaf at Index in the log committed to by Checkpoint. 29 InclusionProof [][]byte 30 // Manifest is the metadata about Firmware, including its type, provenance, 31 // and semantic version. This includes a hash of Firmware, which binds this 32 // executable to Checkpoint. 33 Manifest []byte 34 // Firmware is the elf executable data committed to by Manifest. 35 Firmware []byte 36 }