dmverity

package
v0.12.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 19, 2024 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (

	// MerkleTreeBufioSize is a default buffer size to use with bufio.Reader
	MerkleTreeBufioSize = memory.MiB // 1MB
	// RecommendedVHDSizeGB is the recommended size in GB for VHDs, which is not a hard limit.
	RecommendedVHDSizeGB = 128 * memory.GiB
	// VeritySignature is a value written to dm-verity super-block.
	VeritySignature = "verity"
)

Variables

View Source
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")
	ErrNotVeritySuperBlock    = errors.New("invalid dm-verity super-block signature")
)

Functions

func ComputeAndWriteHashDevice added in v0.10.0

func ComputeAndWriteHashDevice(r io.ReadSeeker, w io.Writer) error

ComputeAndWriteHashDevice builds merkle tree from a given io.ReadSeeker and writes the result hash device (dm-verity super-block combined with merkle tree) to io.Writer.

func MerkleTree

func MerkleTree(r io.Reader) ([]byte, error)

MerkleTree constructs dm-verity hash-tree for a given io.Reader 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

func ReadDMVerityInfoReader added in v0.10.0

func ReadDMVerityInfoReader(r io.Reader) (*VerityInfo, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL