From 46bcc465eed5d2fd45dff20ff9b79222df34102b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9E=D0=BB=D0=B5=D0=B3=20=D0=91=D0=BE=D1=80=D0=BE=D0=B4?= =?UTF-8?q?=D0=B8=D0=BD?= Date: Sat, 7 Mar 2026 09:48:07 +0200 Subject: [PATCH] updated digest.go: fixes --- pkg/digest/digest.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pkg/digest/digest.go b/pkg/digest/digest.go index f07e5a0..55179a8 100644 --- a/pkg/digest/digest.go +++ b/pkg/digest/digest.go @@ -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