webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
Classes | Macros | Typedefs | Enumerations | Functions | Variables
internal.h File Reference
#include <openssl/base.h>
#include <openssl/aead.h>
#include <openssl/ssl.h>
#include <openssl/stack.h>
#include <sys/time.h>

Go to the source code of this file.

Classes

struct  ssl_aead_ctx_st
 
struct  dtls1_bitmap_st
 
struct  ssl_custom_extension
 
struct  ssl_ecdh_method_st
 
struct  dtls_outgoing_message_st
 
struct  ssl_handshake_st
 
struct  cert_st
 
struct  ssl_method_st
 
struct  ssl_protocol_method_st
 
struct  ssl3_enc_method
 
struct  ssl3_record_st
 
struct  ssl3_buffer_st
 
struct  ssl3_state_st
 
struct  hm_header_st
 
struct  hm_fragment_st
 
struct  dtls1_state_st
 

Macros

#define SSL_kRSA   0x00000001L
 
#define SSL_kDHE   0x00000002L
 
#define SSL_kECDHE   0x00000004L
 
#define SSL_kPSK   0x00000008L
 
#define SSL_kCECPQ1   0x00000010L
 
#define SSL_kGENERIC   0x00000020L
 
#define SSL_aRSA   0x00000001L
 
#define SSL_aECDSA   0x00000002L
 
#define SSL_aPSK   0x00000004L
 
#define SSL_aGENERIC   0x00000008L
 
#define SSL_aCERT   (SSL_aRSA | SSL_aECDSA)
 
#define SSL_3DES   0x00000001L
 
#define SSL_AES128   0x00000002L
 
#define SSL_AES256   0x00000004L
 
#define SSL_AES128GCM   0x00000008L
 
#define SSL_AES256GCM   0x00000010L
 
#define SSL_CHACHA20POLY1305_OLD   0x00000020L
 
#define SSL_eNULL   0x00000040L
 
#define SSL_CHACHA20POLY1305   0x00000080L
 
#define SSL_AES   (SSL_AES128 | SSL_AES256 | SSL_AES128GCM | SSL_AES256GCM)
 
#define SSL_MD5   0x00000001L
 
#define SSL_SHA1   0x00000002L
 
#define SSL_SHA256   0x00000004L
 
#define SSL_SHA384   0x00000008L
 
#define SSL_AEAD   0x00000010L
 
#define SSL_HANDSHAKE_MAC_DEFAULT   0x1
 
#define SSL_HANDSHAKE_MAC_SHA256   0x2
 
#define SSL_HANDSHAKE_MAC_SHA384   0x4
 
#define SSL_MAX_DIGEST   4
 
#define SSL_MAX_HANDSHAKE_FLIGHT   7
 
#define TLSEXT_CHANNEL_ID_SIZE   128
 
#define NAMED_CURVE_TYPE   3
 
#define DTLS1_COOKIE_LENGTH   256
 
#define DTLS1_RT_HEADER_LENGTH   13
 
#define DTLS1_HM_HEADER_LENGTH   12
 
#define DTLS1_CCS_HEADER_LENGTH   1
 
#define DTLS1_AL_HEADER_LENGTH   2
 
#define SSL_PSK_KE   0x0
 
#define SSL_PSK_DHE_KE   0x1
 
#define SSL_PSK_AUTH   0x0
 
#define SSL_PSK_SIGN_AUTH   0x1
 
#define SSL_KEY_UPDATE_NOT_REQUESTED   0
 
#define SSL_KEY_UPDATE_REQUESTED   1
 
#define SSL_SESSION_DUP_AUTH_ONLY   0x0
 
#define SSL_SESSION_INCLUDE_TICKET   0x1
 
#define SSL_SESSION_INCLUDE_NONAUTH   0x2
 
#define SSL_SESSION_DUP_ALL   (SSL_SESSION_INCLUDE_TICKET | SSL_SESSION_INCLUDE_NONAUTH)
 
#define tlsext_tick_md   EVP_sha256
 

Typedefs

typedef struct dtls1_bitmap_st DTLS1_BITMAP
 
typedef struct dtls_outgoing_message_st DTLS_OUTGOING_MESSAGE
 
typedef struct cert_st CERT
 
typedef struct ssl3_record_st SSL3_RECORD
 
typedef struct ssl3_buffer_st SSL3_BUFFER
 
typedef struct ssl3_state_st SSL3_STATE
 
typedef struct hm_fragment_st hm_fragment
 
typedef struct dtls1_state_st DTLS1_STATE
 

Enumerations

enum  ssl_open_record_t {
  ssl_open_record_success, ssl_open_record_discard, ssl_open_record_partial, ssl_open_record_close_notify,
  ssl_open_record_fatal_alert, ssl_open_record_error
}
 
enum  dtls1_use_epoch_t { dtls1_use_previous_epoch, dtls1_use_current_epoch }
 
enum  tls_record_type_t { type_early_handshake, type_early_data, type_handshake, type_data }
 
enum  ssl_hs_wait_t {
  ssl_hs_error, ssl_hs_ok, ssl_hs_read_message, ssl_hs_write_message,
  ssl_hs_flush, ssl_hs_flush_and_read_message, ssl_hs_x509_lookup, ssl_hs_channel_id_lookup,
  ssl_hs_private_key_operation
}
 
enum  ssl_cert_verify_context_t { ssl_cert_verify_server, ssl_cert_verify_client, ssl_cert_verify_channel_id }
 
enum  ssl_grease_index_t {
  ssl_grease_cipher = 0, ssl_grease_group, ssl_grease_extension1, ssl_grease_extension2,
  ssl_grease_version, ssl_grease_ticket_extension
}
 
enum  ssl_hash_message_t { ssl_dont_hash_message, ssl_hash_message }
 
enum  ssl_shutdown_t { ssl_shutdown_none = 0, ssl_shutdown_close_notify = 1, ssl_shutdown_fatal_alert = 2 }
 
enum  ssl_session_result_t { ssl_session_success, ssl_session_error, ssl_session_retry }
 

Functions

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)
 
const EVP_MDssl_get_handshake_digest (uint32_t algorithm_prf)
 
 STACK_OF (SSL_CIPHER) *ssl_create_cipher_list(const SSL_PROTOCOL_METHOD *ssl_method
 
uint16_t ssl_cipher_get_value (const SSL_CIPHER *cipher)
 
int ssl_cipher_get_key_type (const SSL_CIPHER *cipher)
 
int ssl_cipher_uses_certificate_auth (const SSL_CIPHER *cipher)
 
int ssl_cipher_requires_server_key_exchange (const SSL_CIPHER *cipher)
 
size_t ssl_cipher_get_record_split_len (const SSL_CIPHER *cipher)
 
SSL_AEAD_CTXSSL_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)
 
void SSL_AEAD_CTX_free (SSL_AEAD_CTX *ctx)
 
size_t SSL_AEAD_CTX_explicit_nonce_len (SSL_AEAD_CTX *ctx)
 
size_t SSL_AEAD_CTX_max_overhead (SSL_AEAD_CTX *ctx)
 
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)
 
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)
 
int ssl_record_sequence_update (uint8_t *seq, size_t seq_len)
 
size_t ssl_record_prefix_len (const SSL *ssl)
 
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)
 
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)
 
size_t ssl_seal_align_prefix_len (const SSL *ssl)
 
size_t ssl_max_seal_overhead (const SSL *ssl)
 
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)
 
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)
 
enum ssl_open_record_t ssl_process_alert (SSL *ssl, uint8_t *out_alert, const uint8_t *in, size_t in_len)
 
