package dmverity

import "github.com/Microsoft/hcsshim/ext4/dmverity"

Index

Constants

const (

	// RecommendedVHDSizeGB is the recommended size in GB for VHDs, which is not a hard limit.
	RecommendedVHDSizeGB = 128 * 1024 * 1024 * 1024
)

Variables

var (
	ErrSuperBlockReadFailure  = errors.New("failed to read dm-verity super block")
	ErrSuperBlockParseFailure = errors.New("failed to parse dm-verity super block")
	ErrRootHashReadFailure    = errors.New("failed to read dm-verity root hash")
)

Functions

func MerkleTree

func MerkleTree(data []byte) ([]byte, error)

MerkleTree constructs dm-verity hash-tree for a given byte array with a fixed salt (0-byte) and algorithm (sha256).

func NewDMVeritySuperblock

func NewDMVeritySuperblock(size uint64) *dmveritySuperblock

NewDMVeritySuperblock returns a dm-verity superblock for a device with a given size, salt, algorithm and versions are fixed.

func RootHash

func RootHash(tree []byte) []byte

RootHash computes root hash of dm-verity hash-tree

Types

type VerityInfo

type VerityInfo struct {
	// Offset in blocks on hash device
	HashOffsetInBlocks int64
	// Set to true, when dm-verity super block is also written on the hash device
	SuperBlock    bool
	RootDigest    string
	Salt          string
	Algorithm     string
	DataBlockSize uint32
	HashBlockSize uint32
	DataBlocks    uint64
	Version       uint32
}

VerityInfo is minimal exported version of dmveritySuperblock

func ReadDMVerityInfo

func ReadDMVerityInfo(vhdPath string, offsetInBytes int64) (*VerityInfo, error)

ReadDMVerityInfo extracts dm-verity super block information and merkle tree root hash

Source Files

dmverity.go

Version
v0.9.1
Published
Nov 11, 2021
Platform
js/wasm
Imports
9 packages
Last checked
2 hours ago

Tools for package owners.