code: func NewCSRAndKey(config *certutil.Config) (*x509.CertificateRequest, crypto.Signer, error) {
  	key, err := NewPrivateKey()
  	if err != nil {
  		return nil, nil, errors.Wrap(err, "unable to create private key")
  	}
  
  	csr, err := NewCSR(*config, key)
  	if err != nil {
  		return nil, nil, errors.Wrap(err, "unable to generate CSR")
  	}
  
  	return csr, key, nil
  }
docs: // NewCSRAndKey generates a new key and CSR and that could be signed to create the given certificate