in toolkit/certificates/certcreator/cert_creator.go [34:56]
func (c *CertCreatorImp) CreateCertificateWithPublicKey(ctx context.Context, csr *x509.Certificate, publicKey *rsa.PublicKey, caCert *x509.Certificate, caKey *rsa.PrivateKey) (*x509.Certificate, *retry.Error) {
sn, err := c.GenerateSN()
if err != nil {
log.MustGetLogger(ctx).Errorf(ctx, "generate serial number failed: %s", err)
return nil, retry.NewError(false, err)
}
csr.SerialNumber = sn
certDerBytes, err := c.CreateCertificate(rand.Reader, csr, caCert, publicKey, caKey)
if err != nil {
log.MustGetLogger(ctx).Errorf(ctx, "createCertificateFunc failed: %s", err)
return nil, retry.NewError(false, err)
}
certificate, err := c.ParseCertificate(certDerBytes)
if err != nil {
log.MustGetLogger(ctx).Errorf(ctx, "parseCertificateFunc failed: %s", err)
return nil, retry.NewError(false, err)
}
log.MustGetLogger(ctx).Info(ctx, "certificate created successfully")
return certificate, nil
}