hash

package
v0.9.8 Latest Latest
Warning

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

Go to latest
Published: Jan 28, 2023 License: Apache-2.0 Imports: 15 Imported by: 1

Documentation

Index

Constants

View Source
const RecommendedHashType = HashType_HashType_BLAKE3

RecommendedHashType is the hash type recommended to use. Note: not guaranteed to stay the same between Bifrost versions.

Variables

View Source
var (
	HashType_name = map[int32]string{
		0: "HashType_UNKNOWN",
		1: "HashType_SHA256",
		2: "HashType_SHA1",
		3: "HashType_BLAKE3",
	}
	HashType_value = map[string]int32{
		"HashType_UNKNOWN": 0,
		"HashType_SHA256":  1,
		"HashType_SHA1":    2,
		"HashType_BLAKE3":  3,
	}
)

Enum value maps for HashType.

View Source
var (
	ErrInvalidLength        = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflow          = fmt.Errorf("proto: integer overflow")
	ErrUnexpectedEndOfGroup = fmt.Errorf("proto: unexpected end of group")
)
View Source
var ErrHashMismatch = errors.New("hash mismatch")

ErrHashMismatch is returned when hashes mismatch.

View Source
var File_github_com_aperturerobotics_bifrost_hash_hash_proto protoreflect.FileDescriptor

SupportedHashTypes is the list of built-in hash types.

Functions

This section is empty.

Types

type Hash

type Hash struct {

	// HashType is the hash type in use.
	HashType HashType `protobuf:"varint,1,opt,name=hash_type,json=hashType,proto3,enum=hash.HashType" json:"hash_type,omitempty"`
	// Hash is the hash value.
	Hash []byte `protobuf:"bytes,2,opt,name=hash,proto3" json:"hash,omitempty"`
	// contains filtered or unexported fields
}

Hash is a hash of a binary blob.

func NewHash

func NewHash(ht HashType, h []byte) *Hash

NewHash constructs a new hash object.

func Sum

func Sum(ht HashType, data []byte) (*Hash, error)

Sum constructs a hash type by summing an object.

func (*Hash) Clone

func (h *Hash) Clone() *Hash

Clone clones the hash object.

func (*Hash) CloneGenericVT added in v0.8.3

func (m *Hash) CloneGenericVT() proto.Message

func (*Hash) CloneVT added in v0.8.3

func (m *Hash) CloneVT() *Hash

func (*Hash) CompareHash

func (h *Hash) CompareHash(other *Hash) bool

CompareHash compares two hashes.

func (*Hash) Descriptor deprecated

func (*Hash) Descriptor() ([]byte, []int)

Deprecated: Use Hash.ProtoReflect.Descriptor instead.

func (*Hash) EqualVT added in v0.3.0

func (this *Hash) EqualVT(that *Hash) bool

func (*Hash) GetHash

func (x *Hash) GetHash() []byte

func (*Hash) GetHashType

func (x *Hash) GetHashType() HashType

func (*Hash) IsEmpty

func (h *Hash) IsEmpty() bool

IsEmpty checks if the hash is empty.

func (*Hash) MarshalDigest

func (h *Hash) MarshalDigest() []byte

MarshalDigest marshals the hash to a binary slice.

func (*Hash) MarshalString

func (h *Hash) MarshalString() string

MarshalString marshals the hash to a string.

func (*Hash) MarshalToSizedBufferVT added in v0.2.0

func (m *Hash) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*Hash) MarshalToVT added in v0.2.0

func (m *Hash) MarshalToVT(dAtA []byte) (int, error)

func (*Hash) MarshalVT added in v0.2.0

func (m *Hash) MarshalVT() (dAtA []byte, err error)

func (*Hash) ProtoMessage

func (*Hash) ProtoMessage()

func (*Hash) ProtoReflect added in v0.2.0

func (x *Hash) ProtoReflect() protoreflect.Message

func (*Hash) Reset

func (x *Hash) Reset()

func (*Hash) SizeVT added in v0.2.0

func (m *Hash) SizeVT() (n int)

func (*Hash) String

func (x *Hash) String() string

func (*Hash) UnmarshalVT added in v0.2.0

func (m *Hash) UnmarshalVT(dAtA []byte) error

func (*Hash) Validate

func (h *Hash) Validate() error

Validate validates the hash.

func (*Hash) VerifyData

func (h *Hash) VerifyData(data []byte) ([]byte, error)

VerifyData verifies data against the sum. Returns the hash of the data, hash type, and error Returns an error if failed to validate.

type HashType

type HashType int32

HashType identifies the hash type in use.

const (
	// HashType_UNKNOWN is an unknown hash type.
	HashType_HashType_UNKNOWN HashType = 0
	// HashType_SHA256 is the sha256 hash type.
	HashType_HashType_SHA256 HashType = 1
	// HashType_SHA1 is the sha1 hash type.
	// Note: this is not recommended for use outside of backwards-compat.
	HashType_HashType_SHA1 HashType = 2
	// HashType_BLAKE3 is the blake3 hash type.
	// Uses a 32-byte digest size.
	HashType_HashType_BLAKE3 HashType = 3
)

func (HashType) BuildHasher

func (h HashType) BuildHasher() (hash.Hash, error)

BuildHasher builds the hasher for the hash type.

func (HashType) Descriptor added in v0.2.0

func (HashType) Descriptor() protoreflect.EnumDescriptor

func (HashType) Enum added in v0.2.0

func (x HashType) Enum() *HashType

func (HashType) EnumDescriptor deprecated

func (HashType) EnumDescriptor() ([]byte, []int)

Deprecated: Use HashType.Descriptor instead.

func (HashType) GetHashLen

func (h HashType) GetHashLen() int

GetHashLen returns the hash length.

func (HashType) Number added in v0.2.0

func (x HashType) Number() protoreflect.EnumNumber

func (HashType) String

func (x HashType) String() string

func (HashType) Sum

func (h HashType) Sum(data []byte) ([]byte, error)

Sum takes the sum with the hash type.

func (HashType) Type added in v0.2.0

func (HashType) Validate

func (h HashType) Validate() error

Validate validates the hash type.

Jump to

Keyboard shortcuts

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