int ssl_has_private_key (const SSL *ssl)
 
int ssl_is_ecdsa_key_type (int type)
 
int ssl_private_key_type (SSL *ssl)
 
size_t ssl_private_key_max_signature_len (SSL *ssl)
 
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)
 
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)
 
enum ssl_private_key_result_t ssl_private_key_complete (SSL *ssl, uint8_t *out, size_t *out_len, size_t max_out)
 
int ssl_private_key_supports_signature_algorithm (SSL *ssl, uint16_t signature_algorithm)
 
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)
 
void SSL_CUSTOM_EXTENSION_free (SSL_CUSTOM_EXTENSION *custom_extension)
 
int custom_ext_add_clienthello (SSL *ssl, CBB *extensions)
 
int custom_ext_parse_serverhello (SSL *ssl, int *out_alert, uint16_t value, const CBS *extension)
 
int custom_ext_parse_clienthello (SSL *ssl, int *out_alert, uint16_t value, const CBS *extension)
 
int custom_ext_add_serverhello (SSL *ssl, CBB *extensions)
 
int ssl3_init_handshake_buffer (SSL *ssl)
 
int ssl3_init_handshake_hash (SSL *ssl)
 
void ssl3_free_handshake_buffer (SSL *ssl)
 
void ssl3_free_handshake_hash (SSL *ssl)
 
int ssl3_update_handshake_hash (SSL *ssl, const uint8_t *in, size_t in_len)
 
int ssl_nid_to_group_id (uint16_t *out_group_id, int nid)
 
int ssl_name_to_group_id (uint16_t *out_group_id, const char *name, size_t len)
 
int SSL_ECDH_CTX_init (SSL_ECDH_CTX *ctx, uint16_t group_id)
 
void SSL_ECDH_CTX_init_for_dhe (SSL_ECDH_CTX *ctx, DH *params)
 
void SSL_ECDH_CTX_init_for_cecpq1 (SSL_ECDH_CTX *ctx)
 
void SSL_ECDH_CTX_cleanup (SSL_ECDH_CTX *ctx)
 
uint16_t SSL_ECDH_CTX_get_id (const SSL_ECDH_CTX *ctx)
 
int SSL_ECDH_CTX_get_key (SSL_ECDH_CTX *ctx, CBS *cbs, CBS *out)
 
int SSL_ECDH_CTX_add_key (SSL_ECDH_CTX *ctx, CBB *cbb, CBB *out_contents)
 
int SSL_ECDH_CTX_offer (SSL_ECDH_CTX *ctx, CBB *out_public_key)
 
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)
 
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)
 
size_t ssl_max_handshake_message_len (const SSL *ssl)
 
void dtls_clear_incoming_messages (SSL *ssl)
 
int dtls_has_incoming_messages (const SSL *ssl)
 
void dtls_clear_outgoing_messages (SSL *ssl)
 
void ssl_do_info_callback (const SSL *ssl, int type, int value)
 
void ssl_do_msg_callback (SSL *ssl, int is_write, int content_type, const void *buf, size_t len)
 
uint8_tssl_read_buffer (SSL *ssl)
 
size_t ssl_read_buffer_len (const SSL *ssl)
 
int ssl_read_buffer_extend_to (SSL *ssl, size_t len)
 
void ssl_read_buffer_consume (SSL *ssl, size_t len)
 
void ssl_read_buffer_discard (SSL *ssl)
 
void ssl_read_buffer_clear (SSL *ssl)
 
int ssl_write_buffer_is_pending (const SSL *ssl)
 
int ssl_write_buffer_init (SSL *ssl, uint8_t **out_ptr, size_t max_len)
 
void ssl_write_buffer_set_len (SSL *ssl, size_t len)
 
int ssl_write_buffer_flush (SSL *ssl)
 
void ssl_write_buffer_clear (SSL *ssl)
 
int ssl_has_certificate (const SSL *ssl)
 
 STACK_OF (X509) *ssl_parse_cert_chain(SSL *ssl
 
int ssl_add_cert_to_cbb (CBB *cbb, X509 *x509)
 
int ssl_add_cert_chain (SSL *ssl, CBB *cbb)
 
 STACK_OF (X509_NAME) *ssl_parse_client_CA_list(SSL *ssl
 
int ssl_add_client_CA_list (SSL *ssl, CBB *cbb)
 
int ssl_check_leaf_certificate (SSL *ssl, X509 *leaf)
 
int ssl_do_client_cert_cb (SSL *ssl, int *out_should_retry)
 
int tls13_init_key_schedule (SSL *ssl, const uint8_t *resumption_ctx, size_t resumption_ctx_len)
 
int tls13_advance_key_schedule (SSL *ssl, const uint8_t *in, size_t len)
 
int tls13_get_context_hashes (SSL *ssl, uint8_t *out, size_t *out_len)
 
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)
 
int tls13_set_handshake_traffic (SSL *ssl)
 
int tls13_rotate_traffic_key (SSL *ssl, enum evp_aead_direction_t direction)
 
int tls13_derive_traffic_secret_0 (SSL *ssl)
 
int tls13_finalize_keys (SSL *ssl)
 
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)
 
int tls13_finished_mac (SSL *ssl, uint8_t *out, size_t *out_len, int is_server)
 
int tls13_resumption_psk (SSL *ssl, uint8_t *out, size_t out_len, const SSL_SESSION *session)
 
int tls13_resumption_context (SSL *ssl, uint8_t *out, size_t out_len, const SSL_SESSION *session)
 
SSL_HANDSHAKEssl_handshake_new (enum ssl_hs_wait_t(*do_handshake)(SSL *ssl))
 
void ssl_handshake_free (SSL_HANDSHAKE *hs)
 
int tls13_handshake (SSL *ssl)
 
enum ssl_hs_wait_t tls13_client_handshake (SSL *ssl)
 
enum ssl_hs_wait_t tls13_server_handshake (SSL *ssl)
 
int tls13_post_handshake (SSL *ssl)
 
int tls13_check_message_type (SSL *ssl, int type)
 
int tls13_process_certificate (SSL *ssl, int allow_anonymous)
 
int tls13_process_certificate_verify (SSL *ssl)
 
int tls13_process_finished (SSL *ssl)
 
int tls13_prepare_certificate (SSL *ssl)
 
enum ssl_private_key_result_t tls13_prepare_certificate_verify (SSL *ssl, int is_first_run)
 
int tls13_prepare_finished (SSL *ssl)
 
int tls13_process_new_session_ticket (SSL *ssl)
 
int ssl_ext_key_share_parse_serverhello (SSL *ssl, uint8_t **out_secret, size_t *out_secret_len, uint8_t *out_alert, CBS *contents)
 
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)
 
int ssl_ext_key_share_add_serverhello (SSL *ssl, CBB *out)
 
int ssl_ext_pre_shared_key_parse_serverhello (SSL *ssl, uint8_t *out_alert, CBS *contents)
 
int ssl_ext_pre_shared_key_parse_clienthello (SSL *ssl, SSL_SESSION **out_session, uint8_t *out_alert, CBS *contents)
 
int ssl_ext_pre_shared_key_add_serverhello (SSL *ssl, CBB *out)
 
int ssl_add_client_hello_body (SSL *ssl, CBB *body)
 
void ssl_clear_tls13_state (SSL *ssl)
 
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)
 
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)
 
int ssl_log_secret (const SSL *ssl, const char *label, const uint8_t *secret, size_t secret_len)
 
int ssl_early_callback_init (SSL *ssl, struct ssl_early_callback_ctx *ctx, const uint8_t *in, size_t in_len)
 
