72 lines
1.3 KiB
Go
72 lines
1.3 KiB
Go
package cert
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
)
|
|
|
|
func TestCaGen(t *testing.T) {
|
|
err := CreateCaToFile("ca", "test", 365)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
return
|
|
}
|
|
ca, key, err := ParseCertAndKey("ca.crt", "ca.key")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
return
|
|
}
|
|
if ca.Subject.Organization[0] != "test" {
|
|
t.Fatalf("Organization %s not match test", ca.Subject.Organization[0])
|
|
return
|
|
}
|
|
err = key.Validate()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
return
|
|
}
|
|
os.Remove("ca.crt")
|
|
os.Remove("ca.key")
|
|
|
|
}
|
|
func TestSign(t *testing.T) {
|
|
err := CreateCaToFile("ca", "test", 365)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
return
|
|
}
|
|
ca, key, err := ParseCertAndKey("ca.crt", "ca.key")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
return
|
|
}
|
|
err = CreateCaToFile("ca", "test", 365)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
return
|
|
}
|
|
err = CreateSignCertToFile(ca, key, "server.com", 365, "server")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
return
|
|
}
|
|
servercrt, serverkey, err := ParseCertAndKey("server.crt", "server.key")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
return
|
|
}
|
|
if servercrt.Subject.CommonName != "server.com" {
|
|
t.Fatalf("CommonName %s not match server.com", ca.Subject.CommonName)
|
|
return
|
|
}
|
|
err = serverkey.Validate()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
return
|
|
}
|
|
os.Remove("ca.crt")
|
|
os.Remove("ca.key")
|
|
os.Remove("server.crt")
|
|
os.Remove("server.key")
|
|
}
|