func mustBuildRootCertificate()

in internal/mock/certs.go [107:135]


func mustBuildRootCertificate(subject pkix.Name, k *rsa.PrivateKey) *x509.Certificate {

	sn, err := rand.Int(rand.Reader, big.NewInt(1000))
	if err != nil {
		panic(err)
	}

	cert := &x509.Certificate{
		SerialNumber:          sn,
		SubjectKeyId:          generateSKI(&k.PublicKey),
		Subject:               subject,
		NotBefore:             time.Now(),
		NotAfter:              time.Now().AddDate(1, 0, 0),
		IsCA:                  true,
		ExtKeyUsage:           []x509.ExtKeyUsage{x509.ExtKeyUsageClientAuth, x509.ExtKeyUsageServerAuth},
		KeyUsage:              x509.KeyUsageDigitalSignature | x509.KeyUsageCertSign,
		BasicConstraintsValid: true,
	}

	certDerBytes, err := x509.CreateCertificate(rand.Reader, cert, cert, &k.PublicKey, k)
	if err != nil {
		panic(err)
	}
	c, err := x509.ParseCertificate(certDerBytes)
	if err != nil {
		panic(err)
	}
	return c
}