// MakeCSR generates a PEM-encoded CSR using the supplied private key, subject, and SANs. // All key types that are implemented via crypto.Signer are supported (This includes *rsa.PrivateKey and *ecdsa.PrivateKey.) func MakeCSR(privateKey interface{ … } // MakeCSRFromTemplate generates a PEM-encoded CSR using the supplied private // key and certificate request as a template. All key types that are // implemented via crypto.Signer are supported (This includes *rsa.PrivateKey // and *ecdsa.PrivateKey.) func MakeCSRFromTemplate(privateKey interface{ … } func sigType(privateKey interface{ … }