func()

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
}