diff options
Diffstat (limited to 'src/lib/libssl/s3_lib.c')
| -rw-r--r-- | src/lib/libssl/s3_lib.c | 60 |
1 files changed, 27 insertions, 33 deletions
diff --git a/src/lib/libssl/s3_lib.c b/src/lib/libssl/s3_lib.c index b82cf36f2e..1abe01cd88 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.153 2017/08/09 17:42:12 jsing Exp $ */ | 1 | /* $OpenBSD: s3_lib.c,v 1.154 2017/08/09 17:49:54 jsing 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 | * |
| @@ -2078,33 +2078,33 @@ ssl3_ctrl(SSL *s, int cmd, long larg, void *parg) | |||
| 2078 | long | 2078 | long |
| 2079 | ssl3_callback_ctrl(SSL *s, int cmd, void (*fp)(void)) | 2079 | ssl3_callback_ctrl(SSL *s, int cmd, void (*fp)(void)) |
| 2080 | { | 2080 | { |
| 2081 | int ret = 0; | ||
| 2082 | |||
| 2083 | if (cmd == SSL_CTRL_SET_TMP_DH_CB || cmd == SSL_CTRL_SET_TMP_ECDH_CB) { | 2081 | if (cmd == SSL_CTRL_SET_TMP_DH_CB || cmd == SSL_CTRL_SET_TMP_ECDH_CB) { |
| 2084 | if (!ssl_cert_inst(&s->cert)) { | 2082 | if (!ssl_cert_inst(&s->cert)) { |
| 2085 | SSLerror(s, ERR_R_MALLOC_FAILURE); | 2083 | SSLerror(s, ERR_R_MALLOC_FAILURE); |
| 2086 | return (0); | 2084 | return 0; |
| 2087 | } | 2085 | } |
| 2088 | } | 2086 | } |
| 2089 | 2087 | ||
| 2090 | switch (cmd) { | 2088 | switch (cmd) { |
| 2091 | case SSL_CTRL_SET_TMP_RSA_CB: | 2089 | case SSL_CTRL_SET_TMP_RSA_CB: |
| 2092 | SSLerror(s, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); | 2090 | SSLerror(s, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); |
| 2093 | break; | 2091 | return 0; |
| 2092 | |||
| 2094 | case SSL_CTRL_SET_TMP_DH_CB: | 2093 | case SSL_CTRL_SET_TMP_DH_CB: |
| 2095 | s->cert->dh_tmp_cb = (DH *(*)(SSL *, int, int))fp; | 2094 | s->cert->dh_tmp_cb = (DH *(*)(SSL *, int, int))fp; |
| 2096 | break; | 2095 | return 1; |
| 2096 | |||
| 2097 | case SSL_CTRL_SET_TMP_ECDH_CB: | 2097 | case SSL_CTRL_SET_TMP_ECDH_CB: |
| 2098 | s->cert->ecdh_tmp_cb = (EC_KEY *(*)(SSL *, int, int))fp; | 2098 | s->cert->ecdh_tmp_cb = (EC_KEY *(*)(SSL *, int, int))fp; |
| 2099 | break; | 2099 | return 1; |
| 2100 | |||
| 2100 | case SSL_CTRL_SET_TLSEXT_DEBUG_CB: | 2101 | case SSL_CTRL_SET_TLSEXT_DEBUG_CB: |
| 2101 | s->internal->tlsext_debug_cb = (void (*)(SSL *, int , int, | 2102 | s->internal->tlsext_debug_cb = (void (*)(SSL *, int , int, |
| 2102 | unsigned char *, int, void *))fp; | 2103 | unsigned char *, int, void *))fp; |
| 2103 | break; | 2104 | return 1; |
| 2104 | default: | ||
| 2105 | break; | ||
| 2106 | } | 2105 | } |
| 2107 | return (ret); | 2106 | |
| 2107 | return 0; | ||
| 2108 | } | 2108 | } |
| 2109 | 2109 | ||
| 2110 | static int | 2110 | static int |
| @@ -2310,12 +2310,12 @@ ssl3_ctx_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg) | |||
| 2310 | 2310 | ||
| 2311 | case SSL_CTRL_SET_MIN_PROTO_VERSION: | 2311 | case SSL_CTRL_SET_MIN_PROTO_VERSION: |
| 2312 | if (larg < 0 || larg > UINT16_MAX) | 2312 | if (larg < 0 || larg > UINT16_MAX) |
| 2313 | return (0); | 2313 | return 0; |
| 2314 | return SSL_CTX_set_min_proto_version(ctx, larg); | 2314 | return SSL_CTX_set_min_proto_version(ctx, larg); |
| 2315 | 2315 | ||
| 2316 | case SSL_CTRL_SET_MAX_PROTO_VERSION: | 2316 | case SSL_CTRL_SET_MAX_PROTO_VERSION: |
| 2317 | if (larg < 0 || larg > UINT16_MAX) | 2317 | if (larg < 0 || larg > UINT16_MAX) |
| 2318 | return (0); | 2318 | return 0; |
| 2319 | return SSL_CTX_set_max_proto_version(ctx, larg); | 2319 | return SSL_CTX_set_max_proto_version(ctx, larg); |
| 2320 | 2320 | ||
| 2321 | /* | 2321 | /* |
| @@ -2328,51 +2328,45 @@ ssl3_ctx_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg) | |||
| 2328 | case SSL_CTRL_SET_TMP_RSA_CB: | 2328 | case SSL_CTRL_SET_TMP_RSA_CB: |
| 2329 | SSLerrorx(ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); | 2329 | SSLerrorx(ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); |
| 2330 | return 0; | 2330 | return 0; |
| 2331 | |||
| 2332 | default: | ||
| 2333 | return (0); | ||
| 2334 | } | 2331 | } |
| 2335 | return (1); | 2332 | |
| 2333 | return 0; | ||
| 2336 | } | 2334 | } |
| 2337 | 2335 | ||
| 2338 | long | 2336 | long |
| 2339 | ssl3_ctx_callback_ctrl(SSL_CTX *ctx, int cmd, void (*fp)(void)) | 2337 | ssl3_ctx_callback_ctrl(SSL_CTX *ctx, int cmd, void (*fp)(void)) |
| 2340 | { | 2338 | { |
| 2341 | CERT *cert; | ||
| 2342 | |||
| 2343 | cert = ctx->internal->cert; | ||
| 2344 | |||
| 2345 | switch (cmd) { | 2339 | switch (cmd) { |
| 2346 | case SSL_CTRL_SET_TMP_RSA_CB: | 2340 | case SSL_CTRL_SET_TMP_RSA_CB: |
| 2347 | SSLerrorx(ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); | 2341 | SSLerrorx(ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); |
| 2348 | return (0); | 2342 | return 0; |
| 2349 | 2343 | ||
| 2350 | case SSL_CTRL_SET_TMP_DH_CB: | 2344 | case SSL_CTRL_SET_TMP_DH_CB: |
| 2351 | cert->dh_tmp_cb = (DH *(*)(SSL *, int, int))fp; | 2345 | ctx->internal->cert->dh_tmp_cb = |
| 2352 | break; | 2346 | (DH *(*)(SSL *, int, int))fp; |
| 2347 | return 1; | ||
| 2353 | 2348 | ||
| 2354 | case SSL_CTRL_SET_TMP_ECDH_CB: | 2349 | case SSL_CTRL_SET_TMP_ECDH_CB: |
| 2355 | cert->ecdh_tmp_cb = (EC_KEY *(*)(SSL *, int, int))fp; | 2350 | ctx->internal->cert->ecdh_tmp_cb = |
| 2356 | break; | 2351 | (EC_KEY *(*)(SSL *, int, int))fp; |
| 2352 | return 1; | ||
| 2357 | 2353 | ||
| 2358 | case SSL_CTRL_SET_TLSEXT_SERVERNAME_CB: | 2354 | case SSL_CTRL_SET_TLSEXT_SERVERNAME_CB: |
| 2359 | ctx->internal->tlsext_servername_callback = | 2355 | ctx->internal->tlsext_servername_callback = |
| 2360 | (int (*)(SSL *, int *, void *))fp; | 2356 | (int (*)(SSL *, int *, void *))fp; |
| 2361 | break; | 2357 | return 1; |
| 2362 | 2358 | ||
| 2363 | case SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB: | 2359 | case SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB: |
| 2364 | ctx->internal->tlsext_status_cb = (int (*)(SSL *, void *))fp; | 2360 | ctx->internal->tlsext_status_cb = (int (*)(SSL *, void *))fp; |
| 2365 | break; | 2361 | return 1; |
| 2366 | 2362 | ||
| 2367 | case SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB: | 2363 | case SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB: |
| 2368 | ctx->internal->tlsext_ticket_key_cb = (int (*)(SSL *, unsigned char *, | 2364 | ctx->internal->tlsext_ticket_key_cb = (int (*)(SSL *, unsigned char *, |
| 2369 | unsigned char *, EVP_CIPHER_CTX *, HMAC_CTX *, int))fp; | 2365 | unsigned char *, EVP_CIPHER_CTX *, HMAC_CTX *, int))fp; |
| 2370 | break; | 2366 | return 1; |
| 2371 | |||
| 2372 | default: | ||
| 2373 | return (0); | ||
| 2374 | } | 2367 | } |
| 2375 | return (1); | 2368 | |
| 2369 | return 0; | ||
| 2376 | } | 2370 | } |
| 2377 | 2371 | ||
| 2378 | /* | 2372 | /* |
