diff options
| author | jsing <> | 2015-02-07 06:19:26 +0000 | 
|---|---|---|
| committer | jsing <> | 2015-02-07 06:19:26 +0000 | 
| commit | 497cd6f0a725ed72f30fbe310fe0b2e7cb214019 (patch) | |
| tree | 4574673a0c17d6f4e774e9685f9dde91409dc24b /src/lib/libtls/tls_config.c | |
| parent | 615aea0ff56ce257fc0cdc2310084d6bbd6ad4c6 (diff) | |
| download | openbsd-497cd6f0a725ed72f30fbe310fe0b2e7cb214019.tar.gz openbsd-497cd6f0a725ed72f30fbe310fe0b2e7cb214019.tar.bz2 openbsd-497cd6f0a725ed72f30fbe310fe0b2e7cb214019.zip  | |
Add tls_config_set_dheparams() to allow specification of the parameters to
use for DHE. This enables the use of DHE cipher suites.
Rename tls_config_set_ecdhcurve() to tls_config_set_ecdhecurve() since it
is only used to specify the curve for ephemeral ECDH.
Discussed with reyk@
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libtls/tls_config.c | 30 | 
1 files changed, 25 insertions, 5 deletions
diff --git a/src/lib/libtls/tls_config.c b/src/lib/libtls/tls_config.c index 16120c5e4e..7697fa6ee8 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.2 2015/01/22 09:16:24 reyk Exp $ */ | 1 | /* $OpenBSD: tls_config.c,v 1.3 2015/02/07 06:19:26 jsing Exp $ */ | 
| 2 | /* | 2 | /* | 
| 3 | * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> | 
| 4 | * | 4 | * | 
| @@ -71,7 +71,8 @@ tls_config_new(void) | |||
| 71 | tls_config_free(config); | 71 | tls_config_free(config); | 
| 72 | return (NULL); | 72 | return (NULL); | 
| 73 | } | 73 | } | 
| 74 | tls_config_set_ecdhcurve(config, "auto"); | 74 | tls_config_set_dheparams(config, "none"); | 
| 75 | tls_config_set_ecdhecurve(config, "auto"); | ||
| 75 | tls_config_set_protocols(config, TLS_PROTOCOLS_DEFAULT); | 76 | tls_config_set_protocols(config, TLS_PROTOCOLS_DEFAULT); | 
| 76 | tls_config_set_verify_depth(config, 6); | 77 | tls_config_set_verify_depth(config, 6); | 
| 77 | 78 | ||
| @@ -145,18 +146,37 @@ tls_config_set_ciphers(struct tls_config *config, const char *ciphers) | |||
| 145 | } | 146 | } | 
| 146 | 147 | ||
| 147 | int | 148 | int | 
| 148 | tls_config_set_ecdhcurve(struct tls_config *config, const char *name) | 149 | tls_config_set_dheparams(struct tls_config *config, const char *params) | 
| 150 | { | ||
| 151 | int keylen; | ||
| 152 | |||
| 153 | if (params == NULL || strcasecmp(params, "none") == 0) | ||
| 154 | keylen = 0; | ||
| 155 | else if (strcasecmp(params, "auto") == 0) | ||
| 156 | keylen = -1; | ||
| 157 | else if (strcmp(params, "legacy")) | ||
| 158 | keylen = 1024; | ||
| 159 | else | ||
| 160 | return (-1); | ||
| 161 | |||
| 162 | config->dheparams = keylen; | ||
| 163 | |||
| 164 | return (0); | ||
| 165 | } | ||
| 166 | |||
| 167 | int | ||
| 168 | tls_config_set_ecdhecurve(struct tls_config *config, const char *name) | ||
| 149 | { | 169 | { | 
| 150 | int nid; | 170 | int nid; | 
| 151 | 171 | ||
| 152 | if (name == NULL) | 172 | if (name == NULL || strcasecmp(name, "none") == 0) | 
| 153 | nid = NID_undef; | 173 | nid = NID_undef; | 
| 154 | else if (strcasecmp(name, "auto") == 0) | 174 | else if (strcasecmp(name, "auto") == 0) | 
| 155 | nid = -1; | 175 | nid = -1; | 
| 156 | else if ((nid = OBJ_txt2nid(name)) == NID_undef) | 176 | else if ((nid = OBJ_txt2nid(name)) == NID_undef) | 
| 157 | return (-1); | 177 | return (-1); | 
| 158 | 178 | ||
| 159 | config->ecdhcurve = nid; | 179 | config->ecdhecurve = nid; | 
| 160 | 180 | ||
| 161 | return (0); | 181 | return (0); | 
| 162 | } | 182 | } | 
