updated digest.go: fixes
This commit is contained in:
@@ -155,6 +155,7 @@ func MakeSHA512Digest(src []byte) string {
|
||||
|
||||
func (dig Digest) MarshalJSON() ([]byte, error) {
|
||||
writer := bytes.NewBuffer(nil)
|
||||
writer.WriteString(`"`)
|
||||
switch dig.algorithm {
|
||||
case SHA256:
|
||||
writer.WriteString("sha256")
|
||||
@@ -165,14 +166,18 @@ func (dig Digest) MarshalJSON() ([]byte, error) {
|
||||
}
|
||||
writer.WriteString(":")
|
||||
writer.WriteString(hex.EncodeToString(dig.decoded))
|
||||
writer.WriteString(`"`)
|
||||
|
||||
return writer.Bytes(), nil
|
||||
}
|
||||
|
||||
func (dig *Digest) UnmarshalJSON(data []byte) error {
|
||||
var err error
|
||||
digobj := &Digest{}
|
||||
digobj := Digest{}
|
||||
|
||||
str := strings.ToLower(string(data))
|
||||
str = strings.TrimPrefix(str, `"`)
|
||||
str = strings.TrimSuffix(str, `"`)
|
||||
str = strings.TrimPrefix(str, "sha256:")
|
||||
str = strings.TrimPrefix(str, "sha384:")
|
||||
str = strings.TrimPrefix(str, "sha512:")
|
||||
@@ -180,7 +185,7 @@ func (dig *Digest) UnmarshalJSON(data []byte) error {
|
||||
decoded, err := hex.DecodeString(str)
|
||||
if err != nil {
|
||||
err := errors.New("Can't decode digest")
|
||||
return digobj, err
|
||||
return err
|
||||
}
|
||||
digobj.decoded = decoded
|
||||
switch len(decoded) {
|
||||
@@ -192,7 +197,7 @@ func (dig *Digest) UnmarshalJSON(data []byte) error {
|
||||
digobj.algorithm = SHA512
|
||||
default:
|
||||
err = errors.New("Unknown digest type")
|
||||
return digobj, err
|
||||
return err
|
||||
}
|
||||
*dig = digobj
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user