pkg/cmd/serviceaccount/util/util.go (19 lines of code) (raw):

package util import ( "crypto/sha256" "encoding/base64" "fmt" ) // GetIssuerHash returns a hash of the issuer URL func GetIssuerHash(issuerURL string) string { h := sha256.New() h.Write([]byte(issuerURL)) return base64.URLEncoding.EncodeToString(h.Sum(nil)) } // GetFederatedCredentialName returns a hash of // the service account namespace, name, and issuer URL func GetFederatedCredentialName(namespace, name, issuerURL string) string { h := sha256.New() h.Write([]byte(fmt.Sprintf("%s-%s-%s", namespace, name, issuerURL))) return base64.URLEncoding.EncodeToString(h.Sum(nil)) } // GetFederatedCredentialSubject returns the subject of the federated credential func GetFederatedCredentialSubject(namespace, name string) string { return fmt.Sprintf("system:serviceaccount:%s:%s", namespace, name) }