@@ -2,76 +2,16 @@ package localca
22
33import (
44 "encoding/pem"
5- "io/ioutil "
5+ "errors "
66 "os"
7+ "path/filepath"
78 "testing"
89
9- "github.com/cloudflare/cfssl/config"
1010 "github.com/cloudflare/cfssl/csr"
1111 "github.com/cloudflare/cfssl/helpers"
1212 "github.com/cloudflare/cfssl/initca"
13- "github.com/cloudflare/cfssl/selfsign"
14- "github.com/kisom/goutils/assert"
1513)
1614
17- func tempName () (string , error ) {
18- tmpf , err := ioutil .TempFile ("" , "transport_cachedkp_" )
19- if err != nil {
20- return "" , err
21- }
22-
23- name := tmpf .Name ()
24- tmpf .Close ()
25- return name , nil
26- }
27-
28- func testGenerateKeypair (req * csr.CertificateRequest ) (keyFile , certFile string , err error ) {
29- fail := func (err error ) (string , string , error ) {
30- if keyFile != "" {
31- os .Remove (keyFile )
32- }
33- if certFile != "" {
34- os .Remove (certFile )
35- }
36- return "" , "" , err
37- }
38-
39- keyFile , err = tempName ()
40- if err != nil {
41- return fail (err )
42- }
43-
44- certFile , err = tempName ()
45- if err != nil {
46- return fail (err )
47- }
48-
49- csrPEM , keyPEM , err := csr .ParseRequest (req )
50- if err != nil {
51- return fail (err )
52- }
53-
54- if err = ioutil .WriteFile (keyFile , keyPEM , 0644 ); err != nil {
55- return fail (err )
56- }
57-
58- priv , err := helpers .ParsePrivateKeyPEM (keyPEM )
59- if err != nil {
60- return fail (err )
61- }
62-
63- cert , err := selfsign .Sign (priv , csrPEM , config .DefaultConfig ())
64- if err != nil {
65- return fail (err )
66- }
67-
68- if err = ioutil .WriteFile (certFile , cert , 0644 ); err != nil {
69- return fail (err )
70- }
71-
72- return
73- }
74-
7515func TestEncodePEM (t * testing.T ) {
7616 p := & pem.Block {
7717 Type : "CERTIFICATE REQUEST" ,
@@ -83,30 +23,38 @@ func TestEncodePEM(t *testing.T) {
8323func TestLoadSigner (t * testing.T ) {
8424 lca := & CA {}
8525 certPEM , csrPEM , keyPEM , err := initca .New (ExampleRequest ())
86- assert .NoErrorT (t , err )
26+ if err != nil {
27+ t .Fatal (err )
28+ }
8729
8830 _ , err = lca .CACertificate ()
89- assert .ErrorEqT (t , errNotSetup , err )
31+ if ! errors .Is (err , errNotSetup ) {
32+ t .Fatalf ("expected an errNotSetup (%v), got: %v" , errNotSetup , err )
33+ }
9034
9135 _ , err = lca .SignCSR (csrPEM )
92- assert .ErrorEqT (t , errNotSetup , err )
93-
94- lca .KeyFile , err = tempName ()
95- assert .NoErrorT (t , err )
96- defer os .Remove (lca .KeyFile )
36+ if ! errors .Is (err , errNotSetup ) {
37+ t .Fatalf ("expected an errNotSetup (%v), got: %v" , errNotSetup , err )
38+ }
9739
98- lca . CertFile , err = tempName ()
99- assert . NoErrorT ( t , err )
100- defer os . Remove ( lca . CertFile )
40+ tmpDir := t . TempDir ()
41+ lca . KeyFile = filepath . Join ( tmpDir , "KeyFile" )
42+ lca . CertFile = filepath . Join ( tmpDir , " CertFile" )
10143
102- err = ioutil .WriteFile (lca .KeyFile , keyPEM , 0644 )
103- assert .NoErrorT (t , err )
44+ err = os .WriteFile (lca .KeyFile , keyPEM , 0644 )
45+ if err != nil {
46+ t .Fatal (err )
47+ }
10448
105- err = ioutil .WriteFile (lca .CertFile , certPEM , 0644 )
106- assert .NoErrorT (t , err )
49+ err = os .WriteFile (lca .CertFile , certPEM , 0644 )
50+ if err != nil {
51+ t .Fatal (err )
52+ }
10753
10854 err = Load (lca , ExampleSigningConfig ())
109- assert .NoErrorT (t , err )
55+ if err != nil {
56+ t .Fatal (err )
57+ }
11058}
11159
11260var testRequest = & csr.CertificateRequest {
@@ -121,33 +69,50 @@ var testRequest = &csr.CertificateRequest{
12169func TestNewSigner (t * testing.T ) {
12270 req := ExampleRequest ()
12371 lca , err := New (req , ExampleSigningConfig ())
124- assert .NoErrorT (t , err )
72+ if err != nil {
73+ t .Fatal (err )
74+ }
12575
12676 csrPEM , _ , err := csr .ParseRequest (testRequest )
127- assert .NoErrorT (t , err )
77+ if err != nil {
78+ t .Fatal (err )
79+ }
12880
12981 certPEM , err := lca .SignCSR (csrPEM )
130- assert .NoErrorT (t , err )
82+ if err != nil {
83+ t .Fatal (err )
84+ }
13185
13286 _ , err = helpers .ParseCertificatePEM (certPEM )
133- assert .NoErrorT (t , err )
87+ if err != nil {
88+ t .Fatal (err )
89+ }
13490
13591 certPEM , err = lca .CACertificate ()
136- assert .NoErrorT (t , err )
92+ if err != nil {
93+ t .Fatal (err )
94+ }
13795
13896 cert , err := helpers .ParseCertificatePEM (certPEM )
139- assert .NoErrorT (t , err )
97+ if err != nil {
98+ t .Fatal (err )
99+ }
140100
141- assert .BoolT (t , cert .Subject .CommonName == req .CN ,
142- "common names don't match" )
101+ if cert .Subject .CommonName != req .CN {
102+ t .Fatalf ("common names don't match: '%s' != '%s'" , cert .Subject .CommonName , req .CN )
103+ }
143104
144105 lca .Toggle ()
145106 _ , err = lca .SignCSR (csrPEM )
146- assert .ErrorEqT (t , errDisabled , err )
107+ if ! errors .Is (err , errDisabled ) {
108+ t .Fatalf ("expected an errDisabled (%v), got: %v" , errDisabled , err )
109+ }
147110 lca .Toggle ()
148111
149112 _ , err = lca .SignCSR (certPEM )
150- assert .ErrorT (t , err , "shouldn't be able to sign non-CSRs" )
113+ if err == nil {
114+ t .Fatal ("shouldn't be able to sign non-CSRs" )
115+ }
151116
152117 p := & pem.Block {
153118 Type : "CERTIFICATE REQUEST" ,
@@ -156,6 +121,8 @@ func TestNewSigner(t *testing.T) {
156121 junkCSR := pem .EncodeToMemory (p )
157122
158123 _ , err = lca .SignCSR (junkCSR )
159- assert .ErrorT (t , err , "signing a junk CSR should fail" )
124+ if err == nil {
125+ t .Fatal ("signing a junk CSR should fail" )
126+ }
160127 t .Logf ("error: %s" , err )
161128}
0 commit comments