summaryrefslogtreecommitdiff
path: root/vendor/github.com/google
diff options
context:
space:
mode:
authorPaul Holzinger <pholzing@redhat.com>2022-09-08 15:32:44 +0200
committerPaul Holzinger <pholzing@redhat.com>2022-09-09 11:58:20 +0200
commiteb28a1c08469d56494006d0f2c64933ab7078d01 (patch)
treedbacf86cf194955f34f09ec56d2df284321e2ae7 /vendor/github.com/google
parent7e2f002b0751c2c24e9c243495cbc313d0c3c103 (diff)
downloadpodman-eb28a1c08469d56494006d0f2c64933ab7078d01.tar.gz
podman-eb28a1c08469d56494006d0f2c64933ab7078d01.tar.bz2
podman-eb28a1c08469d56494006d0f2c64933ab7078d01.zip
update buildah and c/common to latest
also includes bumps for c/storage and c/image Signed-off-by: Paul Holzinger <pholzing@redhat.com>
Diffstat (limited to 'vendor/github.com/google')
-rw-r--r--vendor/github.com/google/go-containerregistry/pkg/name/digest.go27
1 files changed, 12 insertions, 15 deletions
diff --git a/vendor/github.com/google/go-containerregistry/pkg/name/digest.go b/vendor/github.com/google/go-containerregistry/pkg/name/digest.go
index e465aef49..c4a2e693e 100644
--- a/vendor/github.com/google/go-containerregistry/pkg/name/digest.go
+++ b/vendor/github.com/google/go-containerregistry/pkg/name/digest.go
@@ -15,16 +15,14 @@
package name
import (
+ _ "crypto/sha256" // Recommended by go-digest.
"strings"
-)
-const (
- // These have the form: sha256:<hex string>
- // TODO(dekkagaijin): replace with opencontainers/go-digest or docker/distribution's validation.
- digestChars = "sh:0123456789abcdef"
- digestDelim = "@"
+ "github.com/opencontainers/go-digest"
)
+const digestDelim = "@"
+
// Digest stores a digest name in a structured form.
type Digest struct {
Repository
@@ -60,10 +58,6 @@ func (d Digest) String() string {
return d.original
}
-func checkDigest(name string) error {
- return checkElement("digest", name, digestChars, 7+64, 7+64)
-}
-
// NewDigest returns a new Digest representing the given name.
func NewDigest(name string, opts ...Option) (Digest, error) {
// Split on "@"
@@ -72,10 +66,13 @@ func NewDigest(name string, opts ...Option) (Digest, error) {
return Digest{}, newErrBadName("a digest must contain exactly one '@' separator (e.g. registry/repository@digest) saw: %s", name)
}
base := parts[0]
- digest := parts[1]
-
- // Always check that the digest is valid.
- if err := checkDigest(digest); err != nil {
+ dig := parts[1]
+ prefix := digest.Canonical.String() + ":"
+ if !strings.HasPrefix(dig, prefix) {
+ return Digest{}, newErrBadName("unsupported digest algorithm: %s", dig)
+ }
+ hex := strings.TrimPrefix(dig, prefix)
+ if err := digest.Canonical.Validate(hex); err != nil {
return Digest{}, err
}
@@ -90,7 +87,7 @@ func NewDigest(name string, opts ...Option) (Digest, error) {
}
return Digest{
Repository: repo,
- digest: digest,
+ digest: dig,
original: name,
}, nil
}