int ssl_early_callback_get_extension (const struct ssl_early_callback_ctx *ctx, CBS *out, uint16_t extension_type)
 
int ssl_client_cipher_list_contains_cipher (const struct ssl_early_callback_ctx *client_hello, uint16_t id)
 
uint16_t ssl_get_grease_value (const SSL *ssl, enum ssl_grease_index_t index)
 
int tls1_parse_peer_sigalgs (SSL *ssl, const CBS *sigalgs)
 
int tls1_choose_signature_algorithm (SSL *ssl, uint16_t *out)
 
size_t tls12_get_verify_sigalgs (const SSL *ssl, const uint16_t **out)
 
int tls12_check_peer_sigalg (SSL *ssl, int *out_alert, uint16_t sigalg)
 
CERTssl_cert_new (void)
 
CERTssl_cert_dup (CERT *cert)
 
void ssl_cert_clear_certs (CERT *c)
 
void ssl_cert_free (CERT *c)
 
int ssl_get_new_session (SSL *ssl, int is_server)
 
int ssl_encrypt_ticket (SSL *ssl, CBB *out, const SSL_SESSION *session)
 
int ssl_session_is_context_valid (const SSL *ssl, const SSL_SESSION *session)
 
int ssl_session_is_time_valid (const SSL *ssl, const SSL_SESSION *session)
 
void ssl_set_session (SSL *ssl, SSL_SESSION *session)
 
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)
 
OPENSSL_EXPORT SSL_SESSIONSSL_SESSION_dup (SSL_SESSION *session, int dup_flags)
 
void ssl_cipher_preference_list_free (struct ssl_cipher_preference_list_st *cipher_list)
 
struct ssl_cipher_preference_list_stssl_get_cipher_preferences (SSL *ssl)
 
int ssl_cert_set0_chain (CERT *cert, STACK_OF(X509) *chain)
 
int ssl_cert_set1_chain (CERT *cert, STACK_OF(X509) *chain)
 
int ssl_cert_add0_chain_cert (CERT *cert, X509 *x509)
 
int ssl_cert_add1_chain_cert (CERT *cert, X509 *x509)
 
void ssl_cert_set_cert_cb (CERT *cert, int(*cb)(SSL *ssl, void *arg), void *arg)
 
int ssl_verify_cert_chain (SSL *ssl, long *out_verify_result, STACK_OF(X509) *cert_chain)
 
void ssl_update_cache (SSL *ssl, int mode)
 
void ssl_get_compatible_server_ciphers (SSL *ssl, uint32_t *out_mask_k, uint32_t *out_mask_a)
 
int ssl_verify_alarm_type (long type)
 
int ssl3_get_finished (SSL *ssl)
 
int ssl3_send_change_cipher_spec (SSL *ssl)
 
void ssl3_cleanup_key_block (SSL *ssl)
 
int ssl3_send_alert (SSL *ssl, int level, int desc)
 
int ssl3_get_message (SSL *ssl, int msg_type, enum ssl_hash_message_t hash_message)
 
int ssl3_hash_current_message (SSL *ssl)
 
void ssl3_release_current_message (SSL *ssl, int free_buffer)
 
int ssl3_cert_verify_hash (SSL *ssl, const EVP_MD **out_md, uint8_t *out, size_t *out_len, uint16_t signature_algorithm)
 
int ssl3_send_finished (SSL *ssl, int a, int b)
 
int ssl3_supports_cipher (const SSL_CIPHER *cipher)
 
int ssl3_dispatch_alert (SSL *ssl)
 
int ssl3_read_app_data (SSL *ssl, int *out_got_handshake, uint8_t *buf, int len, int peek)
 
int ssl3_read_change_cipher_spec (SSL *ssl)
 
void ssl3_read_close_notify (SSL *ssl)
 
int ssl3_read_handshake_bytes (SSL *ssl, uint8_t *buf, int len)
 
int ssl3_write_app_data (SSL *ssl, const void *buf, int len)
 
int ssl3_write_bytes (SSL *ssl, int type, const void *buf, int len)
 
int ssl3_output_cert_chain (SSL *ssl)
 
const SSL_CIPHERssl3_choose_cipher (SSL *ssl, const struct ssl_early_callback_ctx *client_hello, const struct ssl_cipher_preference_list_st *srvr)
 
int ssl3_new (SSL *ssl)
 
void ssl3_free (SSL *ssl)
 
int ssl3_accept (SSL *ssl)
 
int ssl3_connect (SSL *ssl)
 
int ssl3_init_message (SSL *ssl, CBB *cbb, CBB *body, uint8_t type)
 
int ssl3_finish_message (SSL *ssl, CBB *cbb)
 
int ssl3_write_message (SSL *ssl)
 
void ssl3_expect_flight (SSL *ssl)
 
void ssl3_received_flight (SSL *ssl)
 
int dtls1_init_message (SSL *ssl, CBB *cbb, CBB *body, uint8_t type)
 
int dtls1_finish_message (SSL *ssl, CBB *cbb)
 
int dtls1_write_message (SSL *ssl)
 
int dtls1_get_record (SSL *ssl)
 
int dtls1_read_app_data (SSL *ssl, int *out_got_handshake, uint8_t *buf, int len, int peek)
 
int dtls1_read_change_cipher_spec (SSL *ssl)
 
void dtls1_read_close_notify (SSL *ssl)
 
int dtls1_write_app_data (SSL *ssl, const void *buf, int len)
 
int dtls1_write_record (SSL *ssl, int type, const uint8_t *buf, size_t len, enum dtls1_use_epoch_t use_epoch)
 
int dtls1_send_change_cipher_spec (SSL *ssl)
 
int dtls1_send_finished (SSL *ssl, int a, int b, const char *sender, int slen)
 
int dtls1_retransmit_outgoing_messages (SSL *ssl)
 
void dtls1_clear_record_buffer (SSL *ssl)
 
int dtls1_parse_fragment (CBS *cbs, struct hm_header_st *out_hdr, CBS *out_body)
 
int dtls1_check_timeout_num (SSL *ssl)
 
int dtls1_handshake_write (SSL *ssl)
 
void dtls1_expect_flight (SSL *ssl)
 
void dtls1_received_flight (SSL *ssl)
 
int dtls1_supports_cipher (const SSL_CIPHER *cipher)
 
void dtls1_start_timer (SSL *ssl)
 
void dtls1_stop_timer (SSL *ssl)
 
int dtls1_is_timer_expired (SSL *ssl)
 
void dtls1_double_timeout (SSL *ssl)
 
unsigned int dtls1_min_mtu (void)
 
int dtls1_new (SSL *ssl)
 
int dtls1_accept (SSL *ssl)
 
int dtls1_connect (SSL *ssl)
 
void dtls1_free (SSL *ssl)
 
int dtls1_get_message (SSL *ssl, int mt, enum ssl_hash_message_t hash_message)
 
int dtls1_hash_current_message (SSL *ssl)
 
void dtls1_release_current_message (SSL *ssl, int free_buffer)
 
int dtls1_dispatch_alert (SSL *ssl)
 
int ssl_is_wbio_buffered (const SSL *ssl)
 
int ssl_init_wbio_buffer (SSL *ssl)
 
void ssl_free_wbio_buffer (SSL *ssl)
 
int tls1_change_cipher_state (SSL *ssl, int which)
 
int tls1_setup_key_block (SSL *ssl)
 
int tls1_handshake_digest (SSL *ssl, uint8_t *out, size_t out_len)
 
int tls1_generate_master_secret (SSL *ssl, uint8_t *out, const uint8_t *premaster, size_t premaster_len)
 
