diff options
author | jsing <> | 2017-03-07 12:52:14 +0000 |
---|---|---|
committer | jsing <> | 2017-03-07 12:52:14 +0000 |
commit | 65981caf151f1a193fa20339f56174976bfbb6ad (patch) | |
tree | fb46e88eedcca9dc7bf09b0d66fe3633ac8f4011 /src/regress/lib/libtls | |
parent | 15eae26cf80fdf64bffd0944aa6c5cd5e33f4785 (diff) | |
download | openbsd-65981caf151f1a193fa20339f56174976bfbb6ad.tar.gz openbsd-65981caf151f1a193fa20339f56174976bfbb6ad.tar.bz2 openbsd-65981caf151f1a193fa20339f56174976bfbb6ad.zip |
Add handling for errors on the TLS config and properly check/handle
failures when setting the CA file.
Diffstat (limited to 'src/regress/lib/libtls')
-rw-r--r-- | src/regress/lib/libtls/gotls/tls.go | 15 | ||||
-rw-r--r-- | src/regress/lib/libtls/gotls/tls_test.go | 14 |
2 files changed, 23 insertions, 6 deletions
diff --git a/src/regress/lib/libtls/gotls/tls.go b/src/regress/lib/libtls/gotls/tls.go index 4ce92eaef8..c6aab7789f 100644 --- a/src/regress/lib/libtls/gotls/tls.go +++ b/src/regress/lib/libtls/gotls/tls.go | |||
@@ -53,11 +53,22 @@ func NewConfig() (*TLSConfig, error) { | |||
53 | }, nil | 53 | }, nil |
54 | } | 54 | } |
55 | 55 | ||
56 | // Error returns the error message from the TLS configuration. | ||
57 | func (c *TLSConfig) Error() error { | ||
58 | if msg := C.tls_config_error(c.tlsCfg); msg != nil { | ||
59 | return errors.New(C.GoString(msg)) | ||
60 | } | ||
61 | return errors.New("unknown error") | ||
62 | } | ||
63 | |||
56 | // SetCAFile sets the CA file to be used for connections. | 64 | // SetCAFile sets the CA file to be used for connections. |
57 | func (c *TLSConfig) SetCAFile(filename string) { | 65 | func (c *TLSConfig) SetCAFile(filename string) error { |
58 | caFile := C.CString(filename) | 66 | caFile := C.CString(filename) |
59 | defer C.free(unsafe.Pointer(caFile)) | 67 | defer C.free(unsafe.Pointer(caFile)) |
60 | C.tls_config_set_ca_file(c.tlsCfg, caFile) | 68 | if C.tls_config_set_ca_file(c.tlsCfg, caFile) != 0 { |
69 | return c.Error() | ||
70 | } | ||
71 | return nil | ||
61 | } | 72 | } |
62 | 73 | ||
63 | // InsecureNoVerifyCert disables certificate verification for the connection. | 74 | // InsecureNoVerifyCert disables certificate verification for the connection. |
diff --git a/src/regress/lib/libtls/gotls/tls_test.go b/src/regress/lib/libtls/gotls/tls_test.go index 3a430924a7..f48be5ddda 100644 --- a/src/regress/lib/libtls/gotls/tls_test.go +++ b/src/regress/lib/libtls/gotls/tls_test.go | |||
@@ -21,7 +21,7 @@ const ( | |||
21 | 21 | ||
22 | var ( | 22 | var ( |
23 | certNotBefore = time.Unix(0, 0) | 23 | certNotBefore = time.Unix(0, 0) |
24 | certNotAfter = certNotBefore.Add(1000000 * time.Hour) | 24 | certNotAfter = certNotBefore.Add(1000000 * time.Hour) |
25 | ) | 25 | ) |
26 | 26 | ||
27 | // createCAFile writes a PEM encoded version of the certificate out to a | 27 | // createCAFile writes a PEM encoded version of the certificate out to a |
@@ -81,7 +81,9 @@ func TestTLSBasic(t *testing.T) { | |||
81 | t.Fatal(err) | 81 | t.Fatal(err) |
82 | } | 82 | } |
83 | defer cfg.Free() | 83 | defer cfg.Free() |
84 | cfg.SetCAFile(caFile) | 84 | if err := cfg.SetCAFile(caFile); err != nil { |
85 | t.Fatal(err) | ||
86 | } | ||
85 | 87 | ||
86 | tls, err := NewClient(cfg) | 88 | tls, err := NewClient(cfg) |
87 | if err != nil { | 89 | if err != nil { |
@@ -135,7 +137,9 @@ func TestTLSSingleByteReadWrite(t *testing.T) { | |||
135 | t.Fatal(err) | 137 | t.Fatal(err) |
136 | } | 138 | } |
137 | defer cfg.Free() | 139 | defer cfg.Free() |
138 | cfg.SetCAFile(caFile) | 140 | if err := cfg.SetCAFile(caFile); err != nil { |
141 | t.Fatal(err) | ||
142 | } | ||
139 | 143 | ||
140 | tls, err := NewClient(cfg) | 144 | tls, err := NewClient(cfg) |
141 | if err != nil { | 145 | if err != nil { |
@@ -202,7 +206,9 @@ func TestTLSInfo(t *testing.T) { | |||
202 | t.Fatal(err) | 206 | t.Fatal(err) |
203 | } | 207 | } |
204 | defer cfg.Free() | 208 | defer cfg.Free() |
205 | cfg.SetCAFile(caFile) | 209 | if err := cfg.SetCAFile(caFile); err != nil { |
210 | t.Fatal(err) | ||
211 | } | ||
206 | 212 | ||
207 | tls, err := NewClient(cfg) | 213 | tls, err := NewClient(cfg) |
208 | if err != nil { | 214 | if err != nil { |