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 }