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