blob: d5170cf428ed31b5b4fc517dc1db5f1ed96f9acd [file] [log] [blame] [edit]
package mock
import (
"crypto/rand"
"crypto/rsa"
"crypto/x509"
"crypto/x509/pkix"
"time"
"encoding/pem"
"math/big"
)
var mockKeyPEM, mockCertPEM []byte
func makeKeys() {
key, err := rsa.GenerateKey(rand.Reader, 2048)
if err != nil {
panic(err.Error())
}
mockKeyPEM = pem.EncodeToMemory(&pem.Block{
Type: "RSA PRIVATE KEY",
Bytes: x509.MarshalPKCS1PrivateKey(key),
})
templ := makeCertTemplate()
certBytes, err := x509.CreateCertificate(rand.Reader, templ, templ, key.Public(), key)
if err != nil {
panic(err.Error())
}
mockCertPEM = pem.EncodeToMemory(&pem.Block{
Type: "CERTIFICATE",
Bytes: certBytes,
})
}
func makeCertTemplate() *x509.Certificate {
now := time.Now()
return &x509.Certificate{
SerialNumber: big.NewInt(1),
Subject: pkix.Name{
Country: []string{"US"},
Organization: []string{"Google"},
OrganizationalUnit: []string{"Cloud"},
Locality: []string{"Mountain View"},
Province: []string{"CA"},
CommonName: "mockserver",
},
NotBefore: now,
NotAfter: now.Add(time.Hour),
}
}