diff options
author | Matt Caswell <matt@openssl.org> | 2016-02-12 12:03:58 +0000 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2016-03-07 21:39:27 +0000 |
commit | 49580f25b3e6239a277c9fc2708c0354f419ec17 (patch) | |
tree | 999a9deacba23fb70b41ab170aca8f2a21650e4e | |
parent | dad78fb13d790cd06afd6e88067c038d22d7780f (diff) | |
download | openssl-49580f25b3e6239a277c9fc2708c0354f419ec17.tar.gz |
Add an SSL_has_pending() function
This is similar to SSL_pending() but just returns a 1 if there is data
pending in the internal OpenSSL buffers or 0 otherwise (as opposed to
SSL_pending() which returns the number of bytes available). Unlike
SSL_pending() this will work even if "read_ahead" is set (which is the
case if you are using read pipelining, or if you are doing DTLS). A 1
return value means that we have unprocessed data. It does *not* necessarily
indicate that there will be application data returned from a call to
SSL_read(). The unprocessed data may not be application data or there
could be errors when we attempt to parse the records.
Reviewed-by: Tim Hudson <tjh@openssl.org>
-rw-r--r-- | include/openssl/ssl.h | 1 | ||||
-rw-r--r-- | ssl/record/rec_layer_s3.c | 4 | ||||
-rw-r--r-- | ssl/record/record.h | 4 | ||||
-rw-r--r-- | ssl/ssl_lib.c | 16 | ||||
-rw-r--r-- | util/libssl.num | 1 | ||||
-rwxr-xr-x | util/ssleay.num | 422 |
6 files changed, 444 insertions, 4 deletions
diff --git a/include/openssl/ssl.h b/include/openssl/ssl.h index 94ea5ee17a..aa3daca455 100644 --- a/include/openssl/ssl.h +++ b/include/openssl/ssl.h @@ -1408,6 +1408,7 @@ __owur const char *SSL_get_cipher_list(const SSL *s, int n); __owur char *SSL_get_shared_ciphers(const SSL *s, char *buf, int len); __owur int SSL_get_read_ahead(const SSL *s); __owur int SSL_pending(const SSL *s); +__owur int SSL_has_pending(const SSL *s); # ifndef OPENSSL_NO_SOCK __owur int SSL_set_fd(SSL *s, int fd); __owur int SSL_set_rfd(SSL *s, int fd); diff --git a/ssl/record/rec_layer_s3.c b/ssl/record/rec_layer_s3.c index 83f5cf56db..fb396b9f72 100644 --- a/ssl/record/rec_layer_s3.c +++ b/ssl/record/rec_layer_s3.c @@ -186,12 +186,12 @@ void RECORD_LAYER_release(RECORD_LAYER *rl) SSL3_RECORD_release(rl->rrec, SSL_MAX_PIPELINES); } -int RECORD_LAYER_read_pending(RECORD_LAYER *rl) +int RECORD_LAYER_read_pending(const RECORD_LAYER *rl) { return SSL3_BUFFER_get_left(&rl->rbuf) != 0; } -int RECORD_LAYER_write_pending(RECORD_LAYER *rl) +int RECORD_LAYER_write_pending(const RECORD_LAYER *rl) { return (rl->numwpipes > 0) && SSL3_BUFFER_get_left(&rl->wbuf[rl->numwpipes-1]) != 0; diff --git a/ssl/record/record.h b/ssl/record/record.h index a1febc5551..c8c73d8470 100644 --- a/ssl/record/record.h +++ b/ssl/record/record.h @@ -322,8 +322,8 @@ typedef struct record_layer_st { void RECORD_LAYER_init(RECORD_LAYER *rl, SSL *s); void RECORD_LAYER_clear(RECORD_LAYER *rl); void RECORD_LAYER_release(RECORD_LAYER *rl); -int RECORD_LAYER_read_pending(RECORD_LAYER *rl); -int RECORD_LAYER_write_pending(RECORD_LAYER *rl); +int RECORD_LAYER_read_pending(const RECORD_LAYER *rl); +int RECORD_LAYER_write_pending(const RECORD_LAYER *rl); int RECORD_LAYER_set_data(RECORD_LAYER *rl, const unsigned char *buf, int len); void RECORD_LAYER_reset_read_sequence(RECORD_LAYER *rl); void RECORD_LAYER_reset_write_sequence(RECORD_LAYER *rl); diff --git a/ssl/ssl_lib.c b/ssl/ssl_lib.c index 4df8339979..89d228600c 100644 --- a/ssl/ssl_lib.c +++ b/ssl/ssl_lib.c @@ -1310,6 +1310,22 @@ int SSL_pending(const SSL *s) return (s->method->ssl_pending(s)); } +int SSL_has_pending(const SSL *s) +{ + /* + * Similar to SSL_pending() but returns a 1 to indicate that we have + * unprocessed data available or 0 otherwise (as opposed to the number of + * bytes available). Unlike SSL_pending() this will take into account + * read_ahead data. A 1 return simply indicates that we have unprocessed + * data. That data may not result in any application data, or we may fail + * to parse the records for some reason. + */ + if (SSL_pending(s)) + return 1; + + return RECORD_LAYER_read_pending(&s->rlayer); +} + X509 *SSL_get_peer_certificate(const SSL *s) { X509 *r; diff --git a/util/libssl.num b/util/libssl.num index 3ba959dc56..b73962a0e4 100644 --- a/util/libssl.num +++ b/util/libssl.num @@ -383,3 +383,4 @@ SSL_CTX_set_ct_validation_callback 382 1_1_0 EXIST::FUNCTION:CT SSL_CTX_get_ct_validation_callback 383 1_1_0 EXIST::FUNCTION:CT SSL_set_default_read_buffer_len 384 1_1_0 EXIST::FUNCTION: SSL_CTX_set_default_read_buffer_len 385 1_1_0 EXIST::FUNCTION: +SSL_has_pending 386 1_1_0 EXIST::FUNCTION: diff --git a/util/ssleay.num b/util/ssleay.num new file mode 100755 index 0000000000..7377ffe48b --- /dev/null +++ b/util/ssleay.num @@ -0,0 +1,422 @@ +ERR_load_SSL_strings 1 1_1_0 EXIST::FUNCTION: +SSL_CIPHER_description 2 1_1_0 EXIST::FUNCTION: +SSL_CTX_add_client_CA 3 1_1_0 EXIST::FUNCTION: +SSL_CTX_add_session 4 1_1_0 EXIST::FUNCTION: +SSL_CTX_check_private_key 5 1_1_0 EXIST::FUNCTION: +SSL_CTX_ctrl 6 1_1_0 EXIST::FUNCTION: +SSL_CTX_flush_sessions 7 1_1_0 EXIST::FUNCTION: +SSL_CTX_free 8 1_1_0 EXIST::FUNCTION: +SSL_CTX_get_client_CA_list 9 1_1_0 EXIST::FUNCTION: +SSL_CTX_get_verify_callback 10 1_1_0 EXIST::FUNCTION: +SSL_CTX_get_verify_mode 11 1_1_0 EXIST::FUNCTION: +SSL_CTX_new 12 1_1_0 EXIST::FUNCTION: +SSL_CTX_remove_session 13 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_cipher_list 15 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_client_CA_list 16 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_default_passwd_cb 17 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_ssl_version 19 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_verify 21 1_1_0 EXIST::FUNCTION: +SSL_CTX_use_PrivateKey 22 1_1_0 EXIST::FUNCTION: +SSL_CTX_use_PrivateKey_ASN1 23 1_1_0 EXIST::FUNCTION: +SSL_CTX_use_PrivateKey_file 24 1_1_0 EXIST::FUNCTION: +SSL_CTX_use_RSAPrivateKey 25 1_1_0 EXIST::FUNCTION:RSA +SSL_CTX_use_RSAPrivateKey_ASN1 26 1_1_0 EXIST::FUNCTION:RSA +SSL_CTX_use_RSAPrivateKey_file 27 1_1_0 EXIST::FUNCTION:RSA +SSL_CTX_use_certificate 28 1_1_0 EXIST::FUNCTION: +SSL_CTX_use_certificate_ASN1 29 1_1_0 EXIST::FUNCTION: +SSL_CTX_use_certificate_file 30 1_1_0 EXIST::FUNCTION: +SSL_SESSION_free 31 1_1_0 EXIST::FUNCTION: +SSL_SESSION_new 32 1_1_0 EXIST::FUNCTION: +SSL_SESSION_print 33 1_1_0 EXIST::FUNCTION: +SSL_SESSION_print_fp 34 1_1_0 EXIST::FUNCTION:STDIO +SSL_accept 35 1_1_0 EXIST::FUNCTION: +SSL_add_client_CA 36 1_1_0 EXIST::FUNCTION: +SSL_alert_desc_string 37 1_1_0 EXIST::FUNCTION: +SSL_alert_desc_string_long 38 1_1_0 EXIST::FUNCTION: +SSL_alert_type_string 39 1_1_0 EXIST::FUNCTION: +SSL_alert_type_string_long 40 1_1_0 EXIST::FUNCTION: +SSL_check_private_key 41 1_1_0 EXIST::FUNCTION: +SSL_clear 42 1_1_0 EXIST::FUNCTION: +SSL_connect 43 1_1_0 EXIST::FUNCTION: +SSL_copy_session_id 44 1_1_0 EXIST::FUNCTION: +SSL_ctrl 45 1_1_0 EXIST::FUNCTION: +SSL_dup 46 1_1_0 EXIST::FUNCTION: +SSL_dup_CA_list 47 1_1_0 EXIST::FUNCTION: +SSL_free 48 1_1_0 EXIST::FUNCTION: +SSL_get_certificate 49 1_1_0 EXIST::FUNCTION: +SSL_get_cipher_list 52 1_1_0 EXIST::FUNCTION: +SSL_get_ciphers 55 1_1_0 EXIST::FUNCTION: +SSL_get_client_CA_list 56 1_1_0 EXIST::FUNCTION: +SSL_get_default_timeout 57 1_1_0 EXIST::FUNCTION: +SSL_get_error 58 1_1_0 EXIST::FUNCTION: +SSL_get_fd 59 1_1_0 EXIST::FUNCTION: +SSL_get_peer_cert_chain 60 1_1_0 EXIST::FUNCTION: +SSL_get_peer_certificate 61 1_1_0 EXIST::FUNCTION: +SSL_get_rbio 63 1_1_0 EXIST::FUNCTION: +SSL_get_read_ahead 64 1_1_0 EXIST::FUNCTION: +SSL_get_shared_ciphers 65 1_1_0 EXIST::FUNCTION: +SSL_get_ssl_method 66 1_1_0 EXIST::FUNCTION: +SSL_get_verify_callback 69 1_1_0 EXIST::FUNCTION: +SSL_get_verify_mode 70 1_1_0 EXIST::FUNCTION: +SSL_get_version 71 1_1_0 EXIST::FUNCTION: +SSL_get_wbio 72 1_1_0 EXIST::FUNCTION: +SSL_load_client_CA_file 73 1_1_0 EXIST::FUNCTION: +SSL_load_error_strings 74 1_1_0 NOEXIST::FUNCTION: +SSL_new 75 1_1_0 EXIST::FUNCTION: +SSL_peek 76 1_1_0 EXIST::FUNCTION: +SSL_pending 77 1_1_0 EXIST::FUNCTION: +SSL_read 78 1_1_0 EXIST::FUNCTION: +SSL_renegotiate 79 1_1_0 EXIST::FUNCTION: +SSL_rstate_string 80 1_1_0 EXIST::FUNCTION: +SSL_rstate_string_long 81 1_1_0 EXIST::FUNCTION: +SSL_set_accept_state 82 1_1_0 EXIST::FUNCTION: +SSL_set_bio 83 1_1_0 EXIST::FUNCTION: +SSL_set_cipher_list 84 1_1_0 EXIST::FUNCTION: +SSL_set_client_CA_list 85 1_1_0 EXIST::FUNCTION: +SSL_set_connect_state 86 1_1_0 EXIST::FUNCTION: +SSL_set_fd 87 1_1_0 EXIST::FUNCTION:SOCK +SSL_set_read_ahead 88 1_1_0 EXIST::FUNCTION: +SSL_set_rfd 89 1_1_0 EXIST::FUNCTION:SOCK +SSL_set_session 90 1_1_0 EXIST::FUNCTION: +SSL_set_ssl_method 91 1_1_0 EXIST::FUNCTION: +SSL_set_verify 94 1_1_0 EXIST::FUNCTION: +SSL_set_wfd 95 1_1_0 EXIST::FUNCTION:SOCK +SSL_shutdown 96 1_1_0 EXIST::FUNCTION: +SSL_state_string 97 1_1_0 EXIST::FUNCTION: +SSL_state_string_long 98 1_1_0 EXIST::FUNCTION: +SSL_use_PrivateKey 99 1_1_0 EXIST::FUNCTION: +SSL_use_PrivateKey_ASN1 100 1_1_0 EXIST::FUNCTION: +SSL_use_PrivateKey_file 101 1_1_0 EXIST::FUNCTION: +SSL_use_RSAPrivateKey 102 1_1_0 EXIST::FUNCTION:RSA +SSL_use_RSAPrivateKey_ASN1 103 1_1_0 EXIST::FUNCTION:RSA +SSL_use_RSAPrivateKey_file 104 1_1_0 EXIST::FUNCTION:RSA +SSL_use_certificate 105 1_1_0 EXIST::FUNCTION: +SSL_use_certificate_ASN1 106 1_1_0 EXIST::FUNCTION: +SSL_use_certificate_file 107 1_1_0 EXIST::FUNCTION: +SSL_write 108 1_1_0 EXIST::FUNCTION: +SSLeay_add_ssl_algorithms 109 1_1_0 NOEXIST::FUNCTION: +SSLv23_client_method 110 1_1_0 NOEXIST::FUNCTION: +SSLv23_method 111 1_1_0 NOEXIST::FUNCTION: +SSLv23_server_method 112 1_1_0 NOEXIST::FUNCTION: +SSLv2_client_method 113 1_1_0 NOEXIST::FUNCTION: +SSLv2_method 114 1_1_0 NOEXIST::FUNCTION: +SSLv2_server_method 115 1_1_0 NOEXIST::FUNCTION: +SSLv3_client_method 116 1_1_0 EXIST::FUNCTION:SSL3_METHOD +SSLv3_method 117 1_1_0 EXIST::FUNCTION:SSL3_METHOD +SSLv3_server_method 118 1_1_0 EXIST::FUNCTION:SSL3_METHOD +d2i_SSL_SESSION 119 1_1_0 EXIST::FUNCTION: +i2d_SSL_SESSION 120 1_1_0 EXIST::FUNCTION: +BIO_f_ssl 121 1_1_0 EXIST::FUNCTION: +BIO_new_ssl 122 1_1_0 EXIST::FUNCTION: +BIO_proxy_ssl_copy_session_id 123 1_1_0 NOEXIST::FUNCTION: +BIO_ssl_copy_session_id 124 1_1_0 EXIST::FUNCTION: +SSL_do_handshake 125 1_1_0 EXIST::FUNCTION: +SSL_get_privatekey 126 1_1_0 EXIST::FUNCTION: +SSL_get_current_cipher 127 1_1_0 EXIST::FUNCTION: +SSL_CIPHER_get_bits 128 1_1_0 EXIST::FUNCTION: +SSL_CIPHER_get_version 129 1_1_0 EXIST::FUNCTION: +SSL_CIPHER_get_name 130 1_1_0 EXIST::FUNCTION: +BIO_ssl_shutdown 131 1_1_0 EXIST::FUNCTION: +SSL_SESSION_cmp 132 1_1_0 NOEXIST::FUNCTION: +SSL_SESSION_hash 133 1_1_0 NOEXIST::FUNCTION: +SSL_SESSION_get_time 134 1_1_0 EXIST::FUNCTION: +SSL_SESSION_set_time 135 1_1_0 EXIST::FUNCTION: +SSL_SESSION_get_timeout 136 1_1_0 EXIST::FUNCTION: +SSL_SESSION_set_timeout 137 1_1_0 EXIST::FUNCTION: +SSL_CTX_get_ex_data 138 1_1_0 EXIST::FUNCTION: +SSL_CTX_get_quiet_shutdown 140 1_1_0 EXIST::FUNCTION: +SSL_CTX_load_verify_locations 141 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_default_verify_paths 142 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_ex_data 143 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_quiet_shutdown 145 1_1_0 EXIST::FUNCTION: +SSL_SESSION_get_ex_data 146 1_1_0 EXIST::FUNCTION: +SSL_SESSION_set_ex_data 148 1_1_0 EXIST::FUNCTION: +SSL_get_SSL_CTX 150 1_1_0 EXIST::FUNCTION: +SSL_get_ex_data 151 1_1_0 EXIST::FUNCTION: +SSL_get_quiet_shutdown 153 1_1_0 EXIST::FUNCTION: +SSL_get_session 154 1_1_0 EXIST::FUNCTION: +SSL_get_shutdown 155 1_1_0 EXIST::FUNCTION: +SSL_get_verify_result 157 1_1_0 EXIST::FUNCTION: +SSL_set_ex_data 158 1_1_0 EXIST::FUNCTION: +SSL_set_info_callback 160 1_1_0 EXIST::FUNCTION: +SSL_set_quiet_shutdown 161 1_1_0 EXIST::FUNCTION: +SSL_set_shutdown 162 1_1_0 EXIST::FUNCTION: +SSL_set_verify_result 163 1_1_0 EXIST::FUNCTION: +SSL_version 164 1_1_0 EXIST::FUNCTION: +SSL_get_info_callback 165 1_1_0 EXIST::FUNCTION: +SSL_state 166 1_1_0 NOEXIST::FUNCTION: +SSL_CTX_get_ex_new_index 167 1_1_0 NOEXIST::FUNCTION: +SSL_SESSION_get_ex_new_index 168 1_1_0 NOEXIST::FUNCTION: +SSL_get_ex_new_index 169 1_1_0 NOEXIST::FUNCTION: +TLSv1_method 170 1_1_0 EXIST::FUNCTION: +TLSv1_server_method 171 1_1_0 EXIST::FUNCTION: +TLSv1_client_method 172 1_1_0 EXIST::FUNCTION: +BIO_new_buffer_ssl_connect 173 1_1_0 EXIST::FUNCTION: +BIO_new_ssl_connect 174 1_1_0 EXIST::FUNCTION: +SSL_get_ex_data_X509_STORE_CTX_idx 175 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_tmp_dh_callback 176 1_1_0 EXIST::FUNCTION:DH +SSL_CTX_set_tmp_rsa_callback 177 1_1_0 NOEXIST::FUNCTION: +SSL_CTX_set_timeout 178 1_1_0 EXIST::FUNCTION: +SSL_CTX_get_timeout 179 1_1_0 EXIST::FUNCTION: +SSL_CTX_get_cert_store 180 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_cert_store 181 1_1_0 EXIST::FUNCTION: +SSL_want 182 1_1_0 EXIST::FUNCTION: +SSL_library_init 183 1_1_0 NOEXIST::FUNCTION: +SSL_COMP_add_compression_method 184 1_1_0 EXIST::FUNCTION: +SSL_add_file_cert_subjects_to_stack 185 1_1_0 EXIST::FUNCTION: +SSL_set_tmp_rsa_callback 186 1_1_0 NOEXIST::FUNCTION: +SSL_set_tmp_dh_callback 187 1_1_0 EXIST::FUNCTION:DH +SSL_add_dir_cert_subjects_to_stack 188 1_1_0 EXIST::FUNCTION: +SSL_set_session_id_context 189 1_1_0 EXIST::FUNCTION: +SSL_CTX_use_certificate_chain_file 222 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_verify_depth 225 1_1_0 EXIST::FUNCTION: +SSL_set_verify_depth 226 1_1_0 EXIST::FUNCTION: +SSL_CTX_get_verify_depth 228 1_1_0 EXIST::FUNCTION: +SSL_get_verify_depth 229 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_session_id_context 231 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_cert_verify_callback 232 1_1_0 EXIST::FUNCTION: +SSL_test_functions 233 1_1_0 EXIST::FUNCTION:UNIT_TEST +SSL_CTX_set_default_passwd_cb_userdata 235 1_1_0 EXIST::FUNCTION: +SSL_set_purpose 236 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_trust 237 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_purpose 238 1_1_0 EXIST::FUNCTION: +SSL_set_trust 239 1_1_0 EXIST::FUNCTION: +SSL_get_finished 240 1_1_0 EXIST::FUNCTION: +SSL_get_peer_finished 241 1_1_0 EXIST::FUNCTION: +SSL_get1_session 242 1_1_0 EXIST::FUNCTION: +SSL_CTX_callback_ctrl 243 1_1_0 EXIST::FUNCTION: +SSL_callback_ctrl 244 1_1_0 EXIST::FUNCTION: +SSL_CTX_sessions 245 1_1_0 EXIST::FUNCTION: +SSL_get_rfd 246 1_1_0 EXIST::FUNCTION: +SSL_get_wfd 247 1_1_0 EXIST::FUNCTION: +kssl_cget_tkt 248 1_1_0 NOEXIST::FUNCTION: +SSL_has_matching_session_id 249 1_1_0 EXIST::FUNCTION: +kssl_err_set 250 1_1_0 NOEXIST::FUNCTION: +kssl_ctx_show 251 1_1_0 NOEXIST::FUNCTION: +kssl_validate_times 252 1_1_0 NOEXIST::FUNCTION: +kssl_check_authent 253 1_1_0 NOEXIST::FUNCTION: +kssl_ctx_new 254 1_1_0 NOEXIST::FUNCTION: +kssl_build_principal_2 255 1_1_0 NOEXIST::FUNCTION: +kssl_skip_confound 256 1_1_0 NOEXIST::FUNCTION: +kssl_sget_tkt 257 1_1_0 NOEXIST::FUNCTION: +SSL_set_generate_session_id 258 1_1_0 EXIST::FUNCTION: +kssl_ctx_setkey 259 1_1_0 NOEXIST::FUNCTION: +kssl_ctx_setprinc 260 1_1_0 NOEXIST::FUNCTION: +kssl_ctx_free 261 1_1_0 NOEXIST::FUNCTION: +kssl_krb5_free_data_contents 262 1_1_0 NOEXIST::FUNCTION: +kssl_ctx_setstring 263 1_1_0 NOEXIST::FUNCTION: +SSL_CTX_set_generate_session_id 264 1_1_0 EXIST::FUNCTION: +SSL_renegotiate_pending 265 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_msg_callback 266 1_1_0 EXIST::FUNCTION: +SSL_set_msg_callback 267 1_1_0 EXIST::FUNCTION: +DTLSv1_client_method 268 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_tmp_ecdh_callback 269 1_1_0 NOEXIST::FUNCTION: +SSL_set_tmp_ecdh_callback 270 1_1_0 NOEXIST::FUNCTION: +SSL_COMP_get_name 271 1_1_0 EXIST::FUNCTION: +SSL_get_current_compression 272 1_1_0 EXIST::FUNCTION: +DTLSv1_method 273 1_1_0 EXIST::FUNCTION: +SSL_get_current_expansion 274 1_1_0 EXIST::FUNCTION: +DTLSv1_server_method 275 1_1_0 EXIST::FUNCTION: +SSL_COMP_get_compression_methods 276 1_1_0 EXIST::FUNCTION: +SSL_SESSION_get_id 277 1_1_0 EXIST::FUNCTION: +SSL_CTX_sess_set_new_cb 278 1_1_0 EXIST::FUNCTION: +SSL_CTX_sess_get_get_cb 279 1_1_0 EXIST::FUNCTION: +SSL_CTX_sess_set_get_cb 280 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_cookie_verify_cb 281 1_1_0 EXIST::FUNCTION: +SSL_CTX_get_info_callback 282 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_cookie_generate_cb 283 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_client_cert_cb 284 1_1_0 EXIST::FUNCTION: +SSL_CTX_sess_set_remove_cb 285 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_info_callback 286 1_1_0 EXIST::FUNCTION: +SSL_CTX_sess_get_new_cb 287 1_1_0 EXIST::FUNCTION: +SSL_CTX_get_client_cert_cb 288 1_1_0 EXIST::FUNCTION: +SSL_CTX_sess_get_remove_cb 289 1_1_0 EXIST::FUNCTION: +SSL_set_SSL_CTX 290 1_1_0 EXIST::FUNCTION: +SSL_get_servername 291 1_1_0 EXIST::FUNCTION: +SSL_get_servername_type 292 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_client_cert_engine 293 1_1_0 EXIST::FUNCTION:ENGINE +SSL_CTX_use_psk_identity_hint 294 1_1_0 EXIST::FUNCTION:PSK +SSL_CTX_set_psk_client_callback 295 1_1_0 EXIST::FUNCTION:PSK +PEM_write_bio_SSL_SESSION 296 1_1_0 EXIST::FUNCTION: +SSL_get_psk_identity_hint 297 1_1_0 EXIST::FUNCTION:PSK +SSL_set_psk_server_callback 298 1_1_0 EXIST::FUNCTION:PSK +SSL_use_psk_identity_hint 299 1_1_0 EXIST::FUNCTION:PSK +SSL_set_psk_client_callback 300 1_1_0 EXIST::FUNCTION:PSK +PEM_read_SSL_SESSION 301 1_1_0 EXIST::FUNCTION: +PEM_read_bio_SSL_SESSION 302 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_psk_server_callback 303 1_1_0 EXIST::FUNCTION:PSK +SSL_get_psk_identity 304 1_1_0 EXIST::FUNCTION:PSK +PEM_write_SSL_SESSION 305 1_1_0 EXIST::FUNCTION: +SSL_set_session_ticket_ext 306 1_1_0 EXIST::FUNCTION: +SSL_set_session_secret_cb 307 1_1_0 EXIST::FUNCTION: +SSL_set_session_ticket_ext_cb 308 1_1_0 EXIST::FUNCTION: +SSL_set1_param 309 1_1_0 EXIST::FUNCTION: +SSL_CTX_set1_param 310 1_1_0 EXIST::FUNCTION: +SSL_tls1_key_exporter 311 1_1_0 NOEXIST::FUNCTION: +SSL_renegotiate_abbreviated 312 1_1_0 EXIST::FUNCTION: +TLSv1_1_method 313 1_1_0 EXIST::FUNCTION: +TLSv1_1_client_method 314 1_1_0 EXIST::FUNCTION: +TLSv1_1_server_method 315 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_srp_client_pwd_callback 316 1_1_0 EXIST::FUNCTION:SRP +SSL_get_srp_g 317 1_1_0 EXIST::FUNCTION:SRP +SSL_CTX_set_srp_username_callback 318 1_1_0 EXIST::FUNCTION:SRP +SSL_get_srp_userinfo 319 1_1_0 EXIST::FUNCTION:SRP +SSL_set_srp_server_param 320 1_1_0 EXIST::FUNCTION:SRP +SSL_set_srp_server_param_pw 321 1_1_0 EXIST::FUNCTION:SRP +SSL_get_srp_N 322 1_1_0 EXIST::FUNCTION:SRP +SSL_get_srp_username 323 1_1_0 EXIST::FUNCTION:SRP +SSL_CTX_set_srp_password 324 1_1_0 EXIST::FUNCTION:SRP +SSL_CTX_set_srp_strength 325 1_1_0 EXIST::FUNCTION:SRP +SSL_CTX_set_srp_verify_param_callback 326 1_1_0 EXIST::FUNCTION:SRP +SSL_CTX_set_srp_missing_srp_username_callback 327 1_1_0 NOEXIST::FUNCTION: +SSL_CTX_set_srp_cb_arg 328 1_1_0 EXIST::FUNCTION:SRP +SSL_CTX_set_srp_username 329 1_1_0 EXIST::FUNCTION:SRP +SSL_CTX_SRP_CTX_init 330 1_1_0 EXIST::FUNCTION:SRP +SSL_SRP_CTX_init 331 1_1_0 EXIST::FUNCTION:SRP +SRP_Calc_A_param 332 1_1_0 EXIST::FUNCTION:SRP +SRP_generate_server_master_secret 333 1_1_0 NOEXIST::FUNCTION: +SSL_CTX_SRP_CTX_free 334 1_1_0 EXIST::FUNCTION:SRP +SRP_generate_client_master_secret 335 1_1_0 NOEXIST::FUNCTION: +SSL_srp_server_param_with_username 336 1_1_0 EXIST::FUNCTION:SRP +SRP_have_to_put_srp_username 337 1_1_0 NOEXIST::FUNCTION: +SSL_SRP_CTX_free 338 1_1_0 EXIST::FUNCTION:SRP +SSL_set_debug 339 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0 +SSL_SESSION_get0_peer 340 1_1_0 EXIST::FUNCTION: +TLSv1_2_client_method 341 1_1_0 EXIST::FUNCTION: +SSL_SESSION_set1_id_context 342 1_1_0 EXIST::FUNCTION: +TLSv1_2_server_method 343 1_1_0 EXIST::FUNCTION: +SSL_session_reused 344 1_1_0 EXIST::FUNCTION: +SSL_get0_kssl_ctx 345 1_1_0 NOEXIST::FUNCTION: +SSL_set0_kssl_ctx 346 1_1_0 NOEXIST::FUNCTION: +SSL_SESSION_get0_id 347 1_1_0 NOEXIST::FUNCTION: +SSL_set_state 348 1_1_0 NOEXIST::FUNCTION: +SSL_CIPHER_get_id 349 1_1_0 EXIST::FUNCTION: +TLSv1_2_method 350 1_1_0 EXIST::FUNCTION: +SSL_SESSION_get_id_len 351 1_1_0 NOEXIST::FUNCTION: +kssl_ctx_get0_client_princ 352 1_1_0 NOEXIST::FUNCTION: +SSL_export_keying_material 353 1_1_0 EXIST::FUNCTION: +SSL_set_tlsext_use_srtp 354 1_1_0 EXIST::FUNCTION:SRTP +SSL_CTX_set_next_protos_advertised_cb 355 1_1_0 EXIST::FUNCTION:NEXTPROTONEG +SSL_get0_next_proto_negotiated 356 1_1_0 EXIST::FUNCTION:NEXTPROTONEG +SSL_get_selected_srtp_profile 357 1_1_0 EXIST::FUNCTION:SRTP +SSL_CTX_set_tlsext_use_srtp 358 1_1_0 EXIST::FUNCTION:SRTP +SSL_select_next_proto 359 1_1_0 EXIST::FUNCTION: +SSL_get_srtp_profiles 360 1_1_0 EXIST::FUNCTION:SRTP +SSL_CTX_set_next_proto_select_cb 361 1_1_0 EXIST::FUNCTION:NEXTPROTONEG +SSL_SESSION_get_compress_id 362 1_1_0 EXIST::FUNCTION: +SSL_get0_param 363 1_1_0 EXIST::FUNCTION: +SSL_CTX_get0_privatekey 364 1_1_0 EXIST::FUNCTION: +SSL_get_shared_sigalgs 365 1_1_0 EXIST::FUNCTION: +SSL_CONF_CTX_finish 366 1_1_0 EXIST::FUNCTION: +DTLS_method 367 1_1_0 EXIST::FUNCTION: +DTLS_client_method 368 1_1_0 EXIST::FUNCTION: +SSL_CIPHER_standard_name 369 1_1_0 EXIST::FUNCTION:SSL_TRACE +SSL_set_alpn_protos 370 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_srv_supp_data 371 1_1_0 NOEXIST::FUNCTION: +SSL_CONF_cmd_argv 372 1_1_0 EXIST::FUNCTION: +DTLSv1_2_server_method 373 1_1_0 EXIST::FUNCTION: +SSL_COMP_set0_compress_methods 374 1_1_0 NOEXIST::FUNCTION: +SSL_COMP_set0_compression_methods 374 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_cert_cb 375 1_1_0 EXIST::FUNCTION: +SSL_CTX_add_client_custom_ext 376 1_1_0 EXIST::FUNCTION: +SSL_is_server 377 1_1_0 EXIST::FUNCTION: +SSL_CTX_get0_param 378 1_1_0 EXIST::FUNCTION: +SSL_CONF_cmd 379 1_1_0 EXIST::FUNCTION: +SSL_CTX_get_ssl_method 380 1_1_0 EXIST::FUNCTION: +SSL_CONF_CTX_set_ssl_ctx 381 1_1_0 EXIST::FUNCTION: +SSL_CIPHER_find 382 1_1_0 EXIST::FUNCTION: +SSL_CTX_use_serverinfo 383 1_1_0 EXIST::FUNCTION: +DTLSv1_2_client_method 384 1_1_0 EXIST::FUNCTION: +SSL_get0_alpn_selected 385 1_1_0 EXIST::FUNCTION: +SSL_CONF_CTX_clear_flags 386 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_alpn_protos 387 1_1_0 EXIST::FUNCTION: +SSL_CTX_add_server_custom_ext 389 1_1_0 EXIST::FUNCTION: +SSL_CTX_get0_certificate 390 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_alpn_select_cb 391 1_1_0 EXIST::FUNCTION: +SSL_CONF_cmd_value_type 392 1_1_0 EXIST::FUNCTION: +SSL_set_cert_cb 393 1_1_0 EXIST::FUNCTION: +SSL_get_sigalgs 394 1_1_0 EXIST::FUNCTION: +SSL_CONF_CTX_set1_prefix 395 1_1_0 EXIST::FUNCTION: +SSL_CONF_CTX_new 396 1_1_0 EXIST::FUNCTION: +SSL_CONF_CTX_set_flags 397 1_1_0 EXIST::FUNCTION: +SSL_CONF_CTX_set_ssl 398 1_1_0 EXIST::FUNCTION: +SSL_check_chain 399 1_1_0 EXIST::FUNCTION: +SSL_certs_clear 400 1_1_0 EXIST::FUNCTION: +SSL_CONF_CTX_free 401 1_1_0 EXIST::FUNCTION: +SSL_trace 402 1_1_0 EXIST::FUNCTION:SSL_TRACE +SSL_CTX_set_cli_supp_data 403 1_1_0 NOEXIST::FUNCTION: +DTLSv1_2_method 404 1_1_0 EXIST::FUNCTION: +DTLS_server_method 405 1_1_0 EXIST::FUNCTION: +SSL_CTX_use_serverinfo_file 406 1_1_0 EXIST::FUNCTION: +SSL_COMP_free_compress_methods 407 1_1_0 NOEXIST::FUNCTION: +SSL_COMP_free_compression_methods 407 1_1_0 EXIST::FUNCTION: +SSL_extension_supported 409 1_1_0 EXIST::FUNCTION: +SSL_CTX_get_security_callback 410 1_1_0 EXIST::FUNCTION: +SSL_SESSION_print_keylog 411 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_not_resumable_session_callback 412 1_1_0 EXIST::FUNCTION: +SSL_get0_security_ex_data 413 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_security_callback 414 1_1_0 EXIST::FUNCTION: +SSL_get1_supported_ciphers 415 1_1_0 EXIST::FUNCTION: +SSL_set_security_level 416 1_1_0 EXIST::FUNCTION: +SSL_set0_security_ex_data 417 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_security_level 418 1_1_0 EXIST::FUNCTION: +SSL_set_not_resumable_session_callback 419 1_1_0 EXIST::FUNCTION: +SSL_get_security_callback 420 1_1_0 EXIST::FUNCTION: +SSL_get_security_level 421 1_1_0 EXIST::FUNCTION: +SSL_CTX_set0_security_ex_data 422 1_1_0 EXIST::FUNCTION: +SSL_set_security_callback 423 1_1_0 EXIST::FUNCTION: +SSL_CTX_get_security_level 424 1_1_0 EXIST::FUNCTION: +SSL_CTX_get0_security_ex_data 425 1_1_0 EXIST::FUNCTION: +SSL_SESSION_has_ticket 426 1_1_0 EXIST::FUNCTION: +SSL_set_wbio 427 1_1_0 EXIST::FUNCTION: +SSL_SESSION_get0_ticket 428 1_1_0 EXIST::FUNCTION: +SSL_SESSION_get_ticket_lifetime_hint 429 1_1_0 EXIST::FUNCTION: +SSL_set_rbio 430 1_1_0 EXIST::FUNCTION: +SSL_CIPHER_get_digest_nid 431 1_1_0 EXIST::FUNCTION: +SSL_CIPHER_get_cipher_nid 432 1_1_0 EXIST::FUNCTION: +SSL_use_certificate_chain_file 433 1_1_0 EXIST::FUNCTION: +TLS_server_method 434 1_1_0 EXIST::FUNCTION: +TLS_method 435 1_1_0 EXIST::FUNCTION: +TLS_client_method 436 1_1_0 EXIST::FUNCTION: +SSL_get_server_random 437 1_1_0 EXIST::FUNCTION: +SSL_get_client_ciphers 438 1_1_0 EXIST::FUNCTION: +SSL_get_client_random 439 1_1_0 EXIST::FUNCTION: +SSL_SESSION_get_master_key 440 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_default_verify_dir 441 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_default_verify_file 442 1_1_0 EXIST::FUNCTION: +SSL_in_init 443 1_1_0 EXIST::FUNCTION: +SSL_in_before 444 1_1_0 EXIST::FUNCTION: +SSL_is_init_finished 445 1_1_0 EXIST::FUNCTION: +SSL_get_state 446 1_1_0 EXIST::FUNCTION: +SSL_set_default_passwd_cb 447 1_1_0 EXIST::FUNCTION: +SSL_set_default_passwd_cb_userdata 448 1_1_0 EXIST::FUNCTION: +SSL_waiting_for_async 449 1_1_0 EXIST::FUNCTION: +SSL_get_async_wait_fd 450 1_1_0 EXIST::FUNCTION: +SSL_add_ssl_module 451 1_1_0 EXIST::FUNCTION: +SSL_CTX_config 452 1_1_0 EXIST::FUNCTION: +SSL_config 453 1_1_0 EXIST::FUNCTION: +SSL_dane_tlsa_add 454 1_1_0 EXIST::FUNCTION: +SSL_set1_host 455 1_1_0 EXIST::FUNCTION: +SSL_get0_peername 456 1_1_0 EXIST::FUNCTION: +SSL_add1_host 457 1_1_0 EXIST::FUNCTION: +SSL_CTX_dane_mtype_set 458 1_1_0 EXIST::FUNCTION: +SSL_CTX_dane_enable 459 1_1_0 EXIST::FUNCTION: +SSL_get0_dane_authority 460 1_1_0 EXIST::FUNCTION: +SSL_get0_dane_tlsa 461 1_1_0 EXIST::FUNCTION: +SSL_set_hostflags 462 1_1_0 EXIST::FUNCTION: +SSL_dane_enable 463 1_1_0 EXIST::FUNCTION: +SSL_get0_dane 464 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_options 465 1_1_0 EXIST::FUNCTION: +SSL_CTX_clear_options 466 1_1_0 EXIST::FUNCTION: +SSL_CTX_get_options 467 1_1_0 EXIST::FUNCTION: +SSL_clear_options 468 1_1_0 EXIST::FUNCTION: +SSL_set_options 469 1_1_0 EXIST::FUNCTION: +SSL_get_options 470 1_1_0 EXIST::FUNCTION: +SSL_up_ref 471 1_1_0 EXIST::FUNCTION: +SSL_CTX_up_ref 472 1_1_0 EXIST::FUNCTION: +DTLSv1_listen 473 1_1_0 EXIST::FUNCTION: +SSL_get0_verified_chain 474 1_1_0 EXIST::FUNCTION: +OPENSSL_init_ssl 475 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_default_read_buffer_len 476 1_1_0 EXIST::FUNCTION: +SSL_set_default_read_buffer_len 477 1_1_0 EXIST::FUNCTION: +SSL_has_pending 478 1_1_0 EXIST::FUNCTION: |