Skip to content

Tags: opencontainers/go-digest

Tags

v1.0.0

Toggle v1.0.0's commit message

Verified

This tag was signed with the committer’s verified signature.
dmcgowan Derek McGowan
go-digest 1.0.0

Welcome to the v1.0.0 release of go-digest!

This is the first official release of the go-digest package. This package
provides a simple toolkit for working with the digests used in the open
containers ecosystem.

This includes support for `sha256`, `sha384`, and `sha512` algorithms, with
`sha256` being the most common and preferred for greatest compatibility across
the ecosystem. Encoding ambiguity has been removed by only supporting lower
case hex-encoded characters in the format for this release.

The `digestset` package is provided to securely and unambiguously use
shortened forms of the digest in environments where there is a full set
of known digests.

Please try out the release binaries and report any issues at
https://github.com/opencontainers/go-digest/issues.

### Contributors

* Stephen J Day
* Derek McGowan
* Vincent Batts
* W. Trevor King
* Chris Aniszczyk
* Aaron Lehmann
* Jonathan Boulle
* xiekeyang
* Akihiro Suda
* Josh Hawn
* Sebastiaan van Stijn
* Tonis Tiigi
* Akihiro Suda
* Andy Goldstein
* Brandon Philips
* David Lawrence
* Haibing Zhou
* Harald Nordgren
* Ian Campbell
* Olivier Gambier
* Vanessa Sochat
* bin liu

### Changes

