diff --git a/algorithm.go b/algorithm.go index 8813bd2..158e83c 100644 --- a/algorithm.go +++ b/algorithm.go @@ -180,11 +180,6 @@ func (a Algorithm) Validate(encoded string) error { if !ok { return ErrDigestUnsupported } - // Digests much always be hex-encoded, ensuring that their hex portion will - // always be size*2 - if a.Size()*2 != len(encoded) { - return ErrDigestInvalidLength - } if r.MatchString(encoded) { return nil } diff --git a/digest.go b/digest.go index ad398cb..ddc80c8 100644 --- a/digest.go +++ b/digest.go @@ -68,8 +68,8 @@ var ( // ErrDigestInvalidFormat returned when digest format invalid. ErrDigestInvalidFormat = fmt.Errorf("invalid checksum digest format") - // ErrDigestInvalidLength returned when digest has invalid length. - ErrDigestInvalidLength = fmt.Errorf("invalid checksum digest length") + // ErrDigestInvalidLength is deprecated. Please use ErrDigestInvalidFormat. + ErrDigestInvalidLength = ErrDigestInvalidFormat // ErrDigestUnsupported returned when the digest algorithm is unsupported. ErrDigestUnsupported = fmt.Errorf("unsupported digest algorithm") diff --git a/digest_test.go b/digest_test.go index cc3b648..a229061 100644 --- a/digest_test.go +++ b/digest_test.go @@ -35,6 +35,10 @@ func TestParseDigest(t *testing.T) { algorithm: "sha384", encoded: "d3fc7881460b7e22e3d172954463dddd7866d17597e7248453c48b3e9d26d9596bf9c4a9cf8072c9d5bad76e19af801d", }, + { + input: "", + err: ErrDigestInvalidFormat, + }, { // empty hex input: "sha256:", @@ -53,17 +57,17 @@ func TestParseDigest(t *testing.T) { { // not hex input: "sha256:d41d8cd98f00b204e9800m98ecf8427e", - err: ErrDigestInvalidLength, + err: ErrDigestInvalidFormat, }, { // too short input: "sha256:abcdef0123456789", - err: ErrDigestInvalidLength, + err: ErrDigestInvalidFormat, }, { // too short (from different algorithm) input: "sha512:abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789", - err: ErrDigestInvalidLength, + err: ErrDigestInvalidFormat, }, { input: "foo:d41d8cd98f00b204e9800998ecf8427e",