github.com/winebarrel/terraform-provider-lambdazip@v0.6.1-0.20240313233639-361839f8c5c5/internal/hash/sha.go (about) 1 package hash 2 3 import ( 4 "crypto/sha256" 5 "encoding/base64" 6 "encoding/hex" 7 "os" 8 ) 9 10 func Base64Sha256(file string) (string, error) { 11 buf, err := os.ReadFile(file) 12 13 if err != nil { 14 return "", err 15 } 16 17 sha256Sum := sha256.Sum256(buf) 18 b64 := base64.StdEncoding.EncodeToString(sha256Sum[:]) 19 20 return b64, nil 21 } 22 23 func Sha256Map(files []string) (map[string]string, error) { 24 m := map[string]string{} 25 26 for _, f := range files { 27 buf, err := os.ReadFile(f) 28 29 if err != nil { 30 return nil, err 31 } 32 33 sha256Sum := sha256.Sum256(buf) 34 h := hex.EncodeToString(sha256Sum[:]) 35 m[f] = h 36 } 37 38 return m, nil 39 }