Skip to content

Commit a4a432b

Browse files
authored
Merge pull request #1257 from thaJeztah/remove_goutils
transport/ca/localca: New(): return error instead of calling os.Exit(1), remove github.com/kisom/goutils/assert
2 parents cfd0e9a + 0eecfe2 commit a4a432b

File tree

7 files changed

+65
-285
lines changed

7 files changed

+65
-285
lines changed

go.mod

-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ require (
1111
github.com/jmhodges/clock v1.2.0
1212
github.com/jmoiron/sqlx v1.3.3
1313
github.com/kisielk/sqlstruct v0.0.0-20201105191214-5f3e10d3ab46
14-
github.com/kisom/goutils v1.4.3
1514
github.com/lib/pq v1.10.1
1615
github.com/mattn/go-sqlite3 v1.14.15
1716
github.com/prometheus/client_golang v1.13.0

go.sum

-2
Original file line numberDiff line numberDiff line change
@@ -214,8 +214,6 @@ github.com/kataras/sitemap v0.0.5/go.mod h1:KY2eugMKiPwsJgx7+U103YZehfvNGOXURubc
214214
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
215215
github.com/kisielk/sqlstruct v0.0.0-20201105191214-5f3e10d3ab46 h1:veS9QfglfvqAw2e+eeNT/SbGySq8ajECXJ9e4fPoLhY=
216216
github.com/kisielk/sqlstruct v0.0.0-20201105191214-5f3e10d3ab46/go.mod h1:yyMNCyc/Ib3bDTKd379tNMpB/7/H5TjM2Y9QJ5THLbE=
217-
github.com/kisom/goutils v1.4.3 h1:N81mTXtO2LCpoqVtOrKthH5Abm0MknjX54QS8DmpQIk=
218-
github.com/kisom/goutils v1.4.3/go.mod h1:Lp5qrquG7yhYnWzZCI/68Pa/GpFynw//od6EkGnWpac=
219217
github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
220218
github.com/klauspost/compress v1.9.7/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
221219
github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=

transport/ca/localca/signer.go

+10-4
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"crypto/x509"
88
"encoding/pem"
99
"errors"
10+
"fmt"
1011
"time"
1112

1213
"github.com/cloudflare/cfssl/config"
@@ -15,7 +16,6 @@ import (
1516
"github.com/cloudflare/cfssl/initca"
1617
"github.com/cloudflare/cfssl/signer"
1718
"github.com/cloudflare/cfssl/signer/local"
18-
"github.com/kisom/goutils/assert"
1919
)
2020

2121
// CA is a local transport CertificateAuthority that is useful for
@@ -146,13 +146,19 @@ func New(req *csr.CertificateRequest, profiles *config.Signing) (*CA, error) {
146146
// CFSSL has become inconsistent, and it can't be trusted.
147147

148148
priv, err := helpers.ParsePrivateKeyPEM(keyPEM)
149-
assert.NoError(err, "CFSSL-generated private key can't be parsed")
149+
if err != nil {
150+
return nil, fmt.Errorf("CFSSL-generated private key can't be parsed: %w", err)
151+
}
150152

151153
cert, err := helpers.ParseCertificatePEM(certPEM)
152-
assert.NoError(err, "CFSSL-generated certificate can't be parsed")
154+
if err != nil {
155+
return nil, fmt.Errorf("CFSSL-generated private key can't be parsed: %w", err)
156+
}
153157

154158
s, err := local.NewSigner(priv, cert, helpers.SignerAlgo(priv), profiles)
155-
assert.NoError(err, "a signer could not be constructed")
159+
if err != nil {
160+
return nil, fmt.Errorf("a signer could not be constructed: %w", err)
161+
}
156162

157163
return NewFromSigner(s), nil
158164
}

transport/ca/localca/signer_test.go

+55-88
Original file line numberDiff line numberDiff line change
@@ -2,76 +2,16 @@ package localca
22

33
import (
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-
7515
func TestEncodePEM(t *testing.T) {
7616
p := &pem.Block{
7717
Type: "CERTIFICATE REQUEST",
@@ -83,30 +23,38 @@ func TestEncodePEM(t *testing.T) {
8323
func 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

11260
var testRequest = &csr.CertificateRequest{
@@ -121,33 +69,50 @@ var testRequest = &csr.CertificateRequest{
12169
func 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
}

vendor/github.com/kisom/goutils/LICENSE

-13
This file was deleted.

0 commit comments

Comments
 (0)