diff options
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libtls/tls_config.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/lib/libtls/tls_config.c b/src/lib/libtls/tls_config.c index 5ab2379628..9c2b5810f6 100644 --- a/src/lib/libtls/tls_config.c +++ b/src/lib/libtls/tls_config.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: tls_config.c,v 1.14 2015/09/29 10:17:04 deraadt Exp $ */ | 1 | /* $OpenBSD: tls_config.c,v 1.15 2016/04/28 16:48:44 jsing Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> |
| 4 | * | 4 | * |
| @@ -99,6 +99,8 @@ tls_config_free(struct tls_config *config) | |||
| 99 | 99 | ||
| 100 | tls_config_clear_keys(config); | 100 | tls_config_clear_keys(config); |
| 101 | 101 | ||
| 102 | free(config->error.msg); | ||
| 103 | |||
| 102 | free((char *)config->ca_file); | 104 | free((char *)config->ca_file); |
| 103 | free((char *)config->ca_path); | 105 | free((char *)config->ca_path); |
| 104 | free((char *)config->cert_file); | 106 | free((char *)config->cert_file); |
| @@ -110,6 +112,12 @@ tls_config_free(struct tls_config *config) | |||
| 110 | free(config); | 112 | free(config); |
| 111 | } | 113 | } |
| 112 | 114 | ||
| 115 | const char * | ||
| 116 | tls_config_error(struct tls_config *config) | ||
| 117 | { | ||
| 118 | return config->error.msg; | ||
| 119 | } | ||
| 120 | |||
| 113 | void | 121 | void |
| 114 | tls_config_clear_keys(struct tls_config *config) | 122 | tls_config_clear_keys(struct tls_config *config) |
| 115 | { | 123 | { |
| @@ -232,8 +240,10 @@ tls_config_set_dheparams(struct tls_config *config, const char *params) | |||
| 232 | keylen = -1; | 240 | keylen = -1; |
| 233 | else if (strcasecmp(params, "legacy") == 0) | 241 | else if (strcasecmp(params, "legacy") == 0) |
| 234 | keylen = 1024; | 242 | keylen = 1024; |
| 235 | else | 243 | else { |
| 244 | tls_set_config_errorx(config, "invalid dhe param '%s'", params); | ||
| 236 | return (-1); | 245 | return (-1); |
| 246 | } | ||
| 237 | 247 | ||
| 238 | config->dheparams = keylen; | 248 | config->dheparams = keylen; |
| 239 | 249 | ||
| @@ -249,8 +259,10 @@ tls_config_set_ecdhecurve(struct tls_config *config, const char *name) | |||
| 249 | nid = NID_undef; | 259 | nid = NID_undef; |
| 250 | else if (strcasecmp(name, "auto") == 0) | 260 | else if (strcasecmp(name, "auto") == 0) |
| 251 | nid = -1; | 261 | nid = -1; |
| 252 | else if ((nid = OBJ_txt2nid(name)) == NID_undef) | 262 | else if ((nid = OBJ_txt2nid(name)) == NID_undef) { |
| 263 | tls_set_config_errorx(config, "invalid ecdhe curve '%s'", name); | ||
| 253 | return (-1); | 264 | return (-1); |
| 265 | } | ||
| 254 | 266 | ||
| 255 | config->ecdhecurve = nid; | 267 | config->ecdhecurve = nid; |
| 256 | 268 | ||
