checksum

package
v0.6.1 Latest Latest
Warning

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

Go to latest
Published: Feb 9, 2022 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var AlgorithmsByStrength = AlgorithmList{SHA512, SHA384, SHA256, SHA1, MD5}

Functions

This section is empty.

Types

type Algorithm added in v0.5.0

type Algorithm string
const MD5 Algorithm = "md5"
const SHA1 Algorithm = "sha1"
const SHA256 Algorithm = "sha256"
const SHA384 Algorithm = "sha384"
const SHA512 Algorithm = "sha512"

type AlgorithmList added in v0.5.0

type AlgorithmList []Algorithm

func (AlgorithmList) Contains added in v0.5.0

func (l AlgorithmList) Contains(in Algorithm) bool

func (AlgorithmList) FilterMin added in v0.5.0

func (l AlgorithmList) FilterMin(min Algorithm) AlgorithmList

func (AlgorithmList) Intersection added in v0.5.0

func (l AlgorithmList) Intersection(in AlgorithmList) AlgorithmList

func (AlgorithmList) Join added in v0.5.0

func (l AlgorithmList) Join(sep string) string

type AllChecksumSelector added in v0.5.0

type AllChecksumSelector struct{}

func (AllChecksumSelector) SelectChecksums added in v0.5.0

func (AllChecksumSelector) SelectChecksums(in ChecksumList) ChecksumList

type Checksum

type Checksum interface {
	Algorithm() Algorithm
	NewVerifier(context.Context) (*HashVerifier, error)
}

func GuessChecksum

func GuessChecksum(expected []byte) (Checksum, error)

func MustGuessChecksumHex added in v0.5.0

func MustGuessChecksumHex(expected string) Checksum

func NewDeferredChecksum added in v0.4.0

func NewDeferredChecksum(manager Manager, resource string, algorithm Algorithm) Checksum

func NewHashChecksum added in v0.4.0

func NewHashChecksum(algorithm Algorithm, expected []byte, hasher func() hash.Hash) Checksum

type ChecksumList added in v0.5.0

type ChecksumList []Checksum

func (ChecksumList) FilterAlgorithms added in v0.5.0

func (l ChecksumList) FilterAlgorithms(algorithms AlgorithmList) ChecksumList

type ChecksumSelector added in v0.5.0

type ChecksumSelector interface {
	SelectChecksums(ChecksumList) ChecksumList
}

type HashVerificationError added in v0.4.0

type HashVerificationError struct {
	// contains filtered or unexported fields
}

func (HashVerificationError) Error added in v0.4.0

func (err HashVerificationError) Error() string

type HashVerifier added in v0.4.0

type HashVerifier struct {
	// contains filtered or unexported fields
}

func NewHashVerifier added in v0.4.0

func NewHashVerifier(algorithm Algorithm, expected []byte, hasher hash.Hash) *HashVerifier

func (*HashVerifier) Algorithm added in v0.4.0

func (hv *HashVerifier) Algorithm() Algorithm

func (*HashVerifier) Expected added in v0.5.0

func (hv *HashVerifier) Expected() []byte

func (*HashVerifier) Verify added in v0.4.0

func (hv *HashVerifier) Verify() error

func (*HashVerifier) Write added in v0.4.0

func (hv *HashVerifier) Write(p []byte) (int, error)

type InMemoryAliasManager added in v0.4.0

type InMemoryAliasManager struct {
	// contains filtered or unexported fields
}

InMemoryAliasManager enforces a specific file name is used for any added checksums.

Namely useful for name-based, *.sha256-type files are used and the contents may have been generated using a different file name, but there is high certainty about the subject. The caller should always be using the expected name.

func (*InMemoryAliasManager) AddChecksum added in v0.4.0

func (m *InMemoryAliasManager) AddChecksum(_ string, checksum Checksum)

func (*InMemoryAliasManager) GetChecksums added in v0.5.0

func (m *InMemoryAliasManager) GetChecksums(ctx context.Context, resource string, algos AlgorithmList) (ChecksumList, error)

type InMemoryManager

type InMemoryManager struct {
	// contains filtered or unexported fields
}

func (*InMemoryManager) AddChecksum added in v0.4.0

func (m *InMemoryManager) AddChecksum(resource string, checksum Checksum)

func (*InMemoryManager) GetChecksums added in v0.5.0

func (m *InMemoryManager) GetChecksums(ctx context.Context, resource string, algos AlgorithmList) (ChecksumList, error)

func (*InMemoryManager) Resources added in v0.4.0

func (m *InMemoryManager) Resources() []string

type Manager

type Manager interface {
	GetChecksums(ctx context.Context, resource string, algos AlgorithmList) (ChecksumList, error)
}

func NewMultiManager added in v0.4.0

func NewMultiManager(managers ...Manager) Manager

type MultiManager added in v0.4.0

type MultiManager struct {
	// contains filtered or unexported fields
}

func (MultiManager) GetChecksums added in v0.5.0

func (m MultiManager) GetChecksums(ctx context.Context, resource string, algos AlgorithmList) (ChecksumList, error)

type StrongestChecksumSelector added in v0.5.0

type StrongestChecksumSelector struct{}

func (StrongestChecksumSelector) SelectChecksums added in v0.5.0

type VerificationProfile added in v0.5.0

type VerificationProfile struct {
	Required   bool
	Acceptable AlgorithmList
	Selector   ChecksumSelector
}

type WriteableManager added in v0.4.0

type WriteableManager interface {
	Manager
	AddChecksum(string, Checksum)
}

func NewInMemoryAliasManager added in v0.4.0

func NewInMemoryAliasManager(resource string) WriteableManager

func NewInMemoryManager

func NewInMemoryManager() WriteableManager

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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