package layoutbundlekeyv1

import (
	"crypto/sha256"
	"encoding/hex"
)

// RequiredBundleKeySetDigest returns the content identity of one complete
// canonical required slot set. Org and Catalog revision are not digest input.
func RequiredBundleKeySetDigest(set RequiredBundleKeySet) (string, error) {
	canonical, err := CanonicalRequiredBundleKeySetBytes(set)
	if err != nil {
		return "", err
	}
	digest := sha256.Sum256(canonical)
	return "sha256:" + hex.EncodeToString(digest[:]), nil
}
