hash

package
v0.18.0 Latest Latest
Warning

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

Go to latest
Published: Aug 17, 2023 License: Apache-2.0 Imports: 19 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 ErrHashTypeUnknown = errors.New("unknown hash type")

ErrHashTypeUnknown is returned when the hash type is unknown.

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 UnmarshalHashFastJSON added in v0.12.2

func UnmarshalHashFastJSON(val *fastjson.Value) (*Hash, error)

UnmarshalHashFastJSON unmarshals a Hash from FastJSON value.

func UnmarshalHashJSON added in v0.12.2

func UnmarshalHashJSON(data []byte) (*Hash, error)

UnmarshalHashJSON unmarshals a Hash from JSON.

func (*Hash) Clone

func (h *Hash) Clone() *Hash

Clone clones the hash object.

func (*Hash) CloneMessageVT added in v0.15.6

func (m *Hash) CloneMessageVT() 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) EqualMessageVT added in v0.15.6

func (this *Hash) EqualMessageVT(thatMsg proto.Message) bool

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) IsNil added in v0.14.0

func (h *Hash) IsNil() bool

IsNil checks if the object is nil.

func (*Hash) MarshalDigest

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

MarshalDigest marshals the hash to a binary slice.

func (*Hash) MarshalJSON added in v0.12.2

func (h *Hash) MarshalJSON() ([]byte, error)

MarshalJSON marshals the hash to a JSON string. Returns "" if the hash is nil.

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) ParseFromB58 added in v0.12.2

func (h *Hash) ParseFromB58(ref string) error

ParseFromB58 parses the object ref from a base58 string.

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) UnmarshalFastJSON added in v0.12.2

func (h *Hash) UnmarshalFastJSON(val *fastjson.Value) error

UnmarshalFastJSON unmarshals the fast json container. If the val or object ref are nil, does nothing.

func (*Hash) UnmarshalJSON added in v0.12.2

func (h *Hash) UnmarshalJSON(data []byte) error

UnmarshalJSON unmarshals the reference from a JSON string or object. Also accepts an object (in jsonpb format).

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 UnmarshalHashTypeFastJSON added in v0.12.2

func UnmarshalHashTypeFastJSON(val *fastjson.Value) (HashType, error)

UnmarshalHashTypeFastJSON unmarshals a HashType from FastJSON value.

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