Return ErrContentSHA256Mismatch when sha256sum is invalid (#5188)

This commit is contained in:
Krishnan Parthasarathi
2017-11-16 19:13:04 +00:00
committed by Dee Koder
parent 67f66c40c1
commit 2a0a62b78d
3 changed files with 24 additions and 15 deletions
+5 -3
View File
@@ -26,6 +26,8 @@ import (
"io"
)
var errNestedReader = errors.New("Nesting of Reader detected, not allowed")
// Reader writes what it reads from an io.Reader to an MD5 and SHA256 hash.Hash.
// Reader verifies that the content of the io.Reader matches the expected checksums.
type Reader struct {
@@ -40,17 +42,17 @@ type Reader struct {
// SHA256 sum (if set) of the provided io.Reader at EOF.
func NewReader(src io.Reader, size int64, md5Hex, sha256Hex string) (*Reader, error) {
if _, ok := src.(*Reader); ok {
return nil, errors.New("Nesting of Reader detected, not allowed")
return nil, errNestedReader
}
sha256sum, err := hex.DecodeString(sha256Hex)
if err != nil {
return nil, err
return nil, SHA256Mismatch{}
}
md5sum, err := hex.DecodeString(md5Hex)
if err != nil {
return nil, err
return nil, BadDigest{}
}
var sha256Hash hash.Hash