in pkg/mesh/certs.go [263:300]
func (a *KRun) NewCSR(kty string, trustDomain, san string) (privPEM []byte, csrPEM []byte, err error) {
var priv crypto.PrivateKey
if kty == "ec256" {
// TODO
}
rsaKey, _ := rsa.GenerateKey(rand.Reader, 2048)
priv = rsaKey
csr := GenCSRTemplate(trustDomain, san)
csrBytes, err := x509.CreateCertificateRequest(rand.Reader, csr, priv)
encodeMsg := "CERTIFICATE REQUEST"
csrPEM = pem.EncodeToMemory(&pem.Block{Type: encodeMsg, Bytes: csrBytes})
var encodedKey []byte
//if pkcs8 {
// if encodedKey, err = x509.MarshalPKCS8PrivateKey(priv); err != nil {
// return nil, nil, err
// }
// privPem = pem.EncodeToMemory(&pem.Block{Type: blockTypePKCS8PrivateKey, Bytes: encodedKey})
//} else {
switch k := priv.(type) {
case *rsa.PrivateKey:
encodedKey = x509.MarshalPKCS1PrivateKey(k)
privPEM = pem.EncodeToMemory(&pem.Block{Type: blockTypeRSAPrivateKey, Bytes: encodedKey})
case *ecdsa.PrivateKey:
encodedKey, err = x509.MarshalECPrivateKey(k)
if err != nil {
return nil, nil, err
}
privPEM = pem.EncodeToMemory(&pem.Block{Type: blockTypeECPrivateKey, Bytes: encodedKey})
}
//}
return
}