(r io.Reader, alg string)
| 35 | } |
| 36 | |
| 37 | func CalculateDigestWithAlgorithm(r io.Reader, alg string) (string, error) { |
| 38 | var h hash.Hash |
| 39 | switch alg { |
| 40 | case SHA256DigestAlgorithm: |
| 41 | h = sha256.New() |
| 42 | case SHA512DigestAlgorithm: |
| 43 | h = sha512.New() |
| 44 | default: |
| 45 | return "", errUnsupportedAlgorithm |
| 46 | } |
| 47 | |
| 48 | if _, err := io.Copy(h, r); err != nil { |
| 49 | return "", fmt.Errorf("failed to calculate digest: %v", err) |
| 50 | } |
| 51 | digest := h.Sum(nil) |
| 52 | return hex.EncodeToString(digest), nil |
| 53 | } |