Loading apps/s_client.c +9 −12 Original line number Diff line number Diff line Loading @@ -547,7 +547,7 @@ static int next_proto_cb(SSL *s, unsigned char **out, unsigned char *outlen, con } # endif /* ndef OPENSSL_NO_NEXTPROTONEG */ static int serverinfo_cli_cb(SSL* s, unsigned int ext_type, static int serverinfo_cli_parse_cb(SSL* s, unsigned int ext_type, const unsigned char* in, size_t inlen, int* al, void* arg) { Loading Loading @@ -1357,17 +1357,14 @@ bad: } #endif #ifndef OPENSSL_NO_TLSEXT if (serverinfo_types_count) { for (i = 0; i < serverinfo_types_count; i++) { SSL_CTX_add_client_custom_ext(ctx, serverinfo_types[i], NULL, NULL, NULL, serverinfo_cli_cb, serverinfo_cli_parse_cb, NULL); } } #endif if (state) SSL_CTX_set_info_callback(ctx,apps_ssl_info_callback); Loading ssl/ssl.h +18 −16 Original line number Diff line number Diff line Loading @@ -1257,13 +1257,15 @@ int SSL_CTX_add_client_custom_ext(SSL_CTX *ctx, unsigned int ext_type, custom_ext_add_cb add_cb, custom_ext_free_cb free_cb, void *add_arg, custom_ext_parse_cb parse_cb, void *parse_arg); custom_ext_parse_cb parse_cb, void *parse_arg); int SSL_CTX_add_server_custom_ext(SSL_CTX *ctx, unsigned int ext_type, custom_ext_add_cb add_cb, custom_ext_free_cb free_cb, void *add_arg, custom_ext_parse_cb parse_cb, void *parse_arg); custom_ext_parse_cb parse_cb, void *parse_arg); int SSL_extension_supported(unsigned int ext_type); Loading ssl/ssltest.c +31 −23 Original line number Diff line number Diff line Loading @@ -521,7 +521,7 @@ int custom_ext = 0; /* This set based on extension callbacks */ int custom_ext_error = 0; static int serverinfo_cli_cb(SSL* s, unsigned int ext_type, static int serverinfo_cli_parse_cb(SSL *s, unsigned int ext_type, const unsigned char *in, size_t inlen, int *al, void *arg) { Loading Loading @@ -1586,11 +1586,11 @@ bad: if (serverinfo_sct) SSL_CTX_add_client_custom_ext(c_ctx, SCT_EXT_TYPE, NULL, NULL, NULL, serverinfo_cli_cb, NULL); serverinfo_cli_parse_cb, NULL); if (serverinfo_tack) SSL_CTX_add_client_custom_ext(c_ctx, TACK_EXT_TYPE, NULL, NULL, NULL, serverinfo_cli_cb, NULL); serverinfo_cli_parse_cb, NULL); if (serverinfo_file) if (!SSL_CTX_use_serverinfo_file(s_ctx, serverinfo_file)) Loading @@ -1602,30 +1602,38 @@ bad: if (custom_ext) { SSL_CTX_add_client_custom_ext(c_ctx, CUSTOM_EXT_TYPE_0, custom_ext_0_cli_add_cb, NULL, NULL, custom_ext_0_cli_add_cb, NULL, NULL, custom_ext_0_cli_parse_cb, NULL); SSL_CTX_add_client_custom_ext(c_ctx, CUSTOM_EXT_TYPE_1, custom_ext_1_cli_add_cb, NULL, NULL, custom_ext_1_cli_add_cb, NULL, NULL, custom_ext_1_cli_parse_cb, NULL); SSL_CTX_add_client_custom_ext(c_ctx, CUSTOM_EXT_TYPE_2, custom_ext_2_cli_add_cb, NULL, NULL, custom_ext_2_cli_add_cb, NULL, NULL, custom_ext_2_cli_parse_cb, NULL); SSL_CTX_add_client_custom_ext(c_ctx, CUSTOM_EXT_TYPE_3, custom_ext_3_cli_add_cb, NULL, NULL, custom_ext_3_cli_add_cb, NULL, NULL, custom_ext_3_cli_parse_cb, NULL); SSL_CTX_add_server_custom_ext(s_ctx, CUSTOM_EXT_TYPE_0, custom_ext_0_srv_add_cb, NULL, NULL, custom_ext_0_srv_add_cb, NULL, NULL, custom_ext_0_srv_parse_cb, NULL); SSL_CTX_add_server_custom_ext(s_ctx, CUSTOM_EXT_TYPE_1, custom_ext_1_srv_add_cb, NULL, NULL, custom_ext_1_srv_add_cb, NULL, NULL, custom_ext_1_srv_parse_cb, NULL); SSL_CTX_add_server_custom_ext(s_ctx, CUSTOM_EXT_TYPE_2, custom_ext_2_srv_add_cb, NULL, NULL, custom_ext_2_srv_add_cb, NULL, NULL, custom_ext_2_srv_parse_cb, NULL); SSL_CTX_add_server_custom_ext(s_ctx, CUSTOM_EXT_TYPE_3, custom_ext_3_srv_add_cb, NULL, NULL, custom_ext_3_srv_add_cb, NULL, NULL, custom_ext_3_srv_parse_cb, NULL); } Loading ssl/t1_ext.c +42 −42 Original line number Diff line number Diff line Loading @@ -59,10 +59,9 @@ #ifndef OPENSSL_NO_TLSEXT /* Find a custom extension from the list */ /* Find a custom extension from the list. */ static custom_ext_method *custom_ext_find(custom_ext_methods *exts, unsigned short ext_type) unsigned int ext_type) { size_t i; custom_ext_method *meth = exts->meths; Loading @@ -84,8 +83,7 @@ void custom_ext_init(custom_ext_methods *exts) meth->ext_flags = 0; } /* pass received custom extension data to the application for parsing */ /* Pass received custom extension data to the application for parsing. */ int custom_ext_parse(SSL *s, int server, unsigned int ext_type, const unsigned char *ext_data, Loading @@ -95,7 +93,6 @@ int custom_ext_parse(SSL *s, int server, custom_ext_methods *exts = server ? &s->cert->srv_ext : &s->cert->cli_ext; custom_ext_method *meth; meth = custom_ext_find(exts, ext_type); /* If not found or no parse function set, return success */ /* If not found return success */ if (!meth) return 1; Loading @@ -117,16 +114,16 @@ int custom_ext_parse(SSL *s, int server, return 0; } meth->ext_flags |= SSL_EXT_FLAG_RECEIVED; /* If no parse function set return success */ if (!meth->parse_cb) return 1; return meth->parse_cb(s, ext_type, ext_data, ext_size, al, meth->parse_arg); } /* request custom extension data from the application and add to the * return buffer /* Request custom extension data from the application and add to the * return buffer. */ int custom_ext_add(SSL *s, int server, unsigned char **pret, unsigned char *limit, Loading Loading @@ -174,12 +171,12 @@ int custom_ext_add(SSL *s, int server, memcpy(ret, out, outlen); ret += outlen; } /* We can't send duplicates: code logic should prevent this */ /* We can't send duplicates: code logic should prevent this. */ OPENSSL_assert(!(meth->ext_flags & SSL_EXT_FLAG_SENT)); /* Indicate extension has been sent: this is both a sanity * check to ensure we don't send duplicate extensions * and indicates to servers that an extension can be * sent in ServerHello. * and indicates that it is not an error if the extension * is present in ServerHello. */ meth->ext_flags |= SSL_EXT_FLAG_SENT; if (meth->free_cb) Loading @@ -190,7 +187,6 @@ int custom_ext_add(SSL *s, int server, } /* Copy table of custom extensions */ int custom_exts_copy(custom_ext_methods *dst, const custom_ext_methods *src) { if (src->meths_count) Loading @@ -209,7 +205,7 @@ void custom_exts_free(custom_ext_methods *exts) OPENSSL_free(exts->meths); } /* Set callbacks for a custom extension */ /* Set callbacks for a custom extension. */ static int custom_ext_meth_add(custom_ext_methods *exts, unsigned int ext_type, custom_ext_add_cb add_cb, Loading @@ -218,7 +214,12 @@ static int custom_ext_meth_add(custom_ext_methods *exts, custom_ext_parse_cb parse_cb, void *parse_arg) { custom_ext_method *meth; /* Don't add if extension supported internall */ /* Check application error: if add_cb is not set free_cb will never * be called. */ if (!add_cb && free_cb) return 0; /* Don't add if extension supported internally. */ if (SSL_extension_supported(ext_type)) return 0; /* Extension type must fit in 16 bits */ Loading Loading @@ -249,7 +250,6 @@ static int custom_ext_meth_add(custom_ext_methods *exts, } /* Application level functions to add custom extension callbacks */ int SSL_CTX_add_client_custom_ext(SSL_CTX *ctx, unsigned int ext_type, custom_ext_add_cb add_cb, custom_ext_free_cb free_cb, Loading @@ -275,9 +275,9 @@ int SSL_CTX_add_server_custom_ext(SSL_CTX *ctx, unsigned int ext_type, int SSL_extension_supported(unsigned int ext_type) { /* See if it is a supported internally */ switch(ext_type) { /* Internally supported extensions. */ case TLSEXT_TYPE_application_layer_protocol_negotiation: case TLSEXT_TYPE_ec_point_formats: case TLSEXT_TYPE_elliptic_curves: Loading ssl/ssl_rsa.c +6 −6 File changed.Contains only whitespace changes. Show changes Loading
apps/s_client.c +9 −12 Original line number Diff line number Diff line Loading @@ -547,7 +547,7 @@ static int next_proto_cb(SSL *s, unsigned char **out, unsigned char *outlen, con } # endif /* ndef OPENSSL_NO_NEXTPROTONEG */ static int serverinfo_cli_cb(SSL* s, unsigned int ext_type, static int serverinfo_cli_parse_cb(SSL* s, unsigned int ext_type, const unsigned char* in, size_t inlen, int* al, void* arg) { Loading Loading @@ -1357,17 +1357,14 @@ bad: } #endif #ifndef OPENSSL_NO_TLSEXT if (serverinfo_types_count) { for (i = 0; i < serverinfo_types_count; i++) { SSL_CTX_add_client_custom_ext(ctx, serverinfo_types[i], NULL, NULL, NULL, serverinfo_cli_cb, serverinfo_cli_parse_cb, NULL); } } #endif if (state) SSL_CTX_set_info_callback(ctx,apps_ssl_info_callback); Loading
ssl/ssl.h +18 −16 Original line number Diff line number Diff line Loading @@ -1257,13 +1257,15 @@ int SSL_CTX_add_client_custom_ext(SSL_CTX *ctx, unsigned int ext_type, custom_ext_add_cb add_cb, custom_ext_free_cb free_cb, void *add_arg, custom_ext_parse_cb parse_cb, void *parse_arg); custom_ext_parse_cb parse_cb, void *parse_arg); int SSL_CTX_add_server_custom_ext(SSL_CTX *ctx, unsigned int ext_type, custom_ext_add_cb add_cb, custom_ext_free_cb free_cb, void *add_arg, custom_ext_parse_cb parse_cb, void *parse_arg); custom_ext_parse_cb parse_cb, void *parse_arg); int SSL_extension_supported(unsigned int ext_type); Loading
ssl/ssltest.c +31 −23 Original line number Diff line number Diff line Loading @@ -521,7 +521,7 @@ int custom_ext = 0; /* This set based on extension callbacks */ int custom_ext_error = 0; static int serverinfo_cli_cb(SSL* s, unsigned int ext_type, static int serverinfo_cli_parse_cb(SSL *s, unsigned int ext_type, const unsigned char *in, size_t inlen, int *al, void *arg) { Loading Loading @@ -1586,11 +1586,11 @@ bad: if (serverinfo_sct) SSL_CTX_add_client_custom_ext(c_ctx, SCT_EXT_TYPE, NULL, NULL, NULL, serverinfo_cli_cb, NULL); serverinfo_cli_parse_cb, NULL); if (serverinfo_tack) SSL_CTX_add_client_custom_ext(c_ctx, TACK_EXT_TYPE, NULL, NULL, NULL, serverinfo_cli_cb, NULL); serverinfo_cli_parse_cb, NULL); if (serverinfo_file) if (!SSL_CTX_use_serverinfo_file(s_ctx, serverinfo_file)) Loading @@ -1602,30 +1602,38 @@ bad: if (custom_ext) { SSL_CTX_add_client_custom_ext(c_ctx, CUSTOM_EXT_TYPE_0, custom_ext_0_cli_add_cb, NULL, NULL, custom_ext_0_cli_add_cb, NULL, NULL, custom_ext_0_cli_parse_cb, NULL); SSL_CTX_add_client_custom_ext(c_ctx, CUSTOM_EXT_TYPE_1, custom_ext_1_cli_add_cb, NULL, NULL, custom_ext_1_cli_add_cb, NULL, NULL, custom_ext_1_cli_parse_cb, NULL); SSL_CTX_add_client_custom_ext(c_ctx, CUSTOM_EXT_TYPE_2, custom_ext_2_cli_add_cb, NULL, NULL, custom_ext_2_cli_add_cb, NULL, NULL, custom_ext_2_cli_parse_cb, NULL); SSL_CTX_add_client_custom_ext(c_ctx, CUSTOM_EXT_TYPE_3, custom_ext_3_cli_add_cb, NULL, NULL, custom_ext_3_cli_add_cb, NULL, NULL, custom_ext_3_cli_parse_cb, NULL); SSL_CTX_add_server_custom_ext(s_ctx, CUSTOM_EXT_TYPE_0, custom_ext_0_srv_add_cb, NULL, NULL, custom_ext_0_srv_add_cb, NULL, NULL, custom_ext_0_srv_parse_cb, NULL); SSL_CTX_add_server_custom_ext(s_ctx, CUSTOM_EXT_TYPE_1, custom_ext_1_srv_add_cb, NULL, NULL, custom_ext_1_srv_add_cb, NULL, NULL, custom_ext_1_srv_parse_cb, NULL); SSL_CTX_add_server_custom_ext(s_ctx, CUSTOM_EXT_TYPE_2, custom_ext_2_srv_add_cb, NULL, NULL, custom_ext_2_srv_add_cb, NULL, NULL, custom_ext_2_srv_parse_cb, NULL); SSL_CTX_add_server_custom_ext(s_ctx, CUSTOM_EXT_TYPE_3, custom_ext_3_srv_add_cb, NULL, NULL, custom_ext_3_srv_add_cb, NULL, NULL, custom_ext_3_srv_parse_cb, NULL); } Loading
ssl/t1_ext.c +42 −42 Original line number Diff line number Diff line Loading @@ -59,10 +59,9 @@ #ifndef OPENSSL_NO_TLSEXT /* Find a custom extension from the list */ /* Find a custom extension from the list. */ static custom_ext_method *custom_ext_find(custom_ext_methods *exts, unsigned short ext_type) unsigned int ext_type) { size_t i; custom_ext_method *meth = exts->meths; Loading @@ -84,8 +83,7 @@ void custom_ext_init(custom_ext_methods *exts) meth->ext_flags = 0; } /* pass received custom extension data to the application for parsing */ /* Pass received custom extension data to the application for parsing. */ int custom_ext_parse(SSL *s, int server, unsigned int ext_type, const unsigned char *ext_data, Loading @@ -95,7 +93,6 @@ int custom_ext_parse(SSL *s, int server, custom_ext_methods *exts = server ? &s->cert->srv_ext : &s->cert->cli_ext; custom_ext_method *meth; meth = custom_ext_find(exts, ext_type); /* If not found or no parse function set, return success */ /* If not found return success */ if (!meth) return 1; Loading @@ -117,16 +114,16 @@ int custom_ext_parse(SSL *s, int server, return 0; } meth->ext_flags |= SSL_EXT_FLAG_RECEIVED; /* If no parse function set return success */ if (!meth->parse_cb) return 1; return meth->parse_cb(s, ext_type, ext_data, ext_size, al, meth->parse_arg); } /* request custom extension data from the application and add to the * return buffer /* Request custom extension data from the application and add to the * return buffer. */ int custom_ext_add(SSL *s, int server, unsigned char **pret, unsigned char *limit, Loading Loading @@ -174,12 +171,12 @@ int custom_ext_add(SSL *s, int server, memcpy(ret, out, outlen); ret += outlen; } /* We can't send duplicates: code logic should prevent this */ /* We can't send duplicates: code logic should prevent this. */ OPENSSL_assert(!(meth->ext_flags & SSL_EXT_FLAG_SENT)); /* Indicate extension has been sent: this is both a sanity * check to ensure we don't send duplicate extensions * and indicates to servers that an extension can be * sent in ServerHello. * and indicates that it is not an error if the extension * is present in ServerHello. */ meth->ext_flags |= SSL_EXT_FLAG_SENT; if (meth->free_cb) Loading @@ -190,7 +187,6 @@ int custom_ext_add(SSL *s, int server, } /* Copy table of custom extensions */ int custom_exts_copy(custom_ext_methods *dst, const custom_ext_methods *src) { if (src->meths_count) Loading @@ -209,7 +205,7 @@ void custom_exts_free(custom_ext_methods *exts) OPENSSL_free(exts->meths); } /* Set callbacks for a custom extension */ /* Set callbacks for a custom extension. */ static int custom_ext_meth_add(custom_ext_methods *exts, unsigned int ext_type, custom_ext_add_cb add_cb, Loading @@ -218,7 +214,12 @@ static int custom_ext_meth_add(custom_ext_methods *exts, custom_ext_parse_cb parse_cb, void *parse_arg) { custom_ext_method *meth; /* Don't add if extension supported internall */ /* Check application error: if add_cb is not set free_cb will never * be called. */ if (!add_cb && free_cb) return 0; /* Don't add if extension supported internally. */ if (SSL_extension_supported(ext_type)) return 0; /* Extension type must fit in 16 bits */ Loading Loading @@ -249,7 +250,6 @@ static int custom_ext_meth_add(custom_ext_methods *exts, } /* Application level functions to add custom extension callbacks */ int SSL_CTX_add_client_custom_ext(SSL_CTX *ctx, unsigned int ext_type, custom_ext_add_cb add_cb, custom_ext_free_cb free_cb, Loading @@ -275,9 +275,9 @@ int SSL_CTX_add_server_custom_ext(SSL_CTX *ctx, unsigned int ext_type, int SSL_extension_supported(unsigned int ext_type) { /* See if it is a supported internally */ switch(ext_type) { /* Internally supported extensions. */ case TLSEXT_TYPE_application_layer_protocol_negotiation: case TLSEXT_TYPE_ec_point_formats: case TLSEXT_TYPE_elliptic_curves: Loading