void tls1_get_grouplist (SSL *ssl, const uint16_t **out_group_ids, size_t *out_group_ids_len)
 
int tls1_check_group_id (SSL *ssl, uint16_t group_id)
 
int tls1_get_shared_group (SSL *ssl, uint16_t *out_group_id)
 
int tls1_set_curves (uint16_t **out_group_ids, size_t *out_group_ids_len, const int *curves, size_t ncurves)
 
int tls1_set_curves_list (uint16_t **out_group_ids, size_t *out_group_ids_len, const char *curves)
 
int ssl_add_clienthello_tlsext (SSL *ssl, CBB *out, size_t header_len)
 
int ssl_add_serverhello_tlsext (SSL *ssl, CBB *out)
 
int ssl_parse_clienthello_tlsext (SSL *ssl, const struct ssl_early_callback_ctx *client_hello)
 
int ssl_parse_serverhello_tlsext (SSL *ssl, CBS *cbs)
 
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)
 
int tls1_verify_channel_id (SSL *ssl)
 
int tls1_write_channel_id (SSL *ssl, CBB *cbb)
 
int tls1_channel_id_hash (SSL *ssl, uint8_t *out, size_t *out_len)
 
int tls1_record_handshake_hashes_for_channel_id (SSL *ssl)
 
int ssl_do_channel_id_callback (SSL *ssl)
 
int ssl3_can_false_start (const SSL *ssl)
 
const SSL3_ENC_METHODssl3_get_enc_method (uint16_t version)
 
int ssl_get_version_range (const SSL *ssl, uint16_t *out_min_version, uint16_t *out_max_version)
 
uint16_t ssl3_protocol_version (const SSL *ssl)
 
uint32_t ssl_get_algorithm_prf (const SSL *ssl)
 
void ssl_set_client_disabled (SSL *ssl)
 
void ssl_get_current_time (const SSL *ssl, struct timeval *out_clock)
 

Variables

struct ssl_cipher_preference_list_st ** out_cipher_list
 
struct ssl_cipher_preference_list_st const char * rule_str
 
uint8_tout_alert
 
uint8_t uint8_tout_leaf_sha256
 
uint8_t uint8_t CBScbs
 
const SSL3_ENC_METHOD TLSv1_enc_data
 
const SSL3_ENC_METHOD SSLv3_enc_data
 

Macro Definition Documentation

◆ DTLS1_AL_HEADER_LENGTH

#define DTLS1_AL_HEADER_LENGTH   2

◆ DTLS1_CCS_HEADER_LENGTH

#define DTLS1_CCS_HEADER_LENGTH   1

◆ DTLS1_COOKIE_LENGTH

#define DTLS1_COOKIE_LENGTH   256

◆ DTLS1_HM_HEADER_LENGTH

#define DTLS1_HM_HEADER_LENGTH   12

◆ DTLS1_RT_HEADER_LENGTH

#define DTLS1_RT_HEADER_LENGTH   13

◆ NAMED_CURVE_TYPE

#define NAMED_CURVE_TYPE   3

◆ SSL_3DES

#define SSL_3DES   0x00000001L

◆ SSL_aCERT

#define SSL_aCERT   (SSL_aRSA | SSL_aECDSA)

◆ SSL_AEAD

#define SSL_AEAD   0x00000010L

◆ SSL_aECDSA

#define SSL_aECDSA   0x00000002L

◆ SSL_AES

#define SSL_AES   (SSL_AES128 | SSL_AES256 | SSL_AES128GCM | SSL_AES256GCM)

◆ SSL_AES128

#define SSL_AES128   0x00000002L

◆ SSL_AES128GCM

#define SSL_AES128GCM   0x00000008L

◆ SSL_AES256

#define SSL_AES256   0x00000004L

◆ SSL_AES256GCM

#define SSL_AES256GCM   0x00000010L

◆ SSL_aGENERIC

#define SSL_aGENERIC   0x00000008L

◆ SSL_aPSK

#define SSL_aPSK   0x00000004L

◆ SSL_aRSA

#define SSL_aRSA   0x00000001L

◆ SSL_CHACHA20POLY1305

#define SSL_CHACHA20POLY1305   0x00000080L

◆ SSL_CHACHA20POLY1305_OLD

#define SSL_CHACHA20POLY1305_OLD   0x00000020L

◆ SSL_eNULL

#define SSL_eNULL   0x00000040L

◆ SSL_HANDSHAKE_MAC_DEFAULT

#define SSL_HANDSHAKE_MAC_DEFAULT   0x1

◆ SSL_HANDSHAKE_MAC_SHA256

#define SSL_HANDSHAKE_MAC_SHA256   0x2

◆ SSL_HANDSHAKE_MAC_SHA384

#define SSL_HANDSHAKE_MAC_SHA384   0x4

◆ SSL_kCECPQ1

#define SSL_kCECPQ1   0x00000010L

◆ SSL_kDHE

#define SSL_kDHE   0x00000002L

◆ SSL_kECDHE

#define SSL_kECDHE   0x00000004L

◆ SSL_KEY_UPDATE_NOT_REQUESTED

#define SSL_KEY_UPDATE_NOT_REQUESTED   0

◆ SSL_KEY_UPDATE_REQUESTED

#define SSL_KEY_UPDATE_REQUESTED   1

◆ SSL_kGENERIC

#define SSL_kGENERIC   0x00000020L

◆ SSL_kPSK

#define SSL_kPSK   0x00000008L

◆ SSL_kRSA

#define SSL_kRSA   0x00000001L

◆ SSL_MAX_DIGEST

#define SSL_MAX_DIGEST   4

◆ SSL_MAX_HANDSHAKE_FLIGHT

#define SSL_MAX_HANDSHAKE_FLIGHT   7

◆ SSL_MD5

#define SSL_MD5   0x00000001L

◆ SSL_PSK_AUTH

#define SSL_PSK_AUTH   0x0

◆ SSL_PSK_DHE_KE

#define SSL_PSK_DHE_KE   0x1

◆ SSL_PSK_KE

#define SSL_PSK_KE   0x0

◆ SSL_PSK_SIGN_AUTH

#define SSL_PSK_SIGN_AUTH   0x1

◆ SSL_SESSION_DUP_ALL

#define SSL_SESSION_DUP_ALL   (SSL_SESSION_INCLUDE_TICKET | SSL_SESSION_INCLUDE_NONAUTH)

◆ SSL_SESSION_DUP_AUTH_ONLY

#define SSL_SESSION_DUP_AUTH_ONLY   0x0

◆ SSL_SESSION_INCLUDE_NONAUTH

#define SSL_SESSION_INCLUDE_NONAUTH   0x2

◆ SSL_SESSION_INCLUDE_TICKET

#define SSL_SESSION_INCLUDE_TICKET   0x1

◆ SSL_SHA1

#define SSL_SHA1   0x00000002L

◆ SSL_SHA256

#define SSL_SHA256   0x00000004L

◆ SSL_SHA384

#define SSL_SHA384   0x00000008L

◆ TLSEXT_CHANNEL_ID_SIZE

#define TLSEXT_CHANNEL_ID_SIZE   128

◆ tlsext_tick_md

#define tlsext_tick_md   EVP_sha256

Typedef Documentation

◆ CERT

◆ DTLS1_BITMAP

◆ DTLS1_STATE

◆ DTLS_OUTGOING_MESSAGE

◆ hm_fragment

◆ SSL3_BUFFER

◆ SSL3_RECORD

◆ SSL3_STATE

Enumeration Type Documentation

◆ dtls1_use_epoch_t

Enumerator
dtls1_use_previous_epoch 
dtls1_use_current_epoch 

