Skip to content

Commit d207df4

Browse files
authored
Merge pull request #696 from wking/go-digest-unsupported
schema/validator: Punt sha256/sha512 hex-validation to go-digest
2 parents df6f3c5 + fa09f5b commit d207df4

File tree

1 file changed

+3
-18
lines changed

1 file changed

+3
-18
lines changed

schema/validator.go

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import (
2020
"fmt"
2121
"io"
2222
"io/ioutil"
23-
"regexp"
2423

2524
digest "github.com/opencontainers/go-digest"
2625
"github.com/opencontainers/image-spec/specs-go/v1"
@@ -125,11 +124,6 @@ func validateManifest(r io.Reader) error {
125124
return nil
126125
}
127126

128-
var (
129-
sha256EncodedRegexp = regexp.MustCompile(`^[a-f0-9]{64}$`)
130-
sha512EncodedRegexp = regexp.MustCompile(`^[a-f0-9]{128}$`)
131-
)
132-
133127
func validateDescriptor(r io.Reader) error {
134128
header := v1.Descriptor{}
135129

@@ -143,22 +137,13 @@ func validateDescriptor(r io.Reader) error {
143137
return errors.Wrap(err, "descriptor format mismatch")
144138
}
145139

146-
if header.Digest.Validate() != nil {
140+
err = header.Digest.Validate()
141+
if err == digest.ErrDigestUnsupported {
147142
// we ignore unsupported algorithms
148143
fmt.Printf("warning: unsupported digest: %q: %v\n", header.Digest, err)
149144
return nil
150145
}
151-
switch header.Digest.Algorithm() {
152-
case digest.SHA256:
153-
if !sha256EncodedRegexp.MatchString(header.Digest.Hex()) {
154-
return errors.Errorf("unexpected sha256 digest: %q", header.Digest)
155-
}
156-
case digest.SHA512:
157-
if !sha512EncodedRegexp.MatchString(header.Digest.Hex()) {
158-
return errors.Errorf("unexpected sha512 digest: %q", header.Digest)
159-
}
160-
}
161-
return nil
146+
return err
162147
}
163148

164149
func validateIndex(r io.Reader) error {

0 commit comments

Comments
 (0)