* [`ea51bea5`](ea51bea) Merge pull request  [#56](#56) from dmcgowan/release-1.0
* [`43cccb7f`](43cccb7) Add release notes for v1.0.0
* [`28d3ccc3`](28d3ccc) Merge pull request  [#55](#55) from dmcgowan/add-digestset
* [`641993bf`](641993b) Merge pull request  [#54](#54) from vbatts/maintainers
* [`17eb78b6`](17eb78b) Add copyright to digestset files
* [`132fb476`](132fb47) Enable static checks
* [`ecd7b3c7`](ecd7b3c) digestset: refine some words on unit test
* [`5dd3cbe3`](5dd3cbe) digest: migrate to opencontainers/go-digest
* [`e0bfa0f7`](e0bfa0f) digest: remove stuttering ParseDigest function
* [`1cbb645d`](1cbb645) Typo fixes in comments
* [`6ac142d3`](6ac142d) Validate digest length on parsing
* [`45599b9e`](45599b9) Add remove and list functions to digest set
* [`96bf78c3`](96bf78c) Refactor specification of supported digests
* [`77570c98`](77570c9) Add digest set implementation
* [`45398c0a`](45398c0) MAINTAINERS: add 2, remove 5
* [`4b560741`](4b56074) Merge pull request  [#51](#51) from dmcgowan/update-pull-approve
* [`c9095d47`](c9095d4) Merge pull request  [#52](#52) from vbatts/copyright
* [`dd78d752`](dd78d75) Merge pull request  [#53](#53) from philips/remove-philips
* [`f65ba7f7`](f65ba7f) MAINTAINERS: remove Brandon Philips @philips
* [`264d27f5`](264d27f) *: add OCI copyright
* [`9d15c982`](9d15c98) README: spit paragraphs to new lines
* [`998894bd`](998894b) Merge pull request  [#32](#32) from jonboulle/master
* [`76a4f527`](76a4f52) Merge pull request  [#49](#49) from thaJeztah/update_go_versions
* [`51d31fa8`](51d31fa) Update pull approve configuration
* [`f67466ba`](f67466b) Merge pull request  [#50](#50) from thaJeztah/update_aaron_email
* [`ac2cd61e`](ac2cd61) Update Aaron's e-mail address
* [`232efbd8`](232efbd) travis: update list of go versions
* [`e9a29da4`](e9a29da) Merge pull request  [#48](#48) from AkihiroSuda/gomod
* [`2ccb1a5f`](2ccb1a5) Merge pull request  [#44](#44) from opencontainers/jonboulle-patch-1
* [`ed218d06`](ed218d0) add go.mod
* [`f35593ad`](f35593a) MAINTAINERS: fix jonboulle's email
* [`ac19fd6e`](ac19fd6) Merge pull request  [#42](#42) from vsoch/fix/CoC-link
* [`be46cde9`](be46cde) updating CoC link and security link
* [`4eb64ca7`](4eb64ca) Merge pull request  [#40](#40) from HaraldNordgren/go_versions
* [`21d40dcb`](21d40dc) Bump Go versions and use '.x' to always get latest patch versions
* [`c9281466`](c928146) Merge pull request  [#38](#38) from ijc/rename-license-code
* [`b22736af`](b22736a) Rename LICENSE.code → LICENSE
* [`279bed98`](279bed9) Merge pull request  [#34](#34) from AkihiroSuda/regexp
* [`4ca13015`](4ca1301) disallow upper characters (/A-F/) in hex-encoded portion
* [`eaa60544`](eaa6054) Merge pull request  [#33](#33) from stevvooe/future-proof-algorithm-field
* [`678a95ef`](678a95e) digest: allow validation of urlsafe base64 encoding
* [`55f67581`](55f6758) digest: update package methods to reflect changes
* [`5ab10f57`](5ab10f5) digest: allow separators in algorithm field
* [`d1caf203`](d1caf20) doc: tweak wording around algorithms
* [`b74b8405`](b74b840) *: clarify we only deal with hex-encoded digests
* [`aa2ec055`](aa2ec05) Merge pull request  [#27](#27) from stevvooe/update-security-email
* [`ef842085`](ef84208) Merge pull request  [#28](#28) from stevvooe/license-headers
* [`b6234c32`](b6234c3) *: add LICENSE headers to Go files
* [`0c911558`](0c91155) README: update security email
* [`21dfd564`](21dfd56) Merge pull request  [#22](#22) from stevvooe/update-badges
* [`7ecb13df`](7ecb13d) Merge pull request  [#25](#25) from stevvooe/new-maintainers
* [`21c536d1`](21c536d) Merge pull request  [#24](#24) from wking/mailmap
* [`2b814ef8`](2b814ef) MAINTAINERS: add new maintainers to go-digest
* [`3b5193ac`](3b5193a) .mailmap: Consolidate Stephen's identities
* [`8164758d`](8164758) README: update project urls for badges et al.
* [`a6d0ee40`](a6d0ee4) Merge pull request  [#21](#21) from caniszczyk/add-pullapprove
* [`6b50c373`](6b50c37) Merge pull request  [#19](#19) from stevvooe/update-maintainers-file
* [`2ce358bb`](2ce358b) Merge pull request  [#18](#18) from stevvooe/remove-circle
* [`2ea6f484`](2ea6f48) Add PullApprove configuration
* [`7b36afd2`](7b36afd) MAINTAINERS: update maintainers file
* [`3bcadc9e`](3bcadc9) README: remove circle badge
* [`8ab12b7a`](8ab12b7) README: add go report card
* [`3566a398`](3566a39) Merge pull request  [#13](#13) from docker/stevvooe-patch-1
* [`753403c1`](753403c) digest: remove out of date godoc comment
* [`7cc41cb6`](7cc41cb) Merge pull request  [#12](#12) from wking/license-cleanup
* [`95db8560`](95db856) README: Remove 'docs' reference
* [`fcf056d2`](fcf056d) README: Cleanup licensing (add CC BY-SA 4.0 for docs, etc.)
* [`abeb4abc`](abeb4ab) Merge pull request  [#10](#10) from wking/no-algorithm-new
* [`a7c631a3`](a7c631a) Merge pull request  [#11](#11) from wking/maintainer-tabs
* [`ff8e67c8`](ff8e67c) MAINTAINERS: Replace spaces with tabs
* [`fe5ffa6d`](fe5ffa6) algorithm: More New removal
* [`5506f1c7`](5506f1c) Merge pull request  [#9](#9) from stevvooe/remove-depcrated-interfaces
* [`26162832`](2616283) digest: remove last of deprecated methods
* [`27f628c1`](27f628c) Merge pull request  [#7](#7) from wking/contributing
* [`79405cf1`](79405cf) CONTRIBUTING.md: Pull in from docker/opensource's project-template
* [`5bb1f32f`](5bb1f32) Merge pull request  [#2](#2) from stevvooe/remove-depcrated-interfaces
* [`9bce8be2`](9bce8be) digest: remove deprecated interfaces
* [`36db1987`](36db198) README: add security blurb and copyright/license
* [`dde34b7f`](dde34b7) MAINTAINERS: add it
* [`6843c1b3`](6843c1b) README: two builds are better than one!
* [`872b7915`](872b791) build: add travis configuration
* [`5784f4fe`](5784f4f) LICENSE: add apache license
* [`6dd648a9`](6dd648a) README: describe this project
* [`5cc77529`](5cc7752) Fix small lint and unit test issues
* [`f8e42060`](f8e4206) digest: better test coverage
* [`f2bbe83d`](f2bbe83) Merge pull request  [#2105](https://github.com/opencontainers/go-digest/pull/2105) from stevvooe/algorithm-own-file
* [`2e6b5ec5`](2e6b5ec) digest: remove error return from Digest.Verifier
* [`1bb0bb77`](1bb0bb7) digest: cleanup digester and verifier creation
* [`a105b5c0`](a105b5c) digest: remove stuttering ParseDigest function
* [`d1b2120e`](d1b2120) digest: add FromString helper to Digest
* [`33dceb5f`](33dceb5) digest: add NewDigestFromBytes for completeness
* [`58e4ce03`](58e4ce0) Merge pull request  [#1306](https://github.com/opencontainers/go-digest/pull/1306) from stevvooe/from-bytes-algorithm
* [`99f8dd84`](99f8dd8) digest: panic on unavailable hash algorithm
* [`41d95918`](41d9591) digest: make FromBytes available on digest.Algorithm
* [`5c5ed3c3`](5c5ed3c) Remove tarsum support for digest package
* [`cbf4fd89`](cbf4fd8) Simplify digest.FromBytes calling convention
* [`97212540`](9721254) Validate digest length on parsing
* [`511bed83`](511bed8) Correct two golint comment issues
* [`446200d2`](446200d) Add generic content digest tool
* [`2d4d92cd`](2d4d92c) Refactor specification of supported digests
* [`a418a41d`](a418a41) Remove digest package's dependency on external sha implementation
* [`e179c28e`](e179c28) Merge pull request  [#260](https://github.com/opencontainers/go-digest/pull/260) from dmcgowan/short-digests
* [`4d7d895f`](4d7d895) fix some typos in source comments
* [`c1ecabf5`](c1ecabf) Use a build flag to disable resumable digests.
* [`03274b6c`](03274b6) Use resumable hash in digest package
* [`0fd5e243`](0fd5e24) Remove unnecessary error pointer formats in test
* [`1d0603a5`](1d0603a) Correctly close pipe after error in tarsum verification
* [`9e00a382`](9e00a38) supplement of digest refactoring
* [`12db4ec0`](12db4ec) digest: Minor refactoring
* [`fe2fd6dc`](fe2fd6d) fixing up tests to work with for non-tarsum future Signed-off-by: David Lawrence <david.lawrence@docker.com> (github: endophage)
* [`0d1c1d63`](0d1c1d6) Merge branch 'master' of https://github.com/xiekeyang/distribution
* [`87eb23d3`](87eb23d) :func Validate in digest doesn't filter no-hex data
* [`072e3daa`](072e3da) func Validate in digest doesn't filter no-hex data
* [`69d1d7db`](69d1d7d) Replace unsupported hashes with supported
* [`b769db79`](b769db7) Handle empty blob files more appropriately
* [`cce0ab64`](cce0ab6) Explicitly select digest method for content
* [`9475c3a7`](9475c3a) Move testutil package to top-level
* [`8e4a016f`](8e4a016) Move tarsum utilities out of common package
* [`65358531`](6535853) Move from docker-registry to distribution
* [`afc17d28`](afc17d2) Automatically generate V2 API specification
* [`9ecb42f0`](9ecb42f) Clean up layer storage layout
* [`bfefe0d1`](bfefe0d) Various adjustments to digest package for govet/golint
* [`b40957d0`](b40957d) Move Digest type into discrete package

### Dependency Changes

This release has no dependency changes

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 #34 from AkihiroSuda/regexp
4ca1301 disallow upper characters (/A-F/) in hex-encoded portion
eaa6054 Merge pull request #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.