@@ -2,76 +2,16 @@ package localca
2
2
3
3
import (
4
4
"encoding/pem"
5
- "io/ioutil "
5
+ "errors "
6
6
"os"
7
+ "path/filepath"
7
8
"testing"
8
9
9
- "github.com/cloudflare/cfssl/config"
10
10
"github.com/cloudflare/cfssl/csr"
11
11
"github.com/cloudflare/cfssl/helpers"
12
12
"github.com/cloudflare/cfssl/initca"
13
- "github.com/cloudflare/cfssl/selfsign"
14
- "github.com/kisom/goutils/assert"
15
13
)
16
14
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
-
75
15
func TestEncodePEM (t * testing.T ) {
76
16
p := & pem.Block {
77
17
Type : "CERTIFICATE REQUEST" ,
@@ -83,30 +23,38 @@ func TestEncodePEM(t *testing.T) {
83
23
func TestLoadSigner (t * testing.T ) {
84
24
lca := & CA {}
85
25
certPEM , csrPEM , keyPEM , err := initca .New (ExampleRequest ())
86
- assert .NoErrorT (t , err )
26
+ if err != nil {
27
+ t .Fatal (err )
28
+ }
87
29
88
30
_ , 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
+ }
90
34
91
35
_ , 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
+ }
97
39
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" )
101
43
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
+ }
104
48
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
+ }
107
53
108
54
err = Load (lca , ExampleSigningConfig ())
109
- assert .NoErrorT (t , err )
55
+ if err != nil {
56
+ t .Fatal (err )
57
+ }
110
58
}
111
59
112
60
var testRequest = & csr.CertificateRequest {
@@ -121,33 +69,50 @@ var testRequest = &csr.CertificateRequest{
121
69
func TestNewSigner (t * testing.T ) {
122
70
req := ExampleRequest ()
123
71
lca , err := New (req , ExampleSigningConfig ())
124
- assert .NoErrorT (t , err )
72
+ if err != nil {
73
+ t .Fatal (err )
74
+ }
125
75
126
76
csrPEM , _ , err := csr .ParseRequest (testRequest )
127
- assert .NoErrorT (t , err )
77
+ if err != nil {
78
+ t .Fatal (err )
79
+ }
128
80
129
81
certPEM , err := lca .SignCSR (csrPEM )
130
- assert .NoErrorT (t , err )
82
+ if err != nil {
83
+ t .Fatal (err )
84
+ }
131
85
132
86
_ , err = helpers .ParseCertificatePEM (certPEM )
133
- assert .NoErrorT (t , err )
87
+ if err != nil {
88
+ t .Fatal (err )
89
+ }
134
90
135
91
certPEM , err = lca .CACertificate ()
136
- assert .NoErrorT (t , err )
92
+ if err != nil {
93
+ t .Fatal (err )
94
+ }
137
95
138
96
cert , err := helpers .ParseCertificatePEM (certPEM )
139
- assert .NoErrorT (t , err )
97
+ if err != nil {
98
+ t .Fatal (err )
99
+ }
140
100
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
+ }
143
104
144
105
lca .Toggle ()
145
106
_ , 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
+ }
147
110
lca .Toggle ()
148
111
149
112
_ , 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
+ }
151
116
152
117
p := & pem.Block {
153
118
Type : "CERTIFICATE REQUEST" ,
@@ -156,6 +121,8 @@ func TestNewSigner(t *testing.T) {
156
121
junkCSR := pem .EncodeToMemory (p )
157
122
158
123
_ , 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
+ }
160
127
t .Logf ("error: %s" , err )
161
128
}
0 commit comments