github.com/AntonOrnatskyi/goproxy@v0.0.0-20190205095733-4526a9fa18b4/utils/cert/cert_test.go (about)

     1  package cert
     2  
     3  import (
     4  	"os"
     5  	"testing"
     6  )
     7  
     8  func TestCaGen(t *testing.T) {
     9  	err := CreateCaToFile("ca", "test", 365)
    10  	if err != nil {
    11  		t.Fatal(err)
    12  		return
    13  	}
    14  	ca, key, err := ParseCertAndKey("ca.crt", "ca.key")
    15  	if err != nil {
    16  		t.Fatal(err)
    17  		return
    18  	}
    19  	if ca.Subject.Organization[0] != "test" {
    20  		t.Fatalf("Organization %s not match test", ca.Subject.Organization[0])
    21  		return
    22  	}
    23  	err = key.Validate()
    24  	if err != nil {
    25  		t.Fatal(err)
    26  		return
    27  	}
    28  	os.Remove("ca.crt")
    29  	os.Remove("ca.key")
    30  
    31  }
    32  func TestSign(t *testing.T) {
    33  	err := CreateCaToFile("ca", "test", 365)
    34  	if err != nil {
    35  		t.Fatal(err)
    36  		return
    37  	}
    38  	ca, key, err := ParseCertAndKey("ca.crt", "ca.key")
    39  	if err != nil {
    40  		t.Fatal(err)
    41  		return
    42  	}
    43  	err = CreateCaToFile("ca", "test", 365)
    44  	if err != nil {
    45  		t.Fatal(err)
    46  		return
    47  	}
    48  	err = CreateSignCertToFile(ca, key, "server.com", 365, "server")
    49  	if err != nil {
    50  		t.Fatal(err)
    51  		return
    52  	}
    53  	servercrt, serverkey, err := ParseCertAndKey("server.crt", "server.key")
    54  	if err != nil {
    55  		t.Fatal(err)
    56  		return
    57  	}
    58  	if servercrt.Subject.CommonName != "server.com" {
    59  		t.Fatalf("CommonName %s not match server.com", ca.Subject.CommonName)
    60  		return
    61  	}
    62  	err = serverkey.Validate()
    63  	if err != nil {
    64  		t.Fatal(err)
    65  		return
    66  	}
    67  	os.Remove("ca.crt")
    68  	os.Remove("ca.key")
    69  	os.Remove("server.crt")
    70  	os.Remove("server.key")
    71  }