Versions in this module Expand all Collapse all v0 v0.0.13 May 21, 2026 Changes in this version + var ErrAlgorithmDuplicate = errors.New("ocidigest: duplicate algorithm") + var ErrAlgorithmExists = errors.New("ocidigest: algorithm is already registered") + var ErrAlgorithmInvalidName = errors.New("ocidigest: invalid algorithm name") + var ErrAlgorithmUnknown = errors.New("ocidigest: algorithm is not registered") + var ErrDigestInvalid = errors.New("ocidigest: digest is invalid") + var ErrDigestMismatch = errors.New("ocidigest: digest mismatch") + var ErrEncodingInvalid = errors.New("ocidigest: encoded digest is invalid") + var ErrHashInvalid = errors.New("ocidigest: invalid hash") + var ErrReaderInvalid = errors.New("ocidigest: invalid reader") + var ErrStateInvalid = errors.New("ocidigest: state is invalid") + var ErrStateUnsupported = errors.New("ocidigest: state is not supported") + var ErrWriterInvalid = errors.New("ocidigest: invalid writer") + type Algorithm struct + var Canonical Algorithm + var SHA256 Algorithm + var SHA512 Algorithm + func LookupAlgorithm(name string) (Algorithm, error) + func RegisterAlgorithm(opts RegisterOptions) (Algorithm, error) + func (a Algorithm) FromBytes(p []byte) Digest + func (a Algorithm) FromReader(r io.Reader) (Digest, error) + func (a Algorithm) New() (Digester, error) + func (a Algorithm) Size() int + func (a Algorithm) String() string + type Digest string + func FromBytes(p []byte) Digest + func FromReader(r io.Reader) (Digest, error) + func Parse(s string) (Digest, error) + func (d Digest) Algorithm() Algorithm + func (d Digest) Encoded() string + func (d Digest) Equal(cmp Digest) bool + func (d Digest) String() string + func (d Digest) Validate() error + type DigestState struct + Algorithm string + Encoding string + Offset int64 + Payload []byte + type Digester interface + Algorithm func() Algorithm + Digest func() (Digest, error) + Reset func() + Size func() int64 + State func() (DigestState, error) + type Reader struct + func NewReader(r io.Reader, algs ...Algorithm) (*Reader, error) + func NewReaderFromState(r io.Reader, st State) (*Reader, error) + func (r *Reader) Algorithms() []Algorithm + func (r *Reader) Digest() (Digest, error) + func (r *Reader) DigestFor(alg Algorithm) (Digest, error) + func (r *Reader) Digests() ([]Digest, error) + func (r *Reader) Read(p []byte) (int, error) + func (r *Reader) Size() int64 + func (r *Reader) State() (State, error) + type RegisterOptions struct + MarshalState func(hash.Hash) (encoding string, payload []byte, err error) + Name string + NewHash func() hash.Hash + NewState func(DigestState) (hash.Hash, error) + Size int + type State struct + States []DigestState + type VerifierReader struct + func NewVerifierReader(r io.Reader, expected Digest) (*VerifierReader, error) + func (r *VerifierReader) Calculated() (Digest, error) + func (r *VerifierReader) Digest() Digest + func (r *VerifierReader) Read(p []byte) (int, error) + func (r *VerifierReader) Verified() bool + type Writer struct + func NewWriter(w io.Writer, algs ...Algorithm) (*Writer, error) + func NewWriterFromState(w io.Writer, st State) (*Writer, error) + func (w *Writer) Algorithms() []Algorithm + func (w *Writer) Digest() (Digest, error) + func (w *Writer) DigestFor(alg Algorithm) (Digest, error) + func (w *Writer) Digests() ([]Digest, error) + func (w *Writer) Size() int64 + func (w *Writer) State() (State, error) + func (w *Writer) Write(p []byte) (int, error)