package maphasher

import "github.com/google/trillian/merkle/maphasher"

Package maphasher provides hashing for maps.

Index

Variables

var Default = New(crypto.SHA256)

Default is a SHA256 based MapHasher for maps.

Functions

func New

New creates a new merkle.MapHasher using the passed in hash function.

Types

type MapHasher

type MapHasher struct {
	crypto.Hash
	// contains filtered or unexported fields
}

MapHasher implements a sparse merkle tree hashing algorithm. For testing only. It matches the test vectors generated by other sparse map implementations, but it does not offer the full N bit security of the underlying hash function.

func (*MapHasher) BitLen

func (m *MapHasher) BitLen() int

BitLen returns the number of bits in the hash function.

func (*MapHasher) HashChildren

func (m *MapHasher) HashChildren(l, r []byte) []byte

HashChildren returns the internal Merkle tree node hash of the the two child nodes l and r. The hashed structure is NodeHashPrefix||l||r.

func (*MapHasher) HashEmpty

func (m *MapHasher) HashEmpty(treeID int64, index []byte, height int) []byte

HashEmpty returns the hash of an empty branch at a given depth. A depth of 0 indicates the hash of an empty leaf. Empty branches within the tree are plain interior nodes e1 = H(e0, e0) etc.

func (*MapHasher) HashLeaf

func (m *MapHasher) HashLeaf(treeID int64, index []byte, leaf []byte) []byte

HashLeaf returns the Merkle tree leaf hash of the data passed in through leaf. The hashed structure is leafHashPrefix||leaf.

func (*MapHasher) String

func (m *MapHasher) String() string

String returns a string representation for debugging.

Source Files

maphasher.go

Version
v1.0.1
Published
Sep 20, 2017
Platform
js/wasm
Imports
5 packages
Last checked
4 hours ago

Tools for package owners.