Tags: vbatts/oci-go-digest
Tags
Open Containers Go Digest v1.0.0-rc1 Welcome to another release of the go-digest package. This package provides a simple toolkit for working with the digests of container images. In this release, we've mostly narrowed the acceptable format for `sha256` digests, which are the most common in use. Specifically, upper case hex-encoded characters are no longer allowed in that format, removing the ambiguity in encoding. Other concessions have been made to allow separators in the algorithm, as well as allowing the character set of the urlsafe base64 encodings. Most of this is more about allowing support for future formats, and are not officially supported at this time. Changes 279bed9 Merge pull request opencontainers#34 from AkihiroSuda/regexp 4ca1301 disallow upper characters (/A-F/) in hex-encoded portion eaa6054 Merge pull request opencontainers#33 from stevvooe/future-proof-algorithm-field 678a95e digest: allow validation of urlsafe base64 encoding 55f6758 digest: update package methods to reflect changes 5ab10f5 digest: allow separators in algorithm field
Open Containers Go Digest 1.0.0-rc0 This the first official release candidate of the go-digest package, the common digest package used across the container ecosystem. What is a digest? A digest is just a hash. The most common use case for a digest is to create a content identifier for use in [Content Addressable Storage](https://en.wikipedia.org/wiki/Content-addressable_storage) systems: ```go id := digest.FromBytes([]byte("my content")) ``` In the example above, the id can be used to uniquely identify the byte slice "my content". This allows two disparate applications to agree on a verifiable identifier without having to trust one another. An identifying digest can be verified, as follows: ```go if id != digest.FromBytes([]byte("my content")) { return errors.New("the content has changed!") } ``` A `Verifier` type can be used to handle cases where an `io.Reader` makes more sense: ```go rd := getContent() verifier := id.Verifier() io.Copy(verifier, rd) if !verifier.Verified() { return errors.New("the content has changed!") } ``` Using [Merkle DAGs](https://en.wikipedia.org/wiki/Merkle_tree), this can power a rich, safe, content distribution system. Please see the [README](https://github.com/opencontainers/go-digest/blob/aa2ec055abd10d26d539eb630a92241b781ce4bc/README.md) for more information.