◆ ssl_cert_verify_context_t

Enumerator
ssl_cert_verify_server 
ssl_cert_verify_client 
ssl_cert_verify_channel_id 

◆ ssl_grease_index_t

Enumerator
ssl_grease_cipher 
ssl_grease_group 
ssl_grease_extension1 
ssl_grease_extension2 
ssl_grease_version 
ssl_grease_ticket_extension 

◆ ssl_hash_message_t

Enumerator
ssl_dont_hash_message 
ssl_hash_message 

◆ ssl_hs_wait_t

Enumerator
ssl_hs_error 
ssl_hs_ok 
ssl_hs_read_message 
ssl_hs_write_message 
ssl_hs_flush 
ssl_hs_flush_and_read_message 
ssl_hs_x509_lookup 
ssl_hs_channel_id_lookup 
ssl_hs_private_key_operation 

◆ ssl_open_record_t

Enumerator
ssl_open_record_success 
ssl_open_record_discard 
ssl_open_record_partial 
ssl_open_record_close_notify 
ssl_open_record_fatal_alert 
ssl_open_record_error 

◆ ssl_session_result_t

Enumerator
ssl_session_success 
ssl_session_error 
ssl_session_retry 

◆ ssl_shutdown_t

Enumerator
ssl_shutdown_none 
ssl_shutdown_close_notify 
ssl_shutdown_fatal_alert 

◆ tls_record_type_t

Enumerator
type_early_handshake 
type_early_data 
type_handshake 
type_data 

Function Documentation

◆ custom_ext_add_clienthello()

int custom_ext_add_clienthello ( SSL ssl,
CBB extensions 
)

◆ custom_ext_add_serverhello()

int custom_ext_add_serverhello ( SSL ssl,
CBB extensions 
)

◆ custom_ext_parse_clienthello()

int custom_ext_parse_clienthello ( SSL ssl,
int *  out_alert,
uint16_t  value,
const CBS extension 
)

◆ custom_ext_parse_serverhello()

int custom_ext_parse_serverhello ( SSL ssl,
int *  out_alert,
uint16_t  value,
const CBS extension 
)

◆ dtls1_accept()

int dtls1_accept ( SSL ssl)

◆ dtls1_check_timeout_num()

int dtls1_check_timeout_num ( SSL ssl)

◆ dtls1_clear_record_buffer()

void dtls1_clear_record_buffer ( SSL ssl)

◆ dtls1_connect()

int dtls1_connect ( SSL ssl)

◆ dtls1_dispatch_alert()

int dtls1_dispatch_alert ( SSL ssl)

◆ dtls1_double_timeout()

void dtls1_double_timeout ( SSL ssl)

◆ dtls1_expect_flight()

void dtls1_expect_flight ( SSL ssl)

◆ dtls1_finish_message()

int dtls1_finish_message ( SSL ssl,
CBB cbb 
)

◆ dtls1_free()

void dtls1_free ( SSL ssl)

◆ dtls1_get_message()

int dtls1_get_message ( SSL ssl,
int  mt,
enum ssl_hash_message_t  hash_message 
)

◆ dtls1_get_record()

int dtls1_get_record ( SSL ssl)

◆ dtls1_handshake_write()

int dtls1_handshake_write ( SSL ssl)

◆ dtls1_hash_current_message()

int dtls1_hash_current_message ( SSL ssl)

◆ dtls1_init_message()

int dtls1_init_message ( SSL ssl,
CBB cbb,
CBB body,
uint8_t  type 
)

◆ dtls1_is_timer_expired()

int dtls1_is_timer_expired ( SSL ssl)

◆ dtls1_min_mtu()

unsigned int dtls1_min_mtu ( void  )

◆ dtls1_new()

int dtls1_new ( SSL ssl)

◆ dtls1_parse_fragment()

int dtls1_parse_fragment ( CBS cbs,
struct hm_header_st out_hdr,
CBS out_body 
)

◆ dtls1_read_app_data()

int dtls1_read_app_data ( SSL ssl,
int *  out_got_handshake,
uint8_t buf,
int  len,
int  peek 
)

◆ dtls1_read_change_cipher_spec()

int dtls1_read_change_cipher_spec ( SSL ssl)

◆ dtls1_read_close_notify()

void dtls1_read_close_notify ( SSL ssl)

◆ dtls1_received_flight()

void dtls1_received_flight ( SSL ssl)

◆ dtls1_release_current_message()

void dtls1_release_current_message ( SSL ssl,
int  free_buffer 
)

◆ dtls1_retransmit_outgoing_messages()

int dtls1_retransmit_outgoing_messages ( SSL ssl)

◆ dtls1_send_change_cipher_spec()

int dtls1_send_change_cipher_spec ( SSL ssl)

◆ dtls1_send_finished()

int dtls1_send_finished ( SSL ssl,
int  a,
int  b,
const char *  sender,
int  slen 
)

◆ dtls1_start_timer()

void dtls1_start_timer ( SSL ssl)

◆ dtls1_stop_timer()

void dtls1_stop_timer ( SSL ssl)

◆ dtls1_supports_cipher()

int dtls1_supports_cipher ( const SSL_CIPHER cipher)

◆ dtls1_write_app_data()

int dtls1_write_app_data ( SSL ssl,
const void buf,
int  len 
)

◆ dtls1_write_message()

int dtls1_write_message ( SSL ssl)

◆ dtls1_write_record()

int dtls1_write_record ( SSL ssl,
int  type,
const uint8_t buf,
size_t  len,
enum dtls1_use_epoch_t  use_epoch 
)

◆ dtls_clear_incoming_messages()

void dtls_clear_incoming_messages ( SSL ssl)

◆ dtls_clear_outgoing_messages()

void dtls_clear_outgoing_messages ( SSL ssl)

◆ dtls_has_incoming_messages()

int dtls_has_incoming_messages ( const SSL ssl)

◆ dtls_open_record()

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 
)

◆ dtls_seal_record()

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 
)

◆ ssl3_accept()

int ssl3_accept ( SSL ssl)

◆ ssl3_can_false_start()

int ssl3_can_false_start ( const SSL ssl)

◆ ssl3_cert_verify_hash()

int ssl3_cert_verify_hash ( SSL ssl,
const EVP_MD **  out_md,
uint8_t out,
size_t out_len,
uint16_t  signature_algorithm 
)

◆ ssl3_choose_cipher()

const SSL_CIPHER* ssl3_choose_cipher ( SSL ssl,
const struct ssl_early_callback_ctx client_hello,
const struct ssl_cipher_preference_list_st srvr 
)

◆ ssl3_cleanup_key_block()

void ssl3_cleanup_key_block ( SSL ssl)

◆ ssl3_connect()

int ssl3_connect ( SSL ssl)

◆ ssl3_dispatch_alert()

int ssl3_dispatch_alert ( SSL ssl)

◆ ssl3_expect_flight()

void ssl3_expect_flight ( SSL ssl)

◆ ssl3_finish_message()

int ssl3_finish_message ( SSL ssl,
CBB cbb 
)

◆ ssl3_free()

void ssl3_free ( SSL ssl)

◆ ssl3_free_handshake_buffer()

void ssl3_free_handshake_buffer ( SSL ssl)

◆ ssl3_free_handshake_hash()

void ssl3_free_handshake_hash ( SSL ssl)

◆ ssl3_get_enc_method()

const SSL3_ENC_METHOD* ssl3_get_enc_method ( uint16_t  version)

◆ ssl3_get_finished()

int ssl3_get_finished ( SSL ssl)

◆ ssl3_get_message()

