package x509 import ( "crypto/ecdsa" "crypto/x509" "encoding/pem" xerrors "github.com/pkg/errors" ) // 将 ecdsa.PrivateKey 对象转换为 PEM 编码的字符串。 // // 入参: // - privkey: ecdsa.PrivateKey 对象。 // // 出参: // - privkeyPem: 私钥 PEM 内容。 // - err: 错误。 func ConvertECPrivateKeyToPEM(privkey *ecdsa.PrivateKey) (privkeyPem string, err error) { data, err := x509.MarshalECPrivateKey(privkey) if err != nil { return "", xerrors.Wrap(err, "failed to marshal EC private key") } block := &pem.Block{ Type: "EC PRIVATE KEY", Bytes: data, } return string(pem.EncodeToMemory(block)), nil }