142 #ifndef OPENSSL_HEADER_SSL_INTERNAL_H 143 #define OPENSSL_HEADER_SSL_INTERNAL_H 152 #if defined(OPENSSL_WINDOWS) 155 #include <winsock2.h> 158 #include <sys/time.h> 161 #if defined(__cplusplus) 169 #define SSL_kRSA 0x00000001L 170 #define SSL_kDHE 0x00000002L 171 #define SSL_kECDHE 0x00000004L 173 #define SSL_kPSK 0x00000008L 174 #define SSL_kCECPQ1 0x00000010L 175 #define SSL_kGENERIC 0x00000020L 178 #define SSL_aRSA 0x00000001L 179 #define SSL_aECDSA 0x00000002L 181 #define SSL_aPSK 0x00000004L 182 #define SSL_aGENERIC 0x00000008L 184 #define SSL_aCERT (SSL_aRSA | SSL_aECDSA) 187 #define SSL_3DES 0x00000001L 188 #define SSL_AES128 0x00000002L 189 #define SSL_AES256 0x00000004L 190 #define SSL_AES128GCM 0x00000008L 191 #define SSL_AES256GCM 0x00000010L 192 #define SSL_CHACHA20POLY1305_OLD 0x00000020L 193 #define SSL_eNULL 0x00000040L 194 #define SSL_CHACHA20POLY1305 0x00000080L 196 #define SSL_AES (SSL_AES128 | SSL_AES256 | SSL_AES128GCM | SSL_AES256GCM) 199 #define SSL_MD5 0x00000001L 200 #define SSL_SHA1 0x00000002L 201 #define SSL_SHA256 0x00000004L 202 #define SSL_SHA384 0x00000008L 204 #define SSL_AEAD 0x00000010L 207 #define SSL_HANDSHAKE_MAC_DEFAULT 0x1 208 #define SSL_HANDSHAKE_MAC_SHA256 0x2 209 #define SSL_HANDSHAKE_MAC_SHA384 0x4 213 #define SSL_MAX_DIGEST 4 221 size_t *out_mac_secret_len,
222 size_t *out_fixed_iv_len,
306 const uint8_t *enc_key,
size_t enc_key_len,
307 const uint8_t *mac_key,
size_t mac_key_len,
308 const uint8_t *fixed_iv,
size_t fixed_iv_len);
406 size_t *out_consumed,
460 const uint8_t *in,
size_t in_len);
487 const uint8_t *in,
size_t in_len);
501 SSL *ssl,
const uint8_t *signature,
size_t signature_len,
503 const uint8_t *in,
size_t in_len);
582 const uint8_t *peer_key,
size_t peer_key_len);
592 size_t peer_key_len);
643 uint8_t **out_secret,
size_t *out_secret_len,
645 size_t peer_key_len);
650 const uint8_t *peer_key,
size_t peer_key_len);
658 #define SSL_MAX_HANDSHAKE_FLIGHT 7 689 const void *
buf,
size_t len);
801 size_t resumption_ctx_len);
826 size_t traffic_secret_len);
848 const char *
label,
size_t label_len,
1038 SSL *ssl,
int is_first_run);
1043 size_t *out_secret_len,
1047 size_t *out_secret_len,
1086 const uint8_t *encrypted_premaster,
1087 size_t encrypted_premaster_len,
1089 size_t premaster_len);
1100 const uint8_t *in,
size_t in_len);
1155 #define TLSEXT_CHANNEL_ID_SIZE 128 1158 #define NAMED_CURVE_TYPE 3 1184 DH *(*dh_tmp_cb)(
SSL *ssl,
int is_export,
int keysize);
1237 int (*ssl_get_message)(
SSL *ssl,
int msg_type,
1245 void (*release_current_message)(
SSL *ssl,
int free_buffer);
1297 size_t label_len,
const uint8_t *seed1,
size_t seed1_len,
1298 const uint8_t *seed2,
size_t seed2_len);
1504 #define DTLS1_COOKIE_LENGTH 256 1506 #define DTLS1_RT_HEADER_LENGTH 13 1508 #define DTLS1_HM_HEADER_LENGTH 12 1510 #define DTLS1_CCS_HEADER_LENGTH 1 1512 #define DTLS1_AL_HEADER_LENGTH 2 1579 struct timeval next_timeout;
1589 #define SSL_PSK_KE 0x0 1590 #define SSL_PSK_DHE_KE 0x1 1592 #define SSL_PSK_AUTH 0x0 1593 #define SSL_PSK_SIGN_AUTH 0x1 1597 #define SSL_KEY_UPDATE_NOT_REQUESTED 0 1598 #define SSL_KEY_UPDATE_REQUESTED 1 1634 #define SSL_SESSION_DUP_AUTH_ONLY 0x0 1635 #define SSL_SESSION_INCLUDE_TICKET 0x1 1636 #define SSL_SESSION_INCLUDE_NONAUTH 0x2 1637 #define SSL_SESSION_DUP_ALL \ 1638 (SSL_SESSION_INCLUDE_TICKET | SSL_SESSION_INCLUDE_NONAUTH) 1655 int (*
cb)(
SSL *ssl,
void *arg),
void *arg);
1685 size_t *out_len,
uint16_t signature_algorithm);
1774 size_t premaster_len);
1779 size_t *out_group_ids_len);
1795 const int *curves,
size_t ncurves);
1802 const char *curves);
1815 #define tlsext_tick_md EVP_sha256 1823 int *out_renew_ticket,
const uint8_t *ticket,
1824 size_t ticket_len,
const uint8_t *session_id,
1825 size_t session_id_len);
1874 #if defined(__cplusplus)
Definition: internal.h:372
uint16_t handshake_read_seq
Definition: internal.h:1555
Definition: internal.h:1161
Definition: internal.h:1311
int SSL_AEAD_CTX_seal(SSL_AEAD_CTX *ctx, uint8_t *out, size_t *out_len, size_t max_out, uint8_t type, uint16_t wire_version, const uint8_t seqnum[8], const uint8_t *in, size_t in_len)
Definition: ssl_aead_ctx.c:247
int tls_seal_record(SSL *ssl, uint8_t *out, size_t *out_len, size_t max_out, uint8_t type, const uint8_t *in, size_t in_len)
Definition: tls_record.c:357
int ssl3_read_handshake_bytes(SSL *ssl, uint8_t *buf, int len)
Definition: s3_pkt.c:425
int nid
Definition: internal.h:563
int ssl_ext_pre_shared_key_parse_clienthello(SSL *ssl, SSL_SESSION **out_session, uint8_t *out_alert, CBS *contents)
Definition: t1_lib.c:1978
Definition: internal.h:1618
char is_ccs
Definition: internal.h:675
void ssl_set_session(SSL *ssl, SSL_SESSION *session)
Definition: ssl_session.c:810
size_t peer_supported_group_list_len
Definition: internal.h:958
uint8_t variable_nonce_len
Definition: internal.h:278
int ssl_is_wbio_buffered(const SSL *ssl)
Definition: ssl_lib.c:2227
int ssl_private_key_supports_signature_algorithm(SSL *ssl, uint16_t signature_algorithm)
Definition: ssl_rsa.c:762
void dtls_clear_outgoing_messages(SSL *ssl)
Definition: d1_both.c:680
Definition: internal.h:1115
int ssl_cipher_requires_server_key_exchange(const SSL_CIPHER *cipher)
Definition: ssl_cipher.c:2025
int tls1_setup_key_block(SSL *ssl)
Definition: t1_enc.c:336
void ssl_cipher_preference_list_free(struct ssl_cipher_preference_list_st *cipher_list)
Definition: ssl_lib.c:1152
uint8_t * next_proto_negotiated
Definition: internal.h:1479
int dtls1_accept(SSL *ssl)
int tls13_process_new_session_ticket(SSL *ssl)
Definition: tls13_client.c:707
unsigned timeout_duration_ms
Definition: internal.h:1582
int ssl3_get_message(SSL *ssl, int msg_type, enum ssl_hash_message_t hash_message)
Definition: s3_both.c:558
uint16_t ssl3_protocol_version(const SSL *ssl)
Definition: ssl_lib.c:2813
unsigned long long uint64_t
Definition: ptypes.h:120
int dtls1_handshake_write(SSL *ssl)
int dtls1_send_finished(SSL *ssl, int a, int b, const char *sender, int slen)
int ssl_get_new_session(SSL *ssl, int is_server)
Definition: ssl_session.c:427
std::integral_constant< std::uint16_t, V > uint16_t
Definition: Brigand.h:437
uint8_t * key_block
Definition: internal.h:1434
int SSL_ECDH_CTX_init(SSL_ECDH_CTX *ctx, uint16_t group_id)
Definition: ssl_ecdh.c:560
void ssl_do_msg_callback(SSL *ssl, int is_write, int content_type, const void *buf, size_t len)
Definition: ssl_lib.c:2990
void ssl3_free_handshake_hash(SSL *ssl)
Definition: s3_enc.c:258
uint8_t * peer_key
Definition: internal.h:961
const SSL3_ENC_METHOD TLSv1_enc_data
Definition: t1_enc.c:544
enum ssl_private_key_result_t tls13_prepare_certificate_verify(SSL *ssl, int is_first_run)
Definition: tls13_both.c:340
int ssl_write_buffer_init(SSL *ssl, uint8_t **out_ptr, size_t max_len)
Definition: ssl_buffer.c:219
ssl_session_result_t
Definition: internal.h:1617
int ssl_nid_to_group_id(uint16_t *out_group_id, int nid)
Definition: ssl_ecdh.c:542
unsigned received_hello_retry_request
Definition: internal.h:927
uint8_t exporter_secret_len
Definition: internal.h:1417
DOMString body
Definition: Notification.idl:65
int ssl_check_leaf_certificate(SSL *ssl, X509 *leaf)
Definition: ssl_cert.c:780
int tls13_set_traffic_key(SSL *ssl, enum tls_record_type_t type, enum evp_aead_direction_t direction, const uint8_t *traffic_secret, size_t traffic_secret_len)
Definition: tls13_enc.c:128
Definition: internal.h:1290
int ssl_ext_key_share_parse_serverhello(SSL *ssl, uint8_t **out_secret, size_t *out_secret_len, uint8_t *out_alert, CBS *contents)
Definition: t1_lib.c:2110
unsigned certificate_status_expected
Definition: internal.h:980
SSL3_BUFFER write_buffer
Definition: internal.h:1352
int ssl_parse_serverhello_tlsext(SSL *ssl, CBS *cbs)
Definition: t1_lib.c:2949
int next_state
Definition: internal.h:1430
int c
Definition: cpp_unittests.cpp:275
char is_dtls
Definition: internal.h:1219
uint8_t * data
Definition: internal.h:1532
OPENSSL_EXPORT pem_password_cb * cb
Definition: pem.h:398
struct ssl_cipher_preference_list_st const char * rule_str
Definition: internal.h:241
uint8_t * alpn_selected
Definition: internal.h:1488
int ssl_ext_key_share_add_serverhello(SSL *ssl, CBB *out)
Definition: t1_lib.c:2218
uint8_t warning_alert_count
Definition: internal.h:1389
Definition: internal.h:1065
enum ssl_hs_wait_t tls13_client_handshake(SSL *ssl)
Definition: tls13_client.c:639
SSL3_RECORD rrec
Definition: internal.h:1354
int ssl_write_buffer_is_pending(const SSL *ssl)
Definition: ssl_buffer.c:205
uint16_t * peer_supported_group_list
Definition: internal.h:957
int dtls1_retransmit_outgoing_messages(SSL *ssl)
Definition: d1_both.c:805
int dtls1_write_record(SSL *ssl, int type, const uint8_t *buf, size_t len, enum dtls1_use_epoch_t use_epoch)
Definition: d1_pkt.c:358
int ssl_add_client_hello_body(SSL *ssl, CBB *body)
Definition: handshake_client.c:652
struct hm_fragment_st hm_fragment
int ssl_cert_add0_chain_cert(CERT *cert, X509 *x509)
Definition: ssl_cert.c:271
int dtls1_write_app_data(SSL *ssl, const void *buf, int len)
Definition: d1_pkt.c:333
unsigned should_ack_sni
Definition: internal.h:987
int tls13_process_certificate_verify(SSL *ssl)
Definition: tls13_both.c:233
uint16_t received
Definition: internal.h:921
unsigned int uint32_t
Definition: ptypes.h:105
CERT * ssl_cert_new(void)
Definition: ssl_cert.c:142
void ssl_update_cache(SSL *ssl, int mode)
Definition: ssl_lib.c:2092
int dtls_has_incoming_messages(const SSL *ssl)
Definition: d1_both.c:476
Definition: internal.h:445
Definition: internal.h:272
int ssl_has_private_key(const SSL *ssl)
Definition: ssl_rsa.c:427
void ssl3_free(SSL *ssl)
Definition: s3_lib.c:198
unsigned cert_request
Definition: internal.h:975
size_t ssl_cipher_get_record_split_len(const SSL_CIPHER *cipher)
Definition: ssl_cipher.c:2037
int ssl_public_key_verify(SSL *ssl, const uint8_t *signature, size_t signature_len, uint16_t signature_algorithm, EVP_PKEY *pkey, const uint8_t *in, size_t in_len)
Definition: ssl_rsa.c:707
uint8_t new_key_len
Definition: internal.h:1438
size_t ssl_max_seal_overhead(const SSL *ssl)
Definition: tls_record.c:177
Definition: internal.h:1325
uint16_t length
Definition: internal.h:1306
int tls13_init_key_schedule(SSL *ssl, const uint8_t *resumption_ctx, size_t resumption_ctx_len)
Definition: tls13_enc.c:30
Definition: internal.h:1067
Definition: internal.h:1118
ssl_private_key_result_t
Definition: ssl.h:1018
void SSL_ECDH_CTX_init_for_cecpq1(SSL_ECDH_CTX *ctx)
Definition: ssl_ecdh.c:579
uint8_t previous_client_finished_len
Definition: internal.h:1468
enum ssl_open_record_t ssl_process_alert(SSL *ssl, uint8_t *out_alert, const uint8_t *in, size_t in_len)
Definition: tls_record.c:408
Definition: internal.h:67
size_t public_key_len
Definition: internal.h:945
uint8_t uint8_t CBS * cbs
Definition: internal.h:759
int ssl3_write_app_data(SSL *ssl, const void *buf, int len)
Definition: s3_pkt.c:190
uint32_t msg_len
Definition: internal.h:1529
uint16_t ssl_get_grease_value(const SSL *ssl, enum ssl_grease_index_t index)
Definition: handshake_client.c:579
EVP_MD_CTX handshake_md5
Definition: internal.h:1370
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: gl2ext.h:134
#define max_out
Definition: test_opus_api.c:1436
int ssl_session_is_context_valid(const SSL *ssl, const SSL_SESSION *session)
Definition: ssl_session.c:586
void dtls1_read_close_notify(SSL *ssl)
Definition: d1_pkt.c:323
const SSL_CIPHER * new_cipher
Definition: internal.h:1427
uint8_t fixed_nonce[12]
Definition: internal.h:277
uint32_t len
Definition: internal.h:673
int ssl_record_sequence_update(uint8_t *seq, size_t seq_len)
Definition: tls_record.c:141
uint16_t value
Definition: internal.h:516
int ssl3_output_cert_chain(SSL *ssl)
Definition: s3_both.c:345
ssl_hash_message_t
Definition: internal.h:1160
SSL3_BUFFER read_buffer
Definition: internal.h:1350
uint16_t retry_group
Definition: internal.h:931
int ssl3_accept(SSL *ssl)
Definition: handshake_server.c:188
int SSL_ECDH_CTX_finish(SSL_ECDH_CTX *ctx, uint8_t **out_secret, size_t *out_secret_len, uint8_t *out_alert, const uint8_t *peer_key, size_t peer_key_len)
Definition: ssl_ecdh.c:624
uint8_t empty_record_count
Definition: internal.h:1385
void ssl_read_buffer_consume(SSL *ssl, size_t len)
Definition: ssl_buffer.c:181
int ssl_add_serverhello_tlsext(SSL *ssl, CBB *out)
Definition: t1_lib.c:2678
size_t ssl_record_prefix_len(const SSL *ssl)
Definition: tls_record.c:152
uint32_t pending_message_len
Definition: internal.h:1406
int tls13_process_finished(SSL *ssl)
Definition: tls13_both.c:304
uint16_t min_version
Definition: internal.h:1221
enum ssl_private_key_result_t ssl_private_key_decrypt(SSL *ssl, uint8_t *out, size_t *out_len, size_t max_out, const uint8_t *in, size_t in_len)
Definition: ssl_rsa.c:732
void ssl_write_buffer_set_len(SSL *ssl, size_t len)
Definition: ssl_buffer.c:253
dtls1_use_epoch_t
Definition: internal.h:444
int ssl_read_buffer_extend_to(SSL *ssl, size_t len)
Definition: ssl_buffer.c:152
uint16_t ssl_cipher_get_value(const SSL_CIPHER *cipher)
Definition: ssl_cipher.c:1575
int alert_dispatch
Definition: internal.h:1379
unsigned in_false_start
Definition: internal.h:991
unsigned initial_handshake_complete
Definition: internal.h:1347
int ssl3_update_handshake_hash(SSL *ssl, const uint8_t *in, size_t in_len)
Definition: s3_enc.c:268
void dtls1_double_timeout(SSL *ssl)
Definition: d1_lib.c:200
int ssl_verify_cert_chain(SSL *ssl, long *out_verify_result, STACK_OF(X509) *cert_chain)
Definition: ssl_cert.c:296
void * cert_cb_arg
Definition: internal.h:1198
int SSL_AEAD_CTX_open(SSL_AEAD_CTX *ctx, CBS *out, uint8_t type, uint16_t wire_version, const uint8_t seqnum[8], uint8_t *in, size_t in_len)
Definition: ssl_aead_ctx.c:171
Definition: internal.h:1330
uint8_t previous_server_finished_len
Definition: internal.h:1470
int ssl_log_rsa_client_key_exchange(const SSL *ssl, const uint8_t *encrypted_premaster, size_t encrypted_premaster_len, const uint8_t *premaster, size_t premaster_len)
Definition: ssl_lib.c:2612
char random_variable_nonce
Definition: internal.h:285
void * parse_arg
Definition: internal.h:515
int ssl3_new(SSL *ssl)
Definition: s3_lib.c:173
enum ssl_private_key_result_t ssl_private_key_complete(SSL *ssl, uint8_t *out, size_t *out_len, size_t max_out)
Definition: ssl_rsa.c:755
int tls13_get_cert_verify_signature_input(SSL *ssl, uint8_t **out, size_t *out_len, enum ssl_cert_verify_context_t cert_verify_context)
Definition: tls13_both.c:113
int ssl3_write_message(SSL *ssl)
Definition: s3_both.c:224
int ssl_cipher_get_evp_aead(const EVP_AEAD **out_aead, size_t *out_mac_secret_len, size_t *out_fixed_iv_len, const SSL_CIPHER *cipher, uint16_t version)
Definition: ssl_cipher.c:776
struct dtls1_state_st DTLS1_STATE
int ssl_name_to_group_id(uint16_t *out_group_id, const char *name, size_t len)
Definition: ssl_ecdh.c:551
enum ssl_open_record_t dtls_open_record(SSL *ssl, uint8_t *out_type, CBS *out, size_t *out_consumed, uint8_t *out_alert, uint8_t *in, size_t in_len)
Definition: dtls_record.c:175
int wpend_type
Definition: internal.h:1359
EGLenum EGLObjectKHR EGLLabelKHR label
Definition: eglext.h:121
Definition: internal.h:877
evp_aead_direction_t
Definition: aead.h:291
const SSL3_ENC_METHOD SSLv3_enc_data
Definition: s3_enc.c:409
int ssl3_write_bytes(SSL *ssl, int type, const void *buf, int len)
Definition: s3_pkt.c:198
SSL_custom_ext_add_cb add_callback
Definition: internal.h:511
uint16_t version
Definition: ssl_lib.c:2731
unsigned int num_timeouts
Definition: internal.h:1575
int ssl3_hash_current_message(SSL *ssl)
Definition: s3_both.c:650
uint8_t * buf
Definition: internal.h:1313
uint16_t * peer_sigalgs
Definition: internal.h:950
int custom_ext_parse_serverhello(SSL *ssl, int *out_alert, uint16_t value, const CBS *extension)
Definition: custom_extensions.c:128
X509_STORE * verify_store
Definition: internal.h:1202
void ssl3_expect_flight(SSL *ssl)
Definition: s3_lib.c:169
void dtls1_stop_timer(SSL *ssl)
Definition: d1_lib.c:208
int ssl_add_cert_to_cbb(CBB *cbb, X509 *x509)
Definition: ssl_cert.c:502
int dtls1_hash_current_message(SSL *ssl)
Definition: d1_both.c:445
int dtls1_dispatch_alert(SSL *ssl)
Definition: d1_pkt.c:398
size_t next_proto_negotiated_len
Definition: internal.h:1480
GLenum mode
Definition: gl2.h:461
Definition: internal.h:370
int dtls1_read_app_data(SSL *ssl, int *out_got_handshake, uint8_t *buf, int len, int peek)
Definition: d1_pkt.c:200
void ssl_set_client_disabled(SSL *ssl)
Definition: t1_lib.c:526
ssl_open_record_t
Definition: internal.h:367
int state
Definition: internal.h:895
int tls12_check_peer_sigalg(SSL *ssl, int *out_alert, uint16_t sigalg)
Definition: t1_lib.c:508
size_t num_peer_sigalgs
Definition: internal.h:952
uint8_t write_traffic_secret_len
Definition: internal.h:1413
int ssl_early_callback_get_extension(const struct ssl_early_callback_ctx *ctx, CBS *out, uint16_t extension_type)
Definition: t1_lib.c:271
#define desc
Definition: extension_set.h:320
SSL_ECDH_CTX ecdh_ctx
Definition: internal.h:925
int ssl_ext_pre_shared_key_parse_serverhello(SSL *ssl, uint8_t *out_alert, CBS *contents)
Definition: t1_lib.c:1959
uint8_t new_fixed_iv_len
Definition: internal.h:1439
void * add_arg
Definition: internal.h:512
size_t num_sigalgs
Definition: internal.h:1189
SSL_custom_ext_free_cb free_callback
Definition: internal.h:513
const gchar * contents
Definition: WebKitDOMDeprecated.h:51
void dtls1_release_current_message(SSL *ssl, int free_buffer)
Definition: d1_both.c:454
DH * dh_tmp
Definition: internal.h:1183
int ssl3_read_app_data(SSL *ssl, int *out_got_handshake, uint8_t *buf, int len, int peek)
Definition: s3_pkt.c:334
size_t key_share_bytes_len
Definition: internal.h:940
uint16_t seq
Definition: internal.h:1527
int tls13_derive_traffic_secret_0(SSL *ssl)
Definition: tls13_enc.c:261
Definition: internal.h:878
uint64_t max_seq_num
Definition: internal.h:350
Definition: internal.h:369
size_t SSL_AEAD_CTX_explicit_nonce_len(SSL_AEAD_CTX *ctx)
Definition: ssl_aead_ctx.c:124
int(* SSL_custom_ext_add_cb)(SSL *ssl, unsigned extension_value, const uint8_t **out, size_t *out_len, int *out_alert_value, void *add_arg)
Definition: ssl.h:1468
def do_handshake(request, dispatcher, allowDraft75=False, strict=False)
Definition: __init__.py:52
uint8_t * pending_message
Definition: internal.h:1405
GLint level
Definition: gl2.h:402
const SSL3_ENC_METHOD * enc_method
Definition: internal.h:1402
Definition: internal.h:875
void
Definition: AVFoundationCFSoftLinking.h:81
Definition: internal.h:74
const SSL_PROTOCOL_METHOD * method
Definition: internal.h:1213
enum ssl_open_record_t tls_open_record(SSL *ssl, uint8_t *out_type, CBS *out, size_t *out_consumed, uint8_t *out_alert, uint8_t *in, size_t in_len)
Definition: tls_record.c:195
int reuse_message
Definition: internal.h:1432
size_t ssl_max_handshake_message_len(const SSL *ssl)
Definition: s3_both.c:358
void ssl_cert_free(CERT *c)
Definition: ssl_cert.c:232
int
Definition: runtests.py:53
uint8_t uint8_t * out_leaf_sha256
Definition: internal.h:759
unsigned int mtu
Definition: internal.h:1571
int ssl3_init_handshake_buffer(SSL *ssl)
Definition: s3_enc.c:221
struct ssl3_record_st SSL3_RECORD
enum ssl_private_key_result_t ssl_private_key_sign(SSL *ssl, uint8_t *out, size_t *out_len, size_t max_out, uint16_t signature_algorithm, const uint8_t *in, size_t in_len)
Definition: ssl_rsa.c:653
int dtls1_finish_message(SSL *ssl, CBB *cbb)
Definition: d1_both.c:739
CERT * ssl_cert_dup(CERT *cert)
Definition: ssl_cert.c:153
Definition: internal.h:1523
size_t hash_len
Definition: internal.h:897
OPENSSL_EXPORT int nid
Definition: x509.h:1056
Definition: internal.h:344
struct ssl_cipher_preference_list_st ** out_cipher_list
Definition: internal.h:239
int ssl_verify_alarm_type(long type)
Definition: s3_both.c:672
int ssl3_can_false_start(const SSL *ssl)
Definition: ssl_lib.c:2700
int SSL_ECDH_CTX_get_key(SSL_ECDH_CTX *ctx, CBS *cbs, CBS *out)
Definition: ssl_ecdh.c:598
void ssl_do_info_callback(const SSL *ssl, int type, int value)
Definition: ssl_lib.c:2977
Definition: internal.h:446
int wpend_ret
Definition: internal.h:1360
ssl_shutdown_t
Definition: internal.h:1324
void ssl_get_compatible_server_ciphers(SSL *ssl, uint32_t *out_mask_k, uint32_t *out_mask_a)
Definition: ssl_lib.c:2048
OPENSSL_EXPORT const ASN1_OBJECT int const unsigned char int len
Definition: x509.h:1053
void SSL_AEAD_CTX_free(SSL_AEAD_CTX *ctx)
Definition: ssl_aead_ctx.c:116
Definition: internal.h:1326
DTLS1_BITMAP bitmap
Definition: internal.h:1552
Definition: bytestring.h:286
size_t server_params_len
Definition: internal.h:967
int dtls1_supports_cipher(const SSL_CIPHER *cipher)
Definition: d1_lib.c:116
const SSL_CIPHER * cipher
Definition: internal.h:273
int tls1_verify_channel_id(SSL *ssl)
Definition: t1_lib.c:3202
uint8_t fixed_nonce_len
Definition: internal.h:278
const uint8_t * wpend_buf
Definition: internal.h:1361
void(* SSL_custom_ext_free_cb)(SSL *ssl, unsigned extension_value, const uint8_t *out, void *add_arg)
Definition: ssl.h:1477
char omit_version_in_ad
Definition: internal.h:291
Definition: internal.h:874
int ssl_add_client_CA_list(SSL *ssl, CBB *cbb)
Definition: ssl_cert.c:635
Definition: internal.h:1117
uint32_t ssl_get_algorithm_prf(const SSL *ssl)
Definition: s3_lib.c:323
int int * out
Definition: gcc-loops.cpp:206
#define OPENSSL_EXPORT
Definition: base.h:160
void ssl_handshake_free(SSL_HANDSHAKE *hs)
Definition: s3_both.c:145
uint16_t group_id
Definition: internal.h:564
int ssl_cert_set0_chain(CERT *cert, STACK_OF(X509) *chain)
Definition: ssl_cert.c:246
int ssl_add_clienthello_tlsext(SSL *ssl, CBB *out, size_t header_len)
Definition: t1_lib.c:2571
uint16_t r_epoch
Definition: internal.h:1548
GLuint index
Definition: gl2.h:383
char omit_ad
Definition: internal.h:293
struct ssl3_buffer_st SSL3_BUFFER
int tls13_get_context_hashes(SSL *ssl, uint8_t *out, size_t *out_len)
Definition: tls13_enc.c:92
EGLAttrib * value
Definition: eglext.h:120
void ssl_read_buffer_discard(SSL *ssl)
Definition: ssl_buffer.c:194
unsigned session_reused
Definition: internal.h:1464
EGLContext ctx
Definition: eglext.h:192
unsigned char uint8_t
Definition: ptypes.h:89
const SSL3_ENC_METHOD * ssl3_get_enc_method(uint16_t version)
Definition: ssl_lib.c:2714
char extended_master_secret
Definition: internal.h:1447
Definition: internal.h:1165
int ssl_ext_pre_shared_key_add_serverhello(SSL *ssl, CBB *out)
Definition: t1_lib.c:2008
int SSL_ECDH_CTX_add_key(SSL_ECDH_CTX *ctx, CBB *cbb, CBB *out_contents)
Definition: ssl_ecdh.c:605
Definition: bytestring.h:37
Definition: internal.h:815
Definition: internal.h:1116
EVP_MD_CTX handshake_hash
Definition: internal.h:1367
size_t cookie_len
Definition: internal.h:935
int tls1_set_curves_list(uint16_t **out_group_ids, size_t *out_group_ids_len, const char *curves)
Definition: t1_lib.c:388
Definition: RTCSessionDescription.idl:46
void ssl_write_buffer_clear(SSL *ssl)
Definition: ssl_buffer.c:309
unsigned short uint16_t
Definition: ptypes.h:97
struct ssl3_state_st SSL3_STATE
uint64_t map
Definition: internal.h:347
uint8_t outgoing_messages_len
Definition: internal.h:1569
void dtls1_received_flight(SSL *ssl)
Definition: d1_lib.c:268
OPENSSL_MSVC_PRAGMA(warning(disable:4702))
Definition: e_aes.c:70
int tls1_choose_signature_algorithm(SSL *ssl, uint16_t *out)
Definition: t1_lib.c:3142
void ssl3_read_close_notify(SSL *ssl)
Definition: s3_pkt.c:418
uint8_t * ssl_read_buffer(SSL *ssl)
Definition: ssl_buffer.c:97
Definition: internal.h:1066
int message_type
Definition: internal.h:1424
void dtls1_expect_flight(SSL *ssl)
Definition: d1_lib.c:264
uint8_t * out_alert
Definition: internal.h:759
void ssl_read_buffer_clear(SSL *ssl)
Definition: ssl_buffer.c:200
EGLImageKHR EGLint * name
Definition: eglext.h:851
int tls13_handshake(SSL *ssl)
Definition: tls13_both.c:36
int ssl_add_cert_chain(SSL *ssl, CBB *cbb)
Definition: ssl_cert.c:525
Definition: internal.h:1619
Definition: internal.h:1620
char omit_length_in_ad
Definition: internal.h:288
size_t peer_key_len
Definition: internal.h:962
X509 * x509
Definition: internal.h:1166
size_t cookie_len
Definition: internal.h:1544
unsigned v2_hello_done
Definition: internal.h:1343
int tls13_set_handshake_traffic(SSL *ssl)
Definition: tls13_enc.c:225
uint8_t * data
Definition: internal.h:672
void dtls1_start_timer(SSL *ssl)
Definition: d1_lib.c:124
int dtls1_write_message(SSL *ssl)
Definition: d1_both.c:761
void dtls_clear_incoming_messages(SSL *ssl)
Definition: d1_both.c:469
Definition: x509_vfy.h:181
int(* SSL_custom_ext_parse_cb)(SSL *ssl, unsigned extension_value, const uint8_t *contents, size_t contents_len, int *out_alert_value, void *parse_arg)
Definition: ssl.h:1490
int ssl_write_buffer_flush(SSL *ssl)
Definition: ssl_buffer.c:296
char * peer_psk_identity_hint
Definition: internal.h:998
GLboolean GLboolean GLboolean GLboolean a
Definition: gl2ext.h:306
unsigned next_proto_neg_seen
Definition: internal.h:994
int tls13_prepare_certificate(SSL *ssl)
Definition: tls13_both.c:326
int ssl3_init_handshake_hash(SSL *ssl)
Definition: s3_enc.c:239
STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(const SSL_PROTOCOL_METHOD *ssl_method
void ssl_cert_set_cert_cb(CERT *cert, int(*cb)(SSL *ssl, void *arg), void *arg)
Definition: ssl_cert.c:291
SSL_AEAD_CTX * aead_read_ctx
Definition: internal.h:1395
Definition: internal.h:1207
void ssl3_cleanup_key_block(SSL *ssl)
Definition: s3_enc.c:212
void dtls1_clear_record_buffer(SSL *ssl)
int ssl3_connect(SSL *ssl)
Definition: handshake_client.c:188
ssl_hs_wait_t
Definition: internal.h:873
int tls_process_ticket(SSL *ssl, SSL_SESSION **out_session, int *out_renew_ticket, const uint8_t *ticket, size_t ticket_len, const uint8_t *session_id, size_t session_id_len)
Definition: t1_lib.c:2964
int ssl_private_key_type(SSL *ssl)
Definition: ssl_rsa.c:444
uint8_t session_tickets_sent
Definition: internal.h:971
void dtls1_free(SSL *ssl)
Definition: d1_lib.c:102
size_t tls12_get_verify_sigalgs(const SSL *ssl, const uint16_t **out)
Definition: t1_lib.c:503
Definition: internal.h:814
uint16_t max_version
Definition: internal.h:1223
struct ssl_cipher_preference_list_st * ssl_get_cipher_preferences(SSL *ssl)
Definition: s3_lib.c:223
SSL_AEAD_CTX * SSL_AEAD_CTX_new(enum evp_aead_direction_t direction, uint16_t version, const SSL_CIPHER *cipher, const uint8_t *enc_key, size_t enc_key_len, const uint8_t *mac_key, size_t mac_key_len, const uint8_t *fixed_iv, size_t fixed_iv_len)
Definition: ssl_aead_ctx.c:31
int ssl_get_version_range(const SSL *ssl, uint16_t *out_min_version, uint16_t *out_max_version)
Definition: ssl_lib.c:2743
uint8_t read_traffic_secret_len
Definition: internal.h:1415
SSL_SESSION * established_session
Definition: internal.h:1461
uint8_t * cookie
Definition: internal.h:934
unsigned long which
Definition: KeyboardEvent.idl:72
Definition: internal.h:562
int tls13_finished_mac(SSL *ssl, uint8_t *out, size_t *out_len, int is_server)
Definition: tls13_enc.c:323
Definition: internal.h:371
uint8_t * public_key
Definition: internal.h:944
enum ssl_hs_wait_t tls13_server_handshake(SSL *ssl)
Definition: tls13_server.c:613
uint16_t SSL_ECDH_CTX_get_id(const SSL_ECDH_CTX *ctx)
Definition: ssl_ecdh.c:594
int ssl_ext_key_share_parse_clienthello(SSL *ssl, int *out_found, uint8_t **out_secret, size_t *out_secret_len, uint8_t *out_alert, CBS *contents)
Definition: t1_lib.c:2140
EGLenum type
Definition: eglext.h:63
void ssl3_free_handshake_buffer(SSL *ssl)
Definition: s3_enc.c:263
void SSL_CUSTOM_EXTENSION_free(SSL_CUSTOM_EXTENSION *custom_extension)
Definition: custom_extensions.c:28
tls_record_type_t
Definition: internal.h:813
int custom_ext_add_clienthello(SSL *ssl, CBB *extensions)
Definition: custom_extensions.c:124
uint8_t new_mac_secret_len
Definition: internal.h:1437
OPENSSL_EXPORT SSL_SESSION * SSL_SESSION_dup(SSL_SESSION *session, int dup_flags)
Definition: ssl_session.c:179
int tls1_change_cipher_state(SSL *ssl, int which)
Definition: t1_enc.c:261
unsigned int dtls1_min_mtu(void)
Definition: d1_both.c:843
int ssl_cert_set1_chain(CERT *cert, STACK_OF(X509) *chain)
Definition: ssl_cert.c:252
int wpend_tot
Definition: internal.h:1358
EVP_PKEY * privatekey
Definition: internal.h:1167
Definition: internal.h:882
uint32_t mask_k
Definition: internal.h:1180
void ssl_clear_tls13_state(SSL *ssl)
Definition: tls13_client.c:748
uint32_t mask_a
Definition: internal.h:1181
int dtls1_connect(SSL *ssl)
Definition: internal.h:1302
int dtls1_send_change_cipher_spec(SSL *ssl)
Definition: d1_both.c:834
size_t ssl_read_buffer_len(const SSL *ssl)
Definition: ssl_buffer.c:101
#define EVP_MAX_MD_SIZE
Definition: digest.h:144
Definition: internal.h:876
uint8_t * key_share_bytes
Definition: internal.h:939
void ssl_cert_clear_certs(CERT *c)
Definition: ssl_cert.c:218
const SSL_CIPHER * ssl3_choose_cipher(SSL *ssl, const struct ssl_early_callback_ctx *client_hello, const struct ssl_cipher_preference_list_st *srvr)
Definition: s3_lib.c:243
int tls13_advance_key_schedule(SSL *ssl, const uint8_t *in, size_t len)
Definition: tls13_enc.c:55
Definition: internal.h:816
Definition: internal.h:1119
int tls13_resumption_context(SSL *ssl, uint8_t *out, size_t out_len, const SSL_SESSION *session)
Definition: tls13_enc.c:365
void ssl_free_wbio_buffer(SSL *ssl)
Definition: ssl_lib.c:2250
int dtls_seal_record(SSL *ssl, uint8_t *out, size_t *out_len, size_t max_out, uint8_t type, const uint8_t *in, size_t in_len, enum dtls1_use_epoch_t use_epoch)
Definition: dtls_record.c:252
uint16_t sent
Definition: internal.h:917
int send_connection_binding
Definition: internal.h:1471
Definition: internal.h:510
int ssl_init_wbio_buffer(SSL *ssl)
Definition: ssl_lib.c:2231
uint16_t version
Definition: internal.h:1210
int custom_ext_add_serverhello(SSL *ssl, CBB *extensions)
Definition: custom_extensions.c:179
unsigned int wnum
Definition: internal.h:1357
uint8_t * reassembly
Definition: internal.h:1535
SSL_custom_ext_parse_cb parse_callback
Definition: internal.h:514
int SSL_ECDH_CTX_offer(SSL_ECDH_CTX *ctx, CBB *out_public_key)
Definition: ssl_ecdh.c:612
int ssl3_supports_cipher(const SSL_CIPHER *cipher)
Definition: s3_lib.c:165
int dtls1_parse_fragment(CBS *cbs, struct hm_header_st *out_hdr, CBS *out_body)
Definition: d1_both.c:491
uint16_t cap
Definition: internal.h:1319
int ssl3_read_change_cipher_spec(SSL *ssl)
Definition: s3_pkt.c:388
int tls1_write_channel_id(SSL *ssl, CBB *cbb)
Definition: t1_lib.c:3290
const EVP_MD * ssl_get_handshake_digest(uint32_t algorithm_prf)
Definition: ssl_cipher.c:906
SSL_SESSION * new_session
Definition: internal.h:1456
ssl_cert_verify_context_t
Definition: internal.h:1064
uint8_t key_update_count
Definition: internal.h:1392
int tls1_channel_id_hash(SSL *ssl, uint8_t *out, size_t *out_len)
Definition: t1_lib.c:3339
size_t SSL_AEAD_CTX_max_overhead(SSL_AEAD_CTX *ctx)
Definition: ssl_aead_ctx.c:135
int tls13_resumption_psk(SSL *ssl, uint8_t *out, size_t out_len, const SSL_SESSION *session)
Definition: tls13_enc.c:356
int ssl_cert_add1_chain_cert(CERT *cert, X509 *x509)
Definition: ssl_cert.c:282
int tls13_prepare_finished(SSL *ssl)
Definition: tls13_both.c:402
int dtls1_read_change_cipher_spec(SSL *ssl)
Definition: d1_pkt.c:283
struct dtls_outgoing_message_st DTLS_OUTGOING_MESSAGE
Definition: internal.h:817
SSL_AEAD_CTX * aead_write_ctx
Definition: internal.h:1398
ssl_grease_index_t
Definition: internal.h:1114
Definition: WebCryptoAPI.idl:27
Definition: internal.h:879
int ssl_cipher_uses_certificate_auth(const SSL_CIPHER *cipher)
Definition: ssl_cipher.c:2021
int tls13_process_certificate(SSL *ssl, int allow_anonymous)
Definition: tls13_both.c:166
midl_pragma warning(disable:2111) midl_pragma warning(disable
Definition: Accessible2.idl:352
void ssl3_release_current_message(SSL *ssl, int free_buffer)
Definition: s3_both.c:655
uint16_t len
Definition: internal.h:1317
void SSL_ECDH_CTX_init_for_dhe(SSL_ECDH_CTX *ctx, DH *params)
Definition: ssl_ecdh.c:572
Definition: internal.h:881
uint8_t * certificate_types
Definition: internal.h:1006
GLboolean GLboolean GLboolean b
Definition: gl2ext.h:306
uint8_t type
Definition: internal.h:1304
int tls1_set_curves(uint16_t **out_group_ids, size_t *out_group_ids_len, const int *curves, size_t ncurves)
Definition: t1_lib.c:365
Definition: internal.h:880
Definition: internal.h:1327
int ssl_client_cipher_list_contains_cipher(const struct ssl_early_callback_ctx *client_hello, uint16_t id)
Definition: handshake_server.c:538
int ssl3_send_change_cipher_spec(SSL *ssl)
Definition: s3_both.c:338
uint8_t type
Definition: internal.h:1525
int ssl_log_secret(const SSL *ssl, const char *label, const uint8_t *secret, size_t secret_len)
Definition: ssl_lib.c:2647
int ssl_do_channel_id_callback(SSL *ssl)
Definition: t1_lib.c:3407
int ssl3_init_message(SSL *ssl, CBB *cbb, CBB *body, uint8_t type)
Definition: s3_both.c:184
size_t num_certificate_types
Definition: internal.h:1007
int total_renegotiations
Definition: internal.h:1382
uint8_t * data
Definition: internal.h:1308
struct dtls1_bitmap_st DTLS1_BITMAP
Definition: internal.h:671
int ssl_session_is_time_valid(const SSL *ssl, const SSL_SESSION *session)
Definition: ssl_session.c:595
int tls13_check_message_type(SSL *ssl, int type)
Definition: tls13_both.c:292
int ssl3_cert_verify_hash(SSL *ssl, const EVP_MD **out_md, uint8_t *out, size_t *out_len, uint16_t signature_algorithm)
Definition: s3_enc.c:383
int ssl_has_certificate(const SSL *ssl)
Definition: ssl_cert.c:445
int ssl_cipher_get_key_type(const SSL_CIPHER *cipher)
Definition: ssl_cipher.c:2009
int tls13_finalize_keys(SSL *ssl)
Definition: tls13_enc.c:305
const char * extension
Definition: MIMETypeRegistry.cpp:58
void ssl_get_current_time(const SSL *ssl, struct timeval *out_clock)
Definition: ssl_lib.c:3057
void tls1_get_grouplist(SSL *ssl, const uint16_t **out_group_ids, size_t *out_group_ids_len)
Definition: t1_lib.c:315
uint32_t sent
Definition: internal.h:907
uint16_t offset
Definition: internal.h:1315
int ssl3_dispatch_alert(SSL *ssl)
Definition: s3_pkt.c:477
int ssl_encrypt_ticket(SSL *ssl, CBB *out, const SSL_SESSION *session)
Definition: ssl_session.c:494
void ssl3_received_flight(SSL *ssl)
Definition: s3_lib.c:171
unsigned int send_cookie
Definition: internal.h:1541
uint16_t peer_signature_algorithm
Definition: internal.h:1451
int dtls1_init_message(SSL *ssl, CBB *cbb, CBB *body, uint8_t type)
Definition: d1_both.c:725
SSL_HANDSHAKE * ssl_handshake_new(enum ssl_hs_wait_t(*do_handshake)(SSL *ssl))
Definition: s3_both.c:133
uint16_t * sigalgs
Definition: internal.h:1188
int ssl_is_ecdsa_key_type(int type)
Definition: ssl_rsa.c:431
Definition: internal.h:368
BUF_MEM * handshake_buffer
Definition: internal.h:1364
Definition: internal.h:1538
size_t ssl_seal_align_prefix_len(const SSL *ssl)
Definition: tls_record.c:162
int tls1_parse_peer_sigalgs(SSL *ssl, const CBS *sigalgs)
Definition: t1_lib.c:3100
#define SSL_MAX_HANDSHAKE_FLIGHT
Definition: internal.h:658
int tls1_generate_master_secret(SSL *ssl, uint8_t *out, const uint8_t *premaster, size_t premaster_len)
Definition: t1_enc.c:470
int tls13_post_handshake(SSL *ssl)
Definition: tls13_both.c:441
int dtls1_new(SSL *ssl)
Definition: d1_lib.c:78
#define DTLS1_COOKIE_LENGTH
Definition: internal.h:1504
SSL_HANDSHAKE * hs
Definition: internal.h:1410
int SSL_ECDH_CTX_accept(SSL_ECDH_CTX *ctx, CBB *out_public_key, uint8_t **out_secret, size_t *out_secret_len, uint8_t *out_alert, const uint8_t *peer_key, size_t peer_key_len)
Definition: ssl_ecdh.c:616
uint16_t handshake_write_seq
Definition: internal.h:1554
Definition: internal.h:885
GLenum GLint * params
Definition: gl2.h:440
int ssl3_finish_message(SSL *ssl, CBB *cbb)
Definition: s3_both.c:202
int tls1_check_group_id(SSL *ssl, uint16_t group_id)
Definition: t1_lib.c:431
uint8_t key_block_length
Definition: internal.h:1435
unsigned ocsp_stapling_requested
Definition: internal.h:983
int dtls1_is_timer_expired(SSL *ssl)
Definition: d1_lib.c:183
int ssl_parse_clienthello_tlsext(SSL *ssl, const struct ssl_early_callback_ctx *client_hello)
Definition: t1_lib.c:2800
int tls1_record_handshake_hashes_for_channel_id(SSL *ssl)
Definition: t1_lib.c:3385
int ssl_early_callback_init(SSL *ssl, struct ssl_early_callback_ctx *ctx, const uint8_t *in, size_t in_len)
Definition: t1_lib.c:206
uint16_t epoch
Definition: internal.h:674
int tls13_export_keying_material(SSL *ssl, uint8_t *out, size_t out_len, const char *label, size_t label_len, const uint8_t *context, size_t context_len, int use_context)
Definition: tls13_enc.c:375
unsigned have_version
Definition: internal.h:1339
U_CDECL_BEGIN typedef void * context
Definition: ustring.h:1023
size_t ssl_private_key_max_signature_len(SSL *ssl)
Definition: ssl_rsa.c:459
int ssl_do_client_cert_cb(SSL *ssl, int *out_should_retry)
Definition: ssl_cert.c:663
const SSL_PRIVATE_KEY_METHOD * key_method
Definition: internal.h:1173
int tls1_handshake_digest(SSL *ssl, uint8_t *out, size_t out_len)
Definition: t1_enc.c:425
void SSL_ECDH_CTX_cleanup(SSL_ECDH_CTX *ctx)
Definition: ssl_ecdh.c:585
int dtls1_get_message(SSL *ssl, int mt, enum ssl_hash_message_t hash_message)
Definition: d1_both.c:396
enum ssl_session_result_t ssl_get_prev_session(SSL *ssl, SSL_SESSION **out_session, int *out_send_ticket, const struct ssl_early_callback_ctx *ctx)
Definition: ssl_session.c:684
size_t alpn_selected_len
Definition: internal.h:1489
int custom_ext_parse_clienthello(SSL *ssl, int *out_alert, uint16_t value, const CBS *extension)
Definition: custom_extensions.c:155
EVP_AEAD_CTX ctx
Definition: internal.h:274
Definition: internal.h:373
char tlsext_channel_id_valid
Definition: internal.h:1495
char variable_nonce_included_in_record
Definition: internal.h:281
Definition: internal.h:1120
uint32_t received
Definition: internal.h:910
int dtls1_check_timeout_num(SSL *ssl)
Definition: d1_lib.c:219
char xor_fixed_nonce
Definition: internal.h:296
uint16_t w_epoch
Definition: internal.h:1549
int ssl3_get_finished(SSL *ssl)
Definition: s3_both.c:291
int dtls1_get_record(SSL *ssl)
Definition: d1_pkt.c:128
int tls1_get_shared_group(SSL *ssl, uint16_t *out_group_id)
Definition: t1_lib.c:325
Definition: internal.h:1217
int ssl3_send_finished(SSL *ssl, int a, int b)
Definition: s3_both.c:242
uint8_t * server_params
Definition: internal.h:966
Definition: internal.h:1162
int tls13_rotate_traffic_key(SSL *ssl, enum evp_aead_direction_t direction)
Definition: tls13_enc.c:279
int ssl3_send_alert(SSL *ssl, int level, int desc)
Definition: s3_pkt.c:451
#define SSL3_RANDOM_SIZE
Definition: ssl3.h:204