| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- package testdata
- import (
- "crypto/tls"
- "crypto/x509"
- "encoding/pem"
- "io/ioutil"
- "path"
- "runtime"
- )
- var certPath string
- func init() {
- _, filename, _, ok := runtime.Caller(0)
- if !ok {
- panic("Failed to get current frame")
- }
- certPath = path.Dir(filename)
- }
- // GetCertificatePaths returns the paths to certificate and key
- func GetCertificatePaths() (string, string) {
- return path.Join(certPath, "cert.pem"), path.Join(certPath, "priv.key")
- }
- // GetTLSConfig returns a tls config for quic.clemente.io
- func GetTLSConfig() *tls.Config {
- cert, err := tls.LoadX509KeyPair(GetCertificatePaths())
- if err != nil {
- panic(err)
- }
- return &tls.Config{
- Certificates: []tls.Certificate{cert},
- }
- }
- // GetRootCA returns an x509.CertPool containing the CA certificate
- func GetRootCA() *x509.CertPool {
- caCertPath := path.Join(certPath, "ca.pem")
- caCertRaw, err := ioutil.ReadFile(caCertPath)
- if err != nil {
- panic(err)
- }
- p, _ := pem.Decode(caCertRaw)
- if p.Type != "CERTIFICATE" {
- panic("expected a certificate")
- }
- caCert, err := x509.ParseCertificate(p.Bytes)
- if err != nil {
- panic(err)
- }
- certPool := x509.NewCertPool()
- certPool.AddCert(caCert)
- return certPool
- }
|