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  }