int ssl3_get_message ( SSL ssl,
int  msg_type,
enum ssl_hash_message_t  hash_message 
)

◆ ssl3_hash_current_message()

int ssl3_hash_current_message ( SSL ssl)

◆ ssl3_init_handshake_buffer()

int ssl3_init_handshake_buffer ( SSL ssl)

◆ ssl3_init_handshake_hash()

int ssl3_init_handshake_hash ( SSL ssl)

◆ ssl3_init_message()

int ssl3_init_message ( SSL ssl,
CBB cbb,
CBB body,
uint8_t  type 
)

◆ ssl3_new()

int ssl3_new ( SSL ssl)

◆ ssl3_output_cert_chain()

int ssl3_output_cert_chain ( SSL ssl)

◆ ssl3_protocol_version()

uint16_t ssl3_protocol_version ( const SSL ssl)

◆ ssl3_read_app_data()

int ssl3_read_app_data ( SSL ssl,
int *  out_got_handshake,
uint8_t buf,
int  len,
int  peek 
)

◆ ssl3_read_change_cipher_spec()

int ssl3_read_change_cipher_spec ( SSL ssl)

◆ ssl3_read_close_notify()

void ssl3_read_close_notify ( SSL ssl)

◆ ssl3_read_handshake_bytes()

int ssl3_read_handshake_bytes ( SSL ssl,
uint8_t buf,
int  len 
)

◆ ssl3_received_flight()

void ssl3_received_flight ( SSL ssl)

◆ ssl3_release_current_message()

void ssl3_release_current_message ( SSL ssl,
int  free_buffer 
)

◆ ssl3_send_alert()

int ssl3_send_alert ( SSL ssl,
int  level,
int  desc 
)

◆ ssl3_send_change_cipher_spec()

int ssl3_send_change_cipher_spec ( SSL ssl)

◆ ssl3_send_finished()

int ssl3_send_finished ( SSL ssl,
int  a,
int  b 
)

◆ ssl3_supports_cipher()

int ssl3_supports_cipher ( const SSL_CIPHER cipher)

◆ ssl3_update_handshake_hash()

int ssl3_update_handshake_hash ( SSL ssl,
const uint8_t in,
size_t  in_len 
)

◆ ssl3_write_app_data()

int ssl3_write_app_data ( SSL ssl,
const void buf,
int  len 
)

◆ ssl3_write_bytes()

int ssl3_write_bytes ( SSL ssl,
int  type,
const void buf,
int  len 
)

◆ ssl3_write_message()

int ssl3_write_message ( SSL ssl)

◆ ssl_add_cert_chain()

int ssl_add_cert_chain ( SSL ssl,
CBB cbb 
)

◆ ssl_add_cert_to_cbb()

int ssl_add_cert_to_cbb ( CBB cbb,
X509 x509 
)

◆ ssl_add_client_CA_list()

int ssl_add_client_CA_list ( SSL ssl,
CBB cbb 
)

◆ ssl_add_client_hello_body()

int ssl_add_client_hello_body ( SSL ssl,
CBB body 
)

◆ ssl_add_clienthello_tlsext()

int ssl_add_clienthello_tlsext ( SSL ssl,
CBB out,
size_t  header_len 
)

◆ ssl_add_serverhello_tlsext()

int ssl_add_serverhello_tlsext ( SSL ssl,
CBB out 
)

◆ SSL_AEAD_CTX_explicit_nonce_len()

size_t SSL_AEAD_CTX_explicit_nonce_len ( SSL_AEAD_CTX ctx)

◆ SSL_AEAD_CTX_free()

void SSL_AEAD_CTX_free ( SSL_AEAD_CTX ctx)

◆ SSL_AEAD_CTX_max_overhead()

size_t SSL_AEAD_CTX_max_overhead ( SSL_AEAD_CTX ctx)

◆ SSL_AEAD_CTX_new()

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 
)

◆ SSL_AEAD_CTX_open()

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 
)

◆ SSL_AEAD_CTX_seal()

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 
)

◆ ssl_cert_add0_chain_cert()

int ssl_cert_add0_chain_cert ( CERT cert,
X509 x509 
)

◆ ssl_cert_add1_chain_cert()

int ssl_cert_add1_chain_cert ( CERT cert,
X509 x509 
)

◆ ssl_cert_clear_certs()

void ssl_cert_clear_certs ( CERT c)

◆ ssl_cert_dup()

CERT* ssl_cert_dup ( CERT cert)

◆ ssl_cert_free()

void ssl_cert_free ( CERT c)

◆ ssl_cert_new()

CERT* ssl_cert_new ( void  )

◆ ssl_cert_set0_chain()

int ssl_cert_set0_chain ( CERT cert,
STACK_OF(X509) *  chain 
)

◆ ssl_cert_set1_chain()

int ssl_cert_set1_chain ( CERT cert,
STACK_OF(X509) *  chain 
)

◆ ssl_cert_set_cert_cb()

void ssl_cert_set_cert_cb ( CERT cert,
int(*)(SSL *ssl, void *arg)  cb,
void arg 
)

◆ ssl_check_leaf_certificate()

int ssl_check_leaf_certificate ( SSL ssl,
X509 leaf 
)

◆ ssl_cipher_get_evp_aead()

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 
)

◆ ssl_cipher_get_key_type()

int ssl_cipher_get_key_type ( const SSL_CIPHER cipher)

◆ ssl_cipher_get_record_split_len()

size_t ssl_cipher_get_record_split_len ( const SSL_CIPHER cipher)

◆ ssl_cipher_get_value()

uint16_t ssl_cipher_get_value ( const SSL_CIPHER cipher)

◆ ssl_cipher_preference_list_free()

void ssl_cipher_preference_list_free ( struct ssl_cipher_preference_list_st cipher_list)

◆ ssl_cipher_requires_server_key_exchange()

int ssl_cipher_requires_server_key_exchange ( const SSL_CIPHER cipher)

◆ ssl_cipher_uses_certificate_auth()

int ssl_cipher_uses_certificate_auth ( const SSL_CIPHER cipher)

◆ ssl_clear_tls13_state()

void ssl_clear_tls13_state ( SSL ssl)

◆ ssl_client_cipher_list_contains_cipher()

int ssl_client_cipher_list_contains_cipher ( const struct ssl_early_callback_ctx client_hello,
uint16_t  id 
)

◆ SSL_CUSTOM_EXTENSION_free()

void SSL_CUSTOM_EXTENSION_free ( SSL_CUSTOM_EXTENSION custom_extension)

◆ ssl_do_channel_id_callback()

int ssl_do_channel_id_callback ( SSL ssl)

◆ ssl_do_client_cert_cb()

int ssl_do_client_cert_cb ( SSL ssl,
int *  out_should_retry 
)

◆ ssl_do_info_callback()

void ssl_do_info_callback ( const SSL ssl,
int  type,
int  value 
)

◆ ssl_do_msg_callback()

void ssl_do_msg_callback ( SSL ssl,
int  is_write,
int  content_type,
const void buf,
size_t  len 
)

◆ ssl_early_callback_get_extension()

int ssl_early_callback_get_extension ( const struct ssl_early_callback_ctx ctx,
CBS out,
uint16_t  extension_type 
)

◆ ssl_early_callback_init()

int ssl_early_callback_init ( SSL ssl,
struct ssl_early_callback_ctx ctx,
const uint8_t in,
size_t  in_len 
)

◆ SSL_ECDH_CTX_accept()

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 
)

◆ SSL_ECDH_CTX_add_key()

int SSL_ECDH_CTX_add_key ( SSL_ECDH_CTX ctx,
CBB cbb,
CBB out_contents 
)

◆ SSL_ECDH_CTX_cleanup()

void SSL_ECDH_CTX_cleanup ( SSL_ECDH_CTX ctx)

◆ SSL_ECDH_CTX_finish()

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 
)

◆ SSL_ECDH_CTX_get_id()

uint16_t SSL_ECDH_CTX_get_id ( const SSL_ECDH_CTX ctx)

◆ SSL_ECDH_CTX_get_key()

int SSL_ECDH_CTX_get_key ( SSL_ECDH_CTX ctx,
CBS cbs,
CBS out 
)

◆ SSL_ECDH_CTX_init()

int SSL_ECDH_CTX_init ( SSL_ECDH_CTX ctx,
uint16_t  group_id 
)

◆ SSL_ECDH_CTX_init_for_cecpq1()

void SSL_ECDH_CTX_init_for_cecpq1 ( SSL_ECDH_CTX ctx)

◆ SSL_ECDH_CTX_init_for_dhe()

void SSL_ECDH_CTX_init_for_dhe ( SSL_ECDH_CTX ctx,
DH params 
)

◆ SSL_ECDH_CTX_offer()

int SSL_ECDH_CTX_offer ( SSL_ECDH_CTX ctx,
CBB out_public_key 
)

◆ ssl_encrypt_ticket()

int ssl_encrypt_ticket ( SSL ssl,
CBB out,
const SSL_SESSION session 
)

◆ ssl_ext_key_share_add_serverhello()

int ssl_ext_key_share_add_serverhello ( SSL ssl,
CBB out 
)

◆ ssl_ext_key_share_parse_clienthello()

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 
)

◆ ssl_ext_key_share_parse_serverhello()

int ssl_ext_key_share_parse_serverhello ( SSL ssl,
uint8_t **  out_secret,
size_t out_secret_len,
uint8_t out_alert,
CBS contents 
)

◆ ssl_ext_pre_shared_key_add_serverhello()

int ssl_ext_pre_shared_key_add_serverhello ( SSL ssl,
CBB out 
)

◆ ssl_ext_pre_shared_key_parse_clienthello()

int ssl_ext_pre_shared_key_parse_clienthello ( SSL ssl,
SSL_SESSION **  out_session,
uint8_t out_alert,
CBS contents 
)

◆ ssl_ext_pre_shared_key_parse_serverhello()

int ssl_ext_pre_shared_key_parse_serverhello ( SSL ssl,
uint8_t out_alert,
CBS contents 
)

◆ ssl_free_wbio_buffer()

void ssl_free_wbio_buffer ( SSL ssl)

◆ ssl_get_algorithm_prf()

uint32_t ssl_get_algorithm_prf ( const SSL ssl)

◆ ssl_get_cipher_preferences()

struct ssl_cipher_preference_list_st* ssl_get_cipher_preferences ( SSL ssl)

◆ ssl_get_compatible_server_ciphers()

void ssl_get_compatible_server_ciphers ( SSL ssl,
uint32_t out_mask_k,
uint32_t out_mask_a 
)

◆ ssl_get_current_time()

void ssl_get_current_time ( const SSL ssl,
struct timeval *  out_clock 
)

◆ ssl_get_grease_value()

uint16_t ssl_get_grease_value ( const SSL ssl,
enum ssl_grease_index_t  index 
)

◆ ssl_get_handshake_digest()

const EVP_MD* ssl_get_handshake_digest ( uint32_t  algorithm_prf)

◆ ssl_get_new_session()

int ssl_get_new_session ( SSL ssl,
int  is_server 
)

◆ ssl_get_prev_session()

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 
)

◆ ssl_get_version_range()

int ssl_get_version_range ( const SSL ssl,
uint16_t out_min_version,
uint16_t out_max_version 
)

◆ ssl_handshake_free()

void ssl_handshake_free ( SSL_HANDSHAKE hs)

◆ ssl_handshake_new()

SSL_HANDSHAKE* ssl_handshake_new ( enum ssl_hs_wait_t(*)(SSL *ssl)  do_handshake)

◆ ssl_has_certificate()

int ssl_has_certificate ( const SSL ssl)

◆ ssl_has_private_key()

int ssl_has_private_key ( const SSL ssl)

◆ ssl_init_wbio_buffer()

int ssl_init_wbio_buffer ( SSL ssl)

◆ ssl_is_ecdsa_key_type()

int ssl_is_ecdsa_key_type ( int  type)

◆ ssl_is_wbio_buffered()

int ssl_is_wbio_buffered ( const SSL ssl)

◆ ssl_log_rsa_client_key_exchange()

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 
)

◆ ssl_log_secret()

int ssl_log_secret ( const SSL ssl,
const char *  label,
const uint8_t secret,
size_t  secret_len 
)

◆ ssl_max_handshake_message_len()

size_t ssl_max_handshake_message_len ( const SSL ssl)

◆ ssl_max_seal_overhead()

size_t ssl_max_seal_overhead ( const SSL ssl)

◆ ssl_name_to_group_id()

int ssl_name_to_group_id ( uint16_t out_group_id,
const char *  name,
size_t  len 
)

◆ ssl_nid_to_group_id()

int ssl_nid_to_group_id ( uint16_t out_group_id,
int  nid 
)

◆ ssl_parse_clienthello_tlsext()

int ssl_parse_clienthello_tlsext ( SSL ssl,
const struct ssl_early_callback_ctx client_hello 
)

◆ ssl_parse_serverhello_tlsext()

int ssl_parse_serverhello_tlsext ( SSL ssl,
CBS cbs 
)

◆ ssl_private_key_complete()

enum ssl_private_key_result_t ssl_private_key_complete ( SSL ssl,
uint8_t out,
size_t out_len,
size_t  max_out 
)

◆ ssl_private_key_decrypt()

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 
)

◆ ssl_private_key_max_signature_len()

size_t ssl_private_key_max_signature_len ( SSL ssl)

◆ ssl_private_key_sign()

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 
)

◆ ssl_private_key_supports_signature_algorithm()

int ssl_private_key_supports_signature_algorithm ( SSL ssl,
uint16_t  signature_algorithm 
)

◆ ssl_private_key_type()

int ssl_private_key_type ( SSL ssl)

◆ ssl_process_alert()

enum ssl_open_record_t ssl_process_alert ( SSL ssl,
uint8_t out_alert,
const uint8_t in,
size_t  in_len 
)

◆ ssl_public_key_verify()

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 
)

◆ ssl_read_buffer()

uint8_t* ssl_read_buffer ( SSL ssl)

◆ ssl_read_buffer_clear()

void ssl_read_buffer_clear ( SSL ssl)

◆ ssl_read_buffer_consume()

void ssl_read_buffer_consume ( SSL ssl,
size_t  len 
)

◆ ssl_read_buffer_discard()

void ssl_read_buffer_discard ( SSL ssl)

◆ ssl_read_buffer_extend_to()

int ssl_read_buffer_extend_to ( SSL ssl,
size_t  len 
)

◆ ssl_read_buffer_len()

size_t ssl_read_buffer_len ( const SSL ssl)

◆ ssl_record_prefix_len()

size_t ssl_record_prefix_len ( const SSL ssl)

◆ ssl_record_sequence_update()

int ssl_record_sequence_update ( uint8_t seq,
size_t  seq_len 
)

◆ ssl_seal_align_prefix_len()

size_t ssl_seal_align_prefix_len ( const SSL ssl)

◆ SSL_SESSION_dup()

OPENSSL_EXPORT SSL_SESSION* SSL_SESSION_dup ( SSL_SESSION session,
int  dup_flags 
)

◆ ssl_session_is_context_valid()

int ssl_session_is_context_valid ( const SSL ssl,
const SSL_SESSION session 
)

◆ ssl_session_is_time_valid()

int ssl_session_is_time_valid ( const SSL ssl,
const SSL_SESSION session 
)

◆ ssl_set_client_disabled()

void ssl_set_client_disabled ( SSL ssl)

◆ ssl_set_session()

void ssl_set_session ( SSL ssl,
SSL_SESSION session 
)

◆ ssl_update_cache()

void ssl_update_cache ( SSL ssl,
int  mode 
)

◆ ssl_verify_alarm_type()

int ssl_verify_alarm_type ( long  type)

◆ ssl_verify_cert_chain()

int ssl_verify_cert_chain ( SSL ssl,
long *  out_verify_result,
STACK_OF(X509) *  cert_chain 
)

◆ ssl_write_buffer_clear()

void ssl_write_buffer_clear ( SSL ssl)

◆ ssl_write_buffer_flush()

int ssl_write_buffer_flush ( SSL ssl)

◆ ssl_write_buffer_init()

int ssl_write_buffer_init ( SSL ssl,
uint8_t **  out_ptr,
size_t  max_len 
)

◆ ssl_write_buffer_is_pending()

int ssl_write_buffer_is_pending ( const SSL ssl)

◆ ssl_write_buffer_set_len()

void ssl_write_buffer_set_len ( SSL ssl,
size_t  len 
)

◆ STACK_OF() [1/3]

STACK_OF ( SSL_CIPHER  ) const

◆ STACK_OF() [2/3]

STACK_OF ( X509  )

◆ STACK_OF() [3/3]

STACK_OF ( X509_NAME  )

◆ tls12_check_peer_sigalg()

int tls12_check_peer_sigalg ( SSL ssl,
int *  out_alert,
uint16_t  sigalg 
)

◆ tls12_get_verify_sigalgs()

size_t tls12_get_verify_sigalgs ( const SSL ssl,
const uint16_t **  out 
)

◆ tls13_advance_key_schedule()

int tls13_advance_key_schedule ( SSL ssl,
const uint8_t in,
size_t  len 
)

◆ tls13_check_message_type()

int tls13_check_message_type ( SSL ssl,
int  type 
)

◆ tls13_client_handshake()

enum ssl_hs_wait_t tls13_client_handshake ( SSL ssl)

◆ tls13_derive_traffic_secret_0()

int tls13_derive_traffic_secret_0 ( SSL ssl)

◆ tls13_export_keying_material()

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 
)

◆ tls13_finalize_keys()

int tls13_finalize_keys ( SSL ssl)

◆ tls13_finished_mac()

int tls13_finished_mac ( SSL ssl,
uint8_t out,
size_t out_len,
int  is_server 
)

◆ tls13_get_cert_verify_signature_input()

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 
)

◆ tls13_get_context_hashes()

int tls13_get_context_hashes ( SSL ssl,
uint8_t out,
size_t out_len 
)

◆ tls13_handshake()

int tls13_handshake ( SSL ssl)

◆ tls13_init_key_schedule()

int tls13_init_key_schedule ( SSL ssl,
const uint8_t resumption_ctx,
size_t  resumption_ctx_len 
)

◆ tls13_post_handshake()

int tls13_post_handshake ( SSL ssl)

◆ tls13_prepare_certificate()

int tls13_prepare_certificate ( SSL ssl)

◆ tls13_prepare_certificate_verify()

enum ssl_private_key_result_t tls13_prepare_certificate_verify ( SSL ssl,
int  is_first_run 
)

◆ tls13_prepare_finished()

int tls13_prepare_finished ( SSL ssl)

◆ tls13_process_certificate()

int tls13_process_certificate ( SSL ssl,
int  allow_anonymous 
)

◆ tls13_process_certificate_verify()

int tls13_process_certificate_verify ( SSL ssl)

◆ tls13_process_finished()

int tls13_process_finished ( SSL ssl)

◆ tls13_process_new_session_ticket()

int tls13_process_new_session_ticket ( SSL ssl)

◆ tls13_resumption_context()

int tls13_resumption_context ( SSL ssl,
uint8_t out,
size_t  out_len,
const SSL_SESSION session 
)

◆ tls13_resumption_psk()

int tls13_resumption_psk ( SSL ssl,
uint8_t out,
size_t  out_len,
const SSL_SESSION session 
)

◆ tls13_rotate_traffic_key()

int tls13_rotate_traffic_key ( SSL ssl,
enum evp_aead_direction_t  direction 
)

◆ tls13_server_handshake()

enum ssl_hs_wait_t tls13_server_handshake ( SSL ssl)

◆ tls13_set_handshake_traffic()

int tls13_set_handshake_traffic ( SSL ssl)

◆ tls13_set_traffic_key()

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 
)

◆ tls1_change_cipher_state()

int tls1_change_cipher_state ( SSL ssl,
int  which 
)

◆ tls1_channel_id_hash()

int tls1_channel_id_hash ( SSL ssl,
uint8_t out,
size_t out_len 
)

◆ tls1_check_group_id()

int tls1_check_group_id ( SSL ssl,
uint16_t  group_id 
)

◆ tls1_choose_signature_algorithm()

int tls1_choose_signature_algorithm ( SSL ssl,
uint16_t out 
)

◆ tls1_generate_master_secret()

int tls1_generate_master_secret ( SSL ssl,
uint8_t out,
const uint8_t premaster,
size_t  premaster_len 
)

◆ tls1_get_grouplist()

void tls1_get_grouplist ( SSL ssl,
const uint16_t **  out_group_ids,
size_t out_group_ids_len 
)

◆ tls1_get_shared_group()

int tls1_get_shared_group ( SSL ssl,
uint16_t out_group_id 
)

◆ tls1_handshake_digest()

int tls1_handshake_digest ( SSL ssl,
uint8_t out,
size_t  out_len 
)

◆ tls1_parse_peer_sigalgs()

int tls1_parse_peer_sigalgs ( SSL ssl,
const CBS sigalgs 
)

◆ tls1_record_handshake_hashes_for_channel_id()

int tls1_record_handshake_hashes_for_channel_id ( SSL ssl)

◆ tls1_set_curves()

int tls1_set_curves ( uint16_t **  out_group_ids,
size_t out_group_ids_len,
const int *  curves,
size_t  ncurves 
)

◆ tls1_set_curves_list()

int tls1_set_curves_list ( uint16_t **  out_group_ids,
size_t out_group_ids_len,
const char *  curves 
)

◆ tls1_setup_key_block()

int tls1_setup_key_block ( SSL ssl)

◆ tls1_verify_channel_id()

int tls1_verify_channel_id ( SSL ssl)

◆ tls1_write_channel_id()

int tls1_write_channel_id ( SSL ssl,
CBB cbb 
)

◆ tls_open_record()

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 
)

◆ tls_process_ticket()

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 
)

◆ tls_seal_record()

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 
)

Variable Documentation

◆ cbs

uint8_t CBS * cbs

◆ out_alert

uint8_t * out_alert

◆ out_cipher_list

struct ssl_cipher_preference_list_st** out_cipher_list

◆ out_leaf_sha256

uint8_t uint8_t* out_leaf_sha256

◆ rule_str

struct ssl_cipher_preference_list_st const char* rule_str

◆ SSLv3_enc_data

const SSL3_ENC_METHOD SSLv3_enc_data

◆ TLSv1_enc_data

const SSL3_ENC_METHOD TLSv1_enc_data