INNER CODE UNIT · Go
generateSubjectKeyID
hashicorp/terraform-provider-tls · internal/provider/common_cert.go:78
func generateSubjectKeyID(pubKey crypto.PublicKey) ([]byte, error) {
var pubKeyBytes []byte
var err error
// Marshal public key to bytes or set an error
switch pub := pubKey.(type) {
case *rsa.PublicKey:
if pub != nil {
pubKeyBytes, err = asn1.Marshal(*pub)
} else {
err = fmt.Errorf("received 'nil' pointer instead of public key")
}
case *ecdsa.PublicKey:
//nolint:staticcheck // Reference: https://github.com/hashicorp/terraform-provider-tls/issues/480
pubKeyBytes = elliptic.Marshal(pub.Curve, pub.X, pub.Y)
case ed25519.PublicKey:
pubKeyBytes, err = asn1.Marshal(pub)
case *ed25519.PublicKey: