8000 Tags · vbatts/oci-go-digest · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Tags: vbatts/oci-go-digest

Tags

v1.0.0-rc1

Toggle v1.0.0-rc1's commit message

Verified

This tag was signed with the committer’s verified signature.
stevvooe Stephen Day
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

v1.0.0-rc0

Toggle v1.0.0-rc0's commit message

Verified

This tag was signed with the committer’s verified signature.
stevvooe Stephen Day
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.
0