| 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), |
| } |
| } |