in internal/mock/certs.go [139:177]
func mustBuildSignedCertificate(
isCa bool,
subject pkix.Name,
subjectPublicKey *rsa.PrivateKey,
issuerCert *x509.Certificate,
issuerPrivateKey *rsa.PrivateKey,
notAfter time.Time,
subjectAlternativeNames []string) *x509.Certificate {
sn, err := rand.Int(rand.Reader, big.NewInt(1000))
if err != nil {
panic(err)
}
cert := &x509.Certificate{
SerialNumber: sn,
Subject: subject,
SubjectKeyId: generateSKI(&subjectPublicKey.PublicKey),
AuthorityKeyId: generateSKI(&issuerPrivateKey.PublicKey),
NotBefore: time.Now(),
NotAfter: notAfter,
IsCA: isCa,
ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageClientAuth, x509.ExtKeyUsageServerAuth},
KeyUsage: x509.KeyUsageDigitalSignature | x509.KeyUsageCertSign,
BasicConstraintsValid: true,
DNSNames: subjectAlternativeNames,
}
certDerBytes, err := x509.CreateCertificate(rand.Reader, cert, issuerCert, &subjectPublicKey.PublicKey, issuerPrivateKey)
if err != nil {
panic(err)
}
c, err := x509.ParseCertificate(certDerBytes)
if err != nil {
panic(err)
}
return c
}