diff --git a/digest/digest.go b/digest/digest.go index efbe49bd7..2eb5a0cc0 100644 --- a/digest/digest.go +++ b/digest/digest.go @@ -47,7 +47,7 @@ func NewDigestFromHex(alg, hex string) Digest { } // DigestRegexp matches valid digest types. -var DigestRegexp = regexp.MustCompile(`[a-zA-Z0-9-_+.]+:[a-zA-Z0-9-_+.=]+`) +var DigestRegexp = regexp.MustCompile(`[a-zA-Z0-9-_+.]+:[a-fA-F0-9-_+.=]+$`) var ( // ErrDigestInvalidFormat returned when digest format invalid. @@ -112,6 +112,10 @@ func (d Digest) Validate() error { // Continue on for general parser + if !DigestRegexp.MatchString(s) { + return ErrDigestInvalidFormat + } + i := strings.Index(s, ":") if i < 0 { return ErrDigestInvalidFormat