diff options
Diffstat (limited to 'src/lib/libssl/s3_lib.c')
-rw-r--r-- | src/lib/libssl/s3_lib.c | 53 |
1 files changed, 18 insertions, 35 deletions
diff --git a/src/lib/libssl/s3_lib.c b/src/lib/libssl/s3_lib.c index 6287f6cbc6..108cc9f71e 100644 --- a/src/lib/libssl/s3_lib.c +++ b/src/lib/libssl/s3_lib.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: s3_lib.c,v 1.132 2017/01/26 10:40:21 beck Exp $ */ | 1 | /* $OpenBSD: s3_lib.c,v 1.133 2017/01/26 12:16:13 beck Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -1980,8 +1980,7 @@ ssl3_ctrl(SSL *s, int cmd, long larg, void *parg) | |||
1980 | 1980 | ||
1981 | if (cmd == SSL_CTRL_SET_TMP_DH || cmd == SSL_CTRL_SET_TMP_DH_CB) { | 1981 | if (cmd == SSL_CTRL_SET_TMP_DH || cmd == SSL_CTRL_SET_TMP_DH_CB) { |
1982 | if (!ssl_cert_inst(&s->cert)) { | 1982 | if (!ssl_cert_inst(&s->cert)) { |
1983 | SSLerror( | 1983 | SSLerror(ERR_R_MALLOC_FAILURE); |
1984 | ERR_R_MALLOC_FAILURE); | ||
1985 | return (0); | 1984 | return (0); |
1986 | } | 1985 | } |
1987 | } | 1986 | } |
@@ -2016,13 +2015,11 @@ ssl3_ctrl(SSL *s, int cmd, long larg, void *parg) | |||
2016 | { | 2015 | { |
2017 | DH *dh = (DH *)parg; | 2016 | DH *dh = (DH *)parg; |
2018 | if (dh == NULL) { | 2017 | if (dh == NULL) { |
2019 | SSLerror( | 2018 | SSLerror(ERR_R_PASSED_NULL_PARAMETER); |
2020 | ERR_R_PASSED_NULL_PARAMETER); | ||
2021 | return (ret); | 2019 | return (ret); |
2022 | } | 2020 | } |
2023 | if ((dh = DHparams_dup(dh)) == NULL) { | 2021 | if ((dh = DHparams_dup(dh)) == NULL) { |
2024 | SSLerror( | 2022 | SSLerror(ERR_R_DH_LIB); |
2025 | ERR_R_DH_LIB); | ||
2026 | return (ret); | 2023 | return (ret); |
2027 | } | 2024 | } |
2028 | DH_free(s->cert->dh_tmp); | 2025 | DH_free(s->cert->dh_tmp); |
@@ -2044,21 +2041,18 @@ ssl3_ctrl(SSL *s, int cmd, long larg, void *parg) | |||
2044 | EC_KEY *ecdh = NULL; | 2041 | EC_KEY *ecdh = NULL; |
2045 | 2042 | ||
2046 | if (parg == NULL) { | 2043 | if (parg == NULL) { |
2047 | SSLerror( | 2044 | SSLerror(ERR_R_PASSED_NULL_PARAMETER); |
2048 | ERR_R_PASSED_NULL_PARAMETER); | ||
2049 | return (ret); | 2045 | return (ret); |
2050 | } | 2046 | } |
2051 | if (!EC_KEY_up_ref((EC_KEY *)parg)) { | 2047 | if (!EC_KEY_up_ref((EC_KEY *)parg)) { |
2052 | SSLerror( | 2048 | SSLerror(ERR_R_ECDH_LIB); |
2053 | ERR_R_ECDH_LIB); | ||
2054 | return (ret); | 2049 | return (ret); |
2055 | } | 2050 | } |
2056 | ecdh = (EC_KEY *)parg; | 2051 | ecdh = (EC_KEY *)parg; |
2057 | if (!(s->internal->options & SSL_OP_SINGLE_ECDH_USE)) { | 2052 | if (!(s->internal->options & SSL_OP_SINGLE_ECDH_USE)) { |
2058 | if (!EC_KEY_generate_key(ecdh)) { | 2053 | if (!EC_KEY_generate_key(ecdh)) { |
2059 | EC_KEY_free(ecdh); | 2054 | EC_KEY_free(ecdh); |
2060 | SSLerror( | 2055 | SSLerror(ERR_R_ECDH_LIB); |
2061 | ERR_R_ECDH_LIB); | ||
2062 | return (ret); | 2056 | return (ret); |
2063 | } | 2057 | } |
2064 | } | 2058 | } |
@@ -2069,8 +2063,7 @@ ssl3_ctrl(SSL *s, int cmd, long larg, void *parg) | |||
2069 | break; | 2063 | break; |
2070 | case SSL_CTRL_SET_TMP_ECDH_CB: | 2064 | case SSL_CTRL_SET_TMP_ECDH_CB: |
2071 | { | 2065 | { |
2072 | SSLerror( | 2066 | SSLerror(ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); |
2073 | ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); | ||
2074 | return (ret); | 2067 | return (ret); |
2075 | } | 2068 | } |
2076 | break; | 2069 | break; |
@@ -2083,19 +2076,16 @@ ssl3_ctrl(SSL *s, int cmd, long larg, void *parg) | |||
2083 | if (parg == NULL) | 2076 | if (parg == NULL) |
2084 | break; | 2077 | break; |
2085 | if (strlen((char *)parg) > TLSEXT_MAXLEN_host_name) { | 2078 | if (strlen((char *)parg) > TLSEXT_MAXLEN_host_name) { |
2086 | SSLerror( | 2079 | SSLerror(SSL_R_SSL3_EXT_INVALID_SERVERNAME); |
2087 | SSL_R_SSL3_EXT_INVALID_SERVERNAME); | ||
2088 | return 0; | 2080 | return 0; |
2089 | } | 2081 | } |
2090 | if ((s->tlsext_hostname = strdup((char *)parg)) | 2082 | if ((s->tlsext_hostname = strdup((char *)parg)) |
2091 | == NULL) { | 2083 | == NULL) { |
2092 | SSLerror( | 2084 | SSLerror(ERR_R_INTERNAL_ERROR); |
2093 | ERR_R_INTERNAL_ERROR); | ||
2094 | return 0; | 2085 | return 0; |
2095 | } | 2086 | } |
2096 | } else { | 2087 | } else { |
2097 | SSLerror( | 2088 | SSLerror(SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE); |
2098 | SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE); | ||
2099 | return 0; | 2089 | return 0; |
2100 | } | 2090 | } |
2101 | break; | 2091 | break; |
@@ -2177,8 +2167,7 @@ ssl3_callback_ctrl(SSL *s, int cmd, void (*fp)(void)) | |||
2177 | 2167 | ||
2178 | if (cmd == SSL_CTRL_SET_TMP_DH_CB) { | 2168 | if (cmd == SSL_CTRL_SET_TMP_DH_CB) { |
2179 | if (!ssl_cert_inst(&s->cert)) { | 2169 | if (!ssl_cert_inst(&s->cert)) { |
2180 | SSLerror( | 2170 | SSLerror(ERR_R_MALLOC_FAILURE); |
2181 | ERR_R_MALLOC_FAILURE); | ||
2182 | return (0); | 2171 | return (0); |
2183 | } | 2172 | } |
2184 | } | 2173 | } |
@@ -2223,8 +2212,7 @@ ssl3_ctx_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg) | |||
2223 | 2212 | ||
2224 | dh = (DH *)parg; | 2213 | dh = (DH *)parg; |
2225 | if ((new = DHparams_dup(dh)) == NULL) { | 2214 | if ((new = DHparams_dup(dh)) == NULL) { |
2226 | SSLerror( | 2215 | SSLerror(ERR_R_DH_LIB); |
2227 | ERR_R_DH_LIB); | ||
2228 | return 0; | 2216 | return 0; |
2229 | } | 2217 | } |
2230 | DH_free(cert->dh_tmp); | 2218 | DH_free(cert->dh_tmp); |
@@ -2246,21 +2234,18 @@ ssl3_ctx_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg) | |||
2246 | EC_KEY *ecdh = NULL; | 2234 | EC_KEY *ecdh = NULL; |
2247 | 2235 | ||
2248 | if (parg == NULL) { | 2236 | if (parg == NULL) { |
2249 | SSLerror( | 2237 | SSLerror(ERR_R_ECDH_LIB); |
2250 | ERR_R_ECDH_LIB); | ||
2251 | return 0; | 2238 | return 0; |
2252 | } | 2239 | } |
2253 | ecdh = EC_KEY_dup((EC_KEY *)parg); | 2240 | ecdh = EC_KEY_dup((EC_KEY *)parg); |
2254 | if (ecdh == NULL) { | 2241 | if (ecdh == NULL) { |
2255 | SSLerror( | 2242 | SSLerror(ERR_R_EC_LIB); |
2256 | ERR_R_EC_LIB); | ||
2257 | return 0; | 2243 | return 0; |
2258 | } | 2244 | } |
2259 | if (!(ctx->internal->options & SSL_OP_SINGLE_ECDH_USE)) { | 2245 | if (!(ctx->internal->options & SSL_OP_SINGLE_ECDH_USE)) { |
2260 | if (!EC_KEY_generate_key(ecdh)) { | 2246 | if (!EC_KEY_generate_key(ecdh)) { |
2261 | EC_KEY_free(ecdh); | 2247 | EC_KEY_free(ecdh); |
2262 | SSLerror( | 2248 | SSLerror(ERR_R_ECDH_LIB); |
2263 | ERR_R_ECDH_LIB); | ||
2264 | return 0; | 2249 | return 0; |
2265 | } | 2250 | } |
2266 | } | 2251 | } |
@@ -2272,8 +2257,7 @@ ssl3_ctx_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg) | |||
2272 | /* break; */ | 2257 | /* break; */ |
2273 | case SSL_CTRL_SET_TMP_ECDH_CB: | 2258 | case SSL_CTRL_SET_TMP_ECDH_CB: |
2274 | { | 2259 | { |
2275 | SSLerror( | 2260 | SSLerror(ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); |
2276 | ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); | ||
2277 | return (0); | 2261 | return (0); |
2278 | } | 2262 | } |
2279 | break; | 2263 | break; |
@@ -2287,8 +2271,7 @@ ssl3_ctx_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg) | |||
2287 | if (!keys) | 2271 | if (!keys) |
2288 | return 48; | 2272 | return 48; |
2289 | if (larg != 48) { | 2273 | if (larg != 48) { |
2290 | SSLerror( | 2274 | SSLerror(SSL_R_INVALID_TICKET_KEYS_LENGTH); |
2291 | SSL_R_INVALID_TICKET_KEYS_LENGTH); | ||
2292 | return 0; | 2275 | return 0; |
2293 | } | 2276 | } |
2294 | if (cmd == SSL_CTRL_SET_TLSEXT_TICKET_KEYS) { | 2277 | if (cmd == SSL_CTRL_SET_TLSEXT_TICKET_KEYS) { |