Classes | Namespaces | Macros | Enumerations | Functions | Variables
third_party/boringssl-with-bazel/src/ssl/internal.h File Reference
#include <openssl/base.h>
#include <stdlib.h>
#include <initializer_list>
#include <limits>
#include <new>
#include <type_traits>
#include <utility>
#include <openssl/aead.h>
#include <openssl/curve25519.h>
#include <openssl/err.h>
#include <openssl/hpke.h>
#include <openssl/lhash.h>
#include <openssl/mem.h>
#include <openssl/span.h>
#include <openssl/ssl.h>
#include <openssl/stack.h>
#include "../crypto/err/internal.h"
#include "../crypto/internal.h"
#include "../crypto/lhash/internal.h"
#include <sys/time.h>
Include dependency graph for third_party/boringssl-with-bazel/src/ssl/internal.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ALPSConfig
 
class  Array< T >
 
struct  CERT
 
struct  CertCompressionAlg
 
struct  DC
 
struct  internal::DeleterImpl< T, typename std::enable_if< T::kAllowUniquePtr >::type >
 
struct  DTLS1_BITMAP
 
struct  DTLS1_STATE
 
struct  DTLS_OUTGOING_MESSAGE
 
struct  ECHConfig
 
class  ECHServerConfig
 
class  GrowableArray< T >
 
struct  hm_fragment
 
struct  hm_header_st
 
struct  NamedGroup
 
struct  OPENSSL_timeval
 
struct  ParsedServerHello
 
struct  SSL3_STATE
 
struct  ssl_cipher_st
 
struct  SSL_CONFIG
 
struct  ssl_ctx_st
 
struct  ssl_ech_keys_st
 
struct  SSL_HANDSHAKE
 
struct  SSL_HANDSHAKE_HINTS
 
struct  ssl_method_st
 
struct  SSL_PROTOCOL_METHOD
 
struct  ssl_session_st
 
struct  ssl_st
 
struct  SSL_X509_METHOD
 
class  SSLAEADContext
 
class  SSLBuffer
 
struct  SSLCipherPreferenceList
 
struct  SSLExtension
 
class  SSLKeyShare
 
struct  SSLMessage
 
class  SSLTranscript
 
struct  TicketKey
 

Namespaces

 internal
 

Macros

#define CONSTEXPR_ARRAY   constexpr
 
#define DTLS1_AL_HEADER_LENGTH   2
 
#define DTLS1_CCS_HEADER_LENGTH   1
 
#define DTLS1_COOKIE_LENGTH   256
 
#define DTLS1_HM_HEADER_LENGTH   12
 
#define DTLS1_RT_HEADER_LENGTH   13
 
#define ECH_CLIENT_INNER   1
 
#define ECH_CLIENT_OUTER   0
 
#define ECH_CONFIRMATION_SIGNAL_LEN   8
 
#define HAS_VIRTUAL_DESTRUCTOR   void operator delete(void *) { abort(); }
 
#define NAMED_CURVE_TYPE   3
 
#define PURE_VIRTUAL   { abort(); }
 
#define SSL_3DES   0x00000001u
 
#define SSL_aCERT   (SSL_aRSA | SSL_aECDSA)
 
#define SSL_AEAD   0x00000002u
 
#define SSL_aECDSA   0x00000002u
 
#define SSL_AES   (SSL_AES128 | SSL_AES256 | SSL_AES128GCM | SSL_AES256GCM)
 
#define SSL_AES128   0x00000002u
 
#define SSL_AES128GCM   0x00000008u
 
#define SSL_AES256   0x00000004u
 
#define SSL_AES256GCM   0x00000010u
 
#define SSL_aGENERIC   0x00000008u
 
#define SSL_aPSK   0x00000004u
 
#define SSL_aRSA   0x00000001u
 
#define SSL_CHACHA20POLY1305   0x00000040u
 
#define SSL_eNULL   0x00000020u
 
#define SSL_HANDSHAKE_MAC_DEFAULT   0x1
 
#define SSL_HANDSHAKE_MAC_SHA256   0x2
 
#define SSL_HANDSHAKE_MAC_SHA384   0x4
 
#define SSL_kECDHE   0x00000002u
 
#define SSL_kGENERIC   0x00000008u
 
#define SSL_kPSK   0x00000004u
 
#define SSL_kRSA   0x00000001u
 
#define SSL_MAX_HANDSHAKE_FLIGHT   7
 
#define SSL_MAX_MD_SIZE   48
 
#define SSL_PSK_DHE_KE   0x1
 
#define SSL_SESSION_DUP_ALL   (SSL_SESSION_INCLUDE_TICKET | SSL_SESSION_INCLUDE_NONAUTH)
 
#define SSL_SESSION_DUP_AUTH_ONLY   0x0
 
#define SSL_SESSION_INCLUDE_NONAUTH   0x2
 
#define SSL_SESSION_INCLUDE_TICKET   0x1
 
#define SSL_SHA1   0x00000001u
 
#define TLSEXT_CHANNEL_ID_SIZE   128
 
#define tlsext_tick_md   EVP_sha256
 

Enumerations

enum  dtls1_use_epoch_t { dtls1_use_previous_epoch, dtls1_use_current_epoch }
 
enum  handback_t {
  handback_after_session_resumption = 0, handback_after_ecdhe = 1, handback_after_handshake = 2, handback_tls13 = 3,
  handback_max_value = handback_tls13
}
 
enum  ssl_cert_verify_context_t { ssl_cert_verify_server, ssl_cert_verify_client, ssl_cert_verify_channel_id }
 
enum  ssl_client_hello_type_t { ssl_client_hello_unencrypted, ssl_client_hello_inner, ssl_client_hello_outer }
 
enum  ssl_ech_status_t { ssl_ech_none, ssl_ech_accepted, ssl_ech_rejected }
 
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, ssl_grease_ech_config_id, ssl_grease_last_index = ssl_grease_ech_config_id
}
 
enum  ssl_hs_wait_t {
  ssl_hs_error, ssl_hs_ok, ssl_hs_read_server_hello, ssl_hs_read_message,
  ssl_hs_flush, ssl_hs_certificate_selection_pending, ssl_hs_handoff, ssl_hs_handback,
  ssl_hs_x509_lookup, ssl_hs_private_key_operation, ssl_hs_pending_session, ssl_hs_pending_ticket,
  ssl_hs_early_return, ssl_hs_early_data_rejected, ssl_hs_read_end_of_early_data, ssl_hs_read_change_cipher_spec,
  ssl_hs_certificate_verify, ssl_hs_hints_ready
}
 
enum  ssl_key_usage_t { key_usage_digital_signature = 0, key_usage_encipherment = 2 }
 
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_error
}
 
enum  ssl_shutdown_t { ssl_shutdown_none = 0, ssl_shutdown_close_notify = 1, ssl_shutdown_error = 2 }
 
enum  tls12_server_hs_state_t {
  state12_start_accept = 0, state12_read_client_hello, state12_read_client_hello_after_ech, state12_select_certificate,
  state12_tls13, state12_select_parameters, state12_send_server_hello, state12_send_server_certificate,
  state12_send_server_key_exchange, state12_send_server_hello_done, state12_read_client_certificate, state12_verify_client_certificate,
  state12_read_client_key_exchange, state12_read_client_certificate_verify, state12_read_change_cipher_spec, state12_process_change_cipher_spec,
  state12_read_next_proto, state12_read_channel_id, state12_read_client_finished, state12_send_server_finished,
  state12_finish_server_handshake, state12_done
}
 
enum  tls13_server_hs_state_t {
  state13_select_parameters = 0, state13_select_session, state13_send_hello_retry_request, state13_read_second_client_hello,
  state13_send_server_hello, state13_send_server_certificate_verify, state13_send_server_finished, state13_send_half_rtt_ticket,
  state13_read_second_client_flight, state13_process_end_of_early_data, state13_read_client_encrypted_extensions, state13_read_client_certificate,
  state13_read_client_certificate_verify, state13_read_channel_id, state13_read_client_finished, state13_send_new_session_ticket,
  state13_done
}
 

Functions

Span< const SSL_CIPHERAllCiphers ()
 
OPENSSL_EXPORT bool CBBFinishArray (CBB *cbb, Array< uint8_t > *out)
 
template<typename T >
void Delete (T *t)
 
bool dtls1_add_change_cipher_spec (SSL *ssl)
 
bool dtls1_add_message (SSL *ssl, Array< uint8_t > msg)
 
bool dtls1_check_timeout_num (SSL *ssl)
 
int dtls1_dispatch_alert (SSL *ssl)
 
bool dtls1_finish_message (const SSL *ssl, CBB *cbb, Array< uint8_t > *out_msg)
 
int dtls1_flush_flight (SSL *ssl)
 
void dtls1_free (SSL *ssl)
 
bool dtls1_get_message (const SSL *ssl, SSLMessage *out)
 
bool dtls1_init_message (const SSL *ssl, CBB *cbb, CBB *body, uint8_t type)
 
bool dtls1_is_timer_expired (SSL *ssl)
 
unsigned int dtls1_min_mtu (void)
 
bool dtls1_new (SSL *ssl)
 
void dtls1_next_message (SSL *ssl)
 
ssl_open_record_t dtls1_open_app_data (SSL *ssl, Span< uint8_t > *out, size_t *out_consumed, uint8_t *out_alert, Span< uint8_t > in)
 
ssl_open_record_t dtls1_open_change_cipher_spec (SSL *ssl, size_t *out_consumed, uint8_t *out_alert, Span< uint8_t > in)
 
ssl_open_record_t dtls1_open_handshake (SSL *ssl, size_t *out_consumed, uint8_t *out_alert, Span< uint8_t > in)
 
bool dtls1_parse_fragment (CBS *cbs, struct hm_header_st *out_hdr, CBS *out_body)
 
int dtls1_retransmit_outgoing_messages (SSL *ssl)
 
void dtls1_start_timer (SSL *ssl)
 
void dtls1_stop_timer (SSL *ssl)
 
int dtls1_write_app_data (SSL *ssl, bool *out_needs_handshake, const uint8_t *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)
 
void dtls_clear_outgoing_messages (SSL *ssl)
 
bool dtls_has_unprocessed_handshake_data (const SSL *ssl)
 
size_t dtls_max_seal_overhead (const SSL *ssl, enum dtls1_use_epoch_t use_epoch)
 
enum ssl_open_record_t dtls_open_record (SSL *ssl, uint8_t *out_type, Span< uint8_t > *out, size_t *out_consumed, uint8_t *out_alert, Span< uint8_t > in)
 
size_t dtls_seal_prefix_len (const SSL *ssl, enum dtls1_use_epoch_t use_epoch)
 
bool 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)
 
template<typename T , typename... Args>
UniquePtr< TMakeUnique (Args &&... args)
 
Span< const NamedGroupNamedGroups ()
 
template<typename T , typename... Args>
TNew (Args &&... args)
 
bool ssl_add_cert_chain (SSL_HANDSHAKE *hs, CBB *cbb)
 
bool ssl_add_client_CA_list (SSL_HANDSHAKE *hs, CBB *cbb)
 
bool ssl_add_client_hello (SSL_HANDSHAKE *hs)
 
bool ssl_add_clienthello_tlsext (SSL_HANDSHAKE *hs, CBB *out, CBB *out_encoded, bool *out_needs_psk_binder, ssl_client_hello_type_t type, size_t header_len)
 
bool ssl_add_message_cbb (SSL *ssl, CBB *cbb)
 
bool ssl_add_serverhello_tlsext (SSL_HANDSHAKE *hs, CBB *out)
 
bool ssl_add_supported_versions (const SSL_HANDSHAKE *hs, CBB *cbb, uint16_t extra_min_version)
 
bool ssl_can_read (const SSL *ssl)
 
bool ssl_can_write (const SSL *ssl)
 
bool ssl_cert_check_key_usage (const CBS *in, enum ssl_key_usage_t bit)
 
bool ssl_cert_check_private_key (const CERT *cert, const EVP_PKEY *privkey)
 
void ssl_cert_clear_certs (CERT *cert)
 
UniquePtr< CERTssl_cert_dup (CERT *cert)
 
UniquePtr< EVP_PKEYssl_cert_parse_pubkey (const CBS *in)
 
bool ssl_check_leaf_certificate (SSL_HANDSHAKE *hs, EVP_PKEY *pkey, const CRYPTO_BUFFER *leaf)
 
bool ssl_check_message_type (SSL *ssl, const SSLMessage &msg, int type)
 
const SSL_CIPHERssl_choose_tls13_cipher (CBS cipher_suites, uint16_t version, uint16_t group_id)
 
uint32_t ssl_cipher_auth_mask_for_key (const EVP_PKEY *key)
 
bool 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, bool is_dtls)
 
size_t ssl_cipher_get_record_split_len (const SSL_CIPHER *cipher)
 
bool ssl_cipher_requires_server_key_exchange (const SSL_CIPHER *cipher)
 
bool ssl_cipher_uses_certificate_auth (const SSL_CIPHER *cipher)
 
bool ssl_client_cipher_list_contains_cipher (const SSL_CLIENT_HELLO *client_hello, uint16_t id)
 
enum ssl_hs_wait_t ssl_client_handshake (SSL_HANDSHAKE *hs)
 
const char * ssl_client_handshake_state (SSL_HANDSHAKE *hs)
 
bool ssl_client_hello_decrypt (EVP_HPKE_CTX *hpke_ctx, Array< uint8_t > *out, bool *out_is_decrypt_error, const SSL_CLIENT_HELLO *client_hello_outer, Span< const uint8_t > payload)
 
bool ssl_client_hello_get_extension (const SSL_CLIENT_HELLO *client_hello, CBS *out, uint16_t extension_type)
 
OPENSSL_EXPORT bool ssl_client_hello_init (const SSL *ssl, SSL_CLIENT_HELLO *out, Span< const uint8_t > body)
 
bool ssl_compare_public_and_private_key (const EVP_PKEY *pubkey, const EVP_PKEY *privkey)
 
bool ssl_create_cipher_list (UniquePtr< SSLCipherPreferenceList > *out_cipher_list, const char *rule_str, bool strict)
 
void ssl_ctx_get_current_time (const SSL_CTX *ctx, struct OPENSSL_timeval *out_clock)
 
int ssl_ctx_rotate_ticket_encryption_key (SSL_CTX *ctx)
 
OPENSSL_EXPORT bool ssl_decode_client_hello_inner (SSL *ssl, uint8_t *out_alert, Array< uint8_t > *out_client_hello_inner, Span< const uint8_t > encoded_client_hello_inner, const SSL_CLIENT_HELLO *client_hello_outer)
 
void ssl_do_info_callback (const SSL *ssl, int type, int value)
 
void ssl_do_msg_callback (const SSL *ssl, int is_write, int content_type, Span< const uint8_t > in)
 
void ssl_done_writing_client_hello (SSL_HANDSHAKE *hs)
 
bool ssl_ech_accept_confirmation (const SSL_HANDSHAKE *hs, Span< uint8_t > out, Span< const uint8_t > client_random, const SSLTranscript &transcript, bool is_hrr, Span< const uint8_t > msg, size_t offset)
 
size_t ssl_ech_confirmation_signal_hello_offset (const SSL *ssl)
 
size_t ssl_ech_extension_body_length (const EVP_HPKE_AEAD *aead, size_t enc_len, size_t in_len)
 
bool ssl_encrypt_client_hello (SSL_HANDSHAKE *hs, Span< const uint8_t > enc)
 
int ssl_encrypt_ticket (SSL_HANDSHAKE *hs, CBB *out, const SSL_SESSION *session)
 
bool ssl_ext_key_share_add_serverhello (SSL_HANDSHAKE *hs, CBB *out)
 
bool ssl_ext_key_share_parse_clienthello (SSL_HANDSHAKE *hs, bool *out_found, Span< const uint8_t > *out_peer_key, uint8_t *out_alert, const SSL_CLIENT_HELLO *client_hello)
 
bool ssl_ext_key_share_parse_serverhello (SSL_HANDSHAKE *hs, Array< uint8_t > *out_secret, uint8_t *out_alert, CBS *contents)
 
bool ssl_ext_pre_shared_key_add_serverhello (SSL_HANDSHAKE *hs, CBB *out)
 
bool ssl_ext_pre_shared_key_parse_clienthello (SSL_HANDSHAKE *hs, CBS *out_ticket, CBS *out_binders, uint32_t *out_obfuscated_ticket_age, uint8_t *out_alert, const SSL_CLIENT_HELLO *client_hello, CBS *contents)
 
bool ssl_ext_pre_shared_key_parse_serverhello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
void ssl_get_current_time (const SSL *ssl, struct OPENSSL_timeval *out_clock)
 
enum ssl_hs_wait_t ssl_get_finished (SSL_HANDSHAKE *hs)
 
uint16_t ssl_get_grease_value (const SSL_HANDSHAKE *hs, enum ssl_grease_index_t index)
 
const EVP_MDssl_get_handshake_digest (uint16_t version, const SSL_CIPHER *cipher)
 
bool ssl_get_local_application_settings (const SSL_HANDSHAKE *hs, Span< const uint8_t > *out_settings, Span< const uint8_t > protocol)
 
bool ssl_get_new_session (SSL_HANDSHAKE *hs)
 
enum ssl_hs_wait_t ssl_get_prev_session (SSL_HANDSHAKE *hs, UniquePtr< SSL_SESSION > *out_session, bool *out_tickets_supported, bool *out_renew_ticket, const SSL_CLIENT_HELLO *client_hello)
 
bool ssl_get_version_range (const SSL_HANDSHAKE *hs, uint16_t *out_min_version, uint16_t *out_max_version)
 
int ssl_handle_open_record (SSL *ssl, bool *out_retry, ssl_open_record_t ret, size_t consumed, uint8_t alert)
 
UniquePtr< SSL_HANDSHAKEssl_handshake_new (SSL *ssl)
 
const SSL_SESSIONssl_handshake_session (const SSL_HANDSHAKE *hs)
 
bool ssl_has_certificate (const SSL_HANDSHAKE *hs)
 
bool ssl_has_client_CAs (const SSL_CONFIG *cfg)
 
bool ssl_has_private_key (const SSL_HANDSHAKE *hs)
 
bool ssl_hash_message (SSL_HANDSHAKE *hs, const SSLMessage &msg)
 
uint32_t ssl_hash_session_id (Span< const uint8_t > session_id)
 
bool ssl_is_alpn_protocol_allowed (const SSL_HANDSHAKE *hs, Span< const uint8_t > protocol)
 
bool ssl_is_key_type_supported (int key_type)
 
bool ssl_is_sct_list_valid (const CBS *contents)
 
bool ssl_is_valid_alpn_list (Span< const uint8_t > in)
 
bool ssl_is_valid_ech_config_list (Span< const uint8_t > ech_config_list)
 
OPENSSL_EXPORT bool ssl_is_valid_ech_public_name (Span< const uint8_t > public_name)
 
bool ssl_log_secret (const SSL *ssl, const char *label, Span< const uint8_t > secret)
 
size_t ssl_max_handshake_message_len (const SSL *ssl)
 
bool ssl_method_supports_version (const SSL_PROTOCOL_METHOD *method, uint16_t version)
 
bool ssl_name_to_group_id (uint16_t *out_group_id, const char *name, size_t len)
 
bool ssl_negotiate_alpn (SSL_HANDSHAKE *hs, uint8_t *out_alert, const SSL_CLIENT_HELLO *client_hello)
 
bool ssl_negotiate_alps (SSL_HANDSHAKE *hs, uint8_t *out_alert, const SSL_CLIENT_HELLO *client_hello)
 
bool ssl_negotiate_version (SSL_HANDSHAKE *hs, uint8_t *out_alert, uint16_t *out_version, const CBS *peer_versions)
 
bool ssl_nid_to_group_id (uint16_t *out_group_id, int nid)
 
bool ssl_on_certificate_selected (SSL_HANDSHAKE *hs)
 
ssl_open_record_t ssl_open_app_data (SSL *ssl, Span< uint8_t > *out, size_t *out_consumed, uint8_t *out_alert, Span< uint8_t > in)
 
ssl_open_record_t ssl_open_change_cipher_spec (SSL *ssl, size_t *out_consumed, uint8_t *out_alert, Span< uint8_t > in)
 
ssl_open_record_t ssl_open_handshake (SSL *ssl, size_t *out_consumed, uint8_t *out_alert, Span< uint8_t > in)
 
bool ssl_output_cert_chain (SSL_HANDSHAKE *hs)
 
bool ssl_parse_cert_chain (uint8_t *out_alert, UniquePtr< STACK_OF(CRYPTO_BUFFER)> *out_chain, UniquePtr< EVP_PKEY > *out_pubkey, uint8_t *out_leaf_sha256, CBS *cbs, CRYPTO_BUFFER_POOL *pool)
 
UniquePtr< STACK_OF(CRYPTO_BUFFER)> ssl_parse_client_CA_list (SSL *ssl, uint8_t *out_alert, CBS *cbs)
 
bool ssl_parse_client_hello_with_trailing_data (const SSL *ssl, CBS *cbs, SSL_CLIENT_HELLO *out)
 
bool ssl_parse_clienthello_tlsext (SSL_HANDSHAKE *hs, const SSL_CLIENT_HELLO *client_hello)
 
bool ssl_parse_extensions (const CBS *cbs, uint8_t *out_alert, std::initializer_list< SSLExtension * > extensions, bool ignore_unknown)
 
bool ssl_parse_server_hello (ParsedServerHello *out, uint8_t *out_alert, const SSLMessage &msg)
 
bool ssl_parse_serverhello_tlsext (SSL_HANDSHAKE *hs, const CBS *extensions)
 
enum ssl_private_key_result_t ssl_private_key_decrypt (SSL_HANDSHAKE *hs, uint8_t *out, size_t *out_len, size_t max_out, Span< const uint8_t > in)
 
enum ssl_private_key_result_t ssl_private_key_sign (SSL_HANDSHAKE *hs, uint8_t *out, size_t *out_len, size_t max_out, uint16_t sigalg, Span< const uint8_t > in)
 
bool ssl_private_key_supports_signature_algorithm (SSL_HANDSHAKE *hs, uint16_t sigalg)
 
enum ssl_open_record_t ssl_process_alert (SSL *ssl, uint8_t *out_alert, Span< const uint8_t > in)
 
enum ssl_ticket_aead_result_t ssl_process_ticket (SSL_HANDSHAKE *hs, UniquePtr< SSL_SESSION > *out_session, bool *out_renew_ticket, Span< const uint8_t > ticket, Span< const uint8_t > session_id)
 
uint16_t ssl_protocol_version (const SSL *ssl)
 
bool ssl_protocol_version_from_wire (uint16_t *out, uint16_t version)
 
bool ssl_public_key_verify (SSL *ssl, Span< const uint8_t > signature, uint16_t sigalg, EVP_PKEY *pkey, Span< const uint8_t > in)
 
int ssl_read_buffer_extend_to (SSL *ssl, size_t len)
 
size_t ssl_record_prefix_len (const SSL *ssl)
 
bool ssl_record_sequence_update (uint8_t *seq, size_t seq_len)
 
void ssl_reset_error_state (SSL *ssl)
 
enum ssl_verify_result_t ssl_reverify_peer_cert (SSL_HANDSHAKE *hs, bool send_alert)
 
int ssl_run_handshake (SSL_HANDSHAKE *hs, bool *out_early_return)
 
size_t ssl_seal_align_prefix_len (const SSL *ssl)
 
bool ssl_select_ech_config (SSL_HANDSHAKE *hs, Span< uint8_t > out_enc, size_t *out_enc_len)
 
void ssl_send_alert (SSL *ssl, int level, int desc)
 
int ssl_send_alert_impl (SSL *ssl, int level, int desc)
 
bool ssl_send_finished (SSL_HANDSHAKE *hs)
 
enum ssl_hs_wait_t ssl_server_handshake (SSL_HANDSHAKE *hs)
 
const char * ssl_server_handshake_state (SSL_HANDSHAKE *hs)
 
OPENSSL_EXPORT UniquePtr< SSL_SESSIONSSL_SESSION_dup (SSL_SESSION *session, int dup_flags)
 
const EVP_MDssl_session_get_digest (const SSL_SESSION *session)
 
int ssl_session_is_context_valid (const SSL_HANDSHAKE *hs, const SSL_SESSION *session)
 
int ssl_session_is_resumable (const SSL_HANDSHAKE *hs, const SSL_SESSION *session)
 
int ssl_session_is_time_valid (const SSL *ssl, const SSL_SESSION *session)
 
UniquePtr< SSL_SESSIONssl_session_new (const SSL_X509_METHOD *x509_method)
 
OPENSSL_EXPORT UniquePtr< SSL_SESSIONSSL_SESSION_parse (CBS *cbs, const SSL_X509_METHOD *x509_method, CRYPTO_BUFFER_POOL *pool)
 
uint16_t ssl_session_protocol_version (const SSL_SESSION *session)
 
void ssl_session_rebase_time (SSL *ssl, SSL_SESSION *session)
 
void ssl_session_renew_timeout (SSL *ssl, SSL_SESSION *session, uint32_t timeout)
 
OPENSSL_EXPORT int ssl_session_serialize (const SSL_SESSION *in, CBB *cbb)
 
bool ssl_set_cert (CERT *cert, UniquePtr< CRYPTO_BUFFER > buffer)
 
void ssl_set_read_error (SSL *ssl)
 
void ssl_set_session (SSL *ssl, SSL_SESSION *session)
 
bool ssl_setup_extension_permutation (SSL_HANDSHAKE *hs)
 
bool ssl_setup_key_shares (SSL_HANDSHAKE *hs, uint16_t override_group_id)
 
bool ssl_signing_with_dc (const SSL_HANDSHAKE *hs)
 
bool ssl_supports_version (const SSL_HANDSHAKE *hs, uint16_t version)
 
void ssl_update_cache (SSL *ssl)
 
enum ssl_verify_result_t ssl_verify_peer_cert (SSL_HANDSHAKE *hs)
 
int ssl_write_buffer_flush (SSL *ssl)
 
bool ssl_write_client_hello_without_extensions (const SSL_HANDSHAKE *hs, CBB *cbb, ssl_client_hello_type_t type, bool empty_session_id)
 
bool tls12_add_verify_sigalgs (const SSL_HANDSHAKE *hs, CBB *out)
 
bool tls12_check_peer_sigalg (const SSL_HANDSHAKE *hs, uint8_t *out_alert, uint16_t sigalg)
 
bool tls13_add_certificate (SSL_HANDSHAKE *hs)
 
enum ssl_private_key_result_t tls13_add_certificate_verify (SSL_HANDSHAKE *hs)
 
bool tls13_add_finished (SSL_HANDSHAKE *hs)
 
bool tls13_add_key_update (SSL *ssl, int update_requested)
 
bool tls13_advance_key_schedule (SSL_HANDSHAKE *hs, Span< const uint8_t > in)
 
enum ssl_hs_wait_t tls13_client_handshake (SSL_HANDSHAKE *hs)
 
const char * tls13_client_handshake_state (SSL_HANDSHAKE *hs)
 
bssl::UniquePtr< SSL_SESSIONtls13_create_session_with_ticket (SSL *ssl, CBS *body)
 
bool tls13_derive_application_secrets (SSL_HANDSHAKE *hs)
 
bool tls13_derive_early_secret (SSL_HANDSHAKE *hs)
 
bool tls13_derive_handshake_secrets (SSL_HANDSHAKE *hs)
 
bool tls13_derive_resumption_secret (SSL_HANDSHAKE *hs)
 
bool tls13_derive_session_psk (SSL_SESSION *session, Span< const uint8_t > nonce)
 
bool tls13_export_keying_material (SSL *ssl, Span< uint8_t > out, Span< const uint8_t > secret, Span< const char > label, Span< const uint8_t > context)
 
bool tls13_finished_mac (SSL_HANDSHAKE *hs, uint8_t *out, size_t *out_len, bool is_server)
 
bool tls13_get_cert_verify_signature_input (SSL_HANDSHAKE *hs, Array< uint8_t > *out, enum ssl_cert_verify_context_t cert_verify_context)
 
bool tls13_init_early_key_schedule (SSL_HANDSHAKE *hs, const SSL_SESSION *session)
 
bool tls13_init_key_schedule (SSL_HANDSHAKE *hs, Span< const uint8_t > psk)
 
bool tls13_post_handshake (SSL *ssl, const SSLMessage &msg)
 
bool tls13_process_certificate (SSL_HANDSHAKE *hs, const SSLMessage &msg, bool allow_anonymous)
 
bool tls13_process_certificate_verify (SSL_HANDSHAKE *hs, const SSLMessage &msg)
 
bool tls13_process_finished (SSL_HANDSHAKE *hs, const SSLMessage &msg, bool use_saved_value)
 
bool tls13_process_new_session_ticket (SSL *ssl, const SSLMessage &msg)
 
bool tls13_rotate_traffic_key (SSL *ssl, enum evp_aead_direction_t direction)
 
enum ssl_hs_wait_t tls13_server_handshake (SSL_HANDSHAKE *hs)
 
const char * tls13_server_handshake_state (SSL_HANDSHAKE *hs)
 
bool tls13_set_traffic_key (SSL *ssl, enum ssl_encryption_level_t level, enum evp_aead_direction_t direction, const SSL_SESSION *session, Span< const uint8_t > traffic_secret)
 
bool tls13_verify_psk_binder (const SSL_HANDSHAKE *hs, const SSL_SESSION *session, const SSLMessage &msg, CBS *binders)
 
bool tls13_write_psk_binder (const SSL_HANDSHAKE *hs, const SSLTranscript &transcript, Span< uint8_t > msg, size_t *out_binder_len)
 
bool tls1_change_cipher_state (SSL_HANDSHAKE *hs, evp_aead_direction_t direction)
 
bool tls1_channel_id_hash (SSL_HANDSHAKE *hs, uint8_t *out, size_t *out_len)
 
bool tls1_check_group_id (const SSL_HANDSHAKE *ssl, uint16_t group_id)
 
bool tls1_choose_signature_algorithm (SSL_HANDSHAKE *hs, uint16_t *out)
 
bool tls1_configure_aead (SSL *ssl, evp_aead_direction_t direction, Array< uint8_t > *key_block_cache, const SSL_SESSION *session, Span< const uint8_t > iv_override)
 
int tls1_generate_master_secret (SSL_HANDSHAKE *hs, uint8_t *out, Span< const uint8_t > premaster)
 
Span< const uint16_ttls1_get_grouplist (const SSL_HANDSHAKE *ssl)
 
bool tls1_get_legacy_signature_algorithm (uint16_t *out, const EVP_PKEY *pkey)
 
Span< const uint16_ttls1_get_peer_verify_algorithms (const SSL_HANDSHAKE *hs)
 
bool tls1_get_shared_group (SSL_HANDSHAKE *hs, uint16_t *out_group_id)
 
bool tls1_parse_peer_sigalgs (SSL_HANDSHAKE *hs, const CBS *sigalgs)
 
bool tls1_prf (const EVP_MD *digest, Span< uint8_t > out, Span< const uint8_t > secret, Span< const char > label, Span< const uint8_t > seed1, Span< const uint8_t > seed2)
 
bool tls1_record_handshake_hashes_for_channel_id (SSL_HANDSHAKE *hs)
 
bool tls1_set_curves (Array< uint16_t > *out_group_ids, Span< const int > curves)
 
bool tls1_set_curves_list (Array< uint16_t > *out_group_ids, const char *curves)
 
bool tls1_verify_channel_id (SSL_HANDSHAKE *hs, const SSLMessage &msg)
 
bool tls1_write_channel_id (SSL_HANDSHAKE *hs, CBB *cbb)
 
bool tls_add_change_cipher_spec (SSL *ssl)
 
bool tls_add_message (SSL *ssl, Array< uint8_t > msg)
 
bool tls_append_handshake_data (SSL *ssl, Span< const uint8_t > data)
 
bool tls_can_accept_handshake_data (const SSL *ssl, uint8_t *out_alert)
 
int tls_dispatch_alert (SSL *ssl)
 
bool tls_finish_message (const SSL *ssl, CBB *cbb, Array< uint8_t > *out_msg)
 
int tls_flush_flight (SSL *ssl)
 
bool tls_flush_pending_hs_data (SSL *ssl)
 
void tls_free (SSL *ssl)
 
bool tls_get_message (const SSL *ssl, SSLMessage *out)
 
bool tls_has_unprocessed_handshake_data (const SSL *ssl)
 
bool tls_init_message (const SSL *ssl, CBB *cbb, CBB *body, uint8_t type)
 
bool tls_new (SSL *ssl)
 
void tls_next_message (SSL *ssl)
 
ssl_open_record_t tls_open_app_data (SSL *ssl, Span< uint8_t > *out, size_t *out_consumed, uint8_t *out_alert, Span< uint8_t > in)
 
ssl_open_record_t tls_open_change_cipher_spec (SSL *ssl, size_t *out_consumed, uint8_t *out_alert, Span< uint8_t > in)
 
ssl_open_record_t tls_open_handshake (SSL *ssl, size_t *out_consumed, uint8_t *out_alert, Span< uint8_t > in)
 
enum ssl_open_record_t tls_open_record (SSL *ssl, uint8_t *out_type, Span< uint8_t > *out, size_t *out_consumed, uint8_t *out_alert, Span< uint8_t > in)
 
bool 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 tls_write_app_data (SSL *ssl, bool *out_needs_handshake, const uint8_t *buf, int len)
 

Variables

const uint8_t kHelloRetryRequest [SSL3_RANDOM_SIZE]
 
const uint8_t kJDK11DowngradeRandom [8]
 
static const size_t kMaxEarlyDataAccepted = 14336
 
const uint8_t kTLS12DowngradeRandom [8]
 
const uint8_t kTLS13DowngradeRandom [8]
 
const SSL_X509_METHOD ssl_crypto_x509_method
 
const SSL_X509_METHOD ssl_noop_x509_method
 

Macro Definition Documentation

◆ CONSTEXPR_ARRAY

#define CONSTEXPR_ARRAY   constexpr

◆ 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

◆ ECH_CLIENT_INNER

#define ECH_CLIENT_INNER   1

◆ ECH_CLIENT_OUTER

#define ECH_CLIENT_OUTER   0

◆ ECH_CONFIRMATION_SIGNAL_LEN

#define ECH_CONFIRMATION_SIGNAL_LEN   8

◆ HAS_VIRTUAL_DESTRUCTOR

#define HAS_VIRTUAL_DESTRUCTOR   void operator delete(void *) { abort(); }

◆ NAMED_CURVE_TYPE

#define NAMED_CURVE_TYPE   3

◆ PURE_VIRTUAL

#define PURE_VIRTUAL   { abort(); }

◆ SSL_3DES

#define SSL_3DES   0x00000001u

◆ SSL_aCERT

#define SSL_aCERT   (SSL_aRSA | SSL_aECDSA)

◆ SSL_AEAD

#define SSL_AEAD   0x00000002u

◆ SSL_aECDSA

#define SSL_aECDSA   0x00000002u

◆ SSL_AES

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

◆ SSL_AES128

#define SSL_AES128   0x00000002u

◆ SSL_AES128GCM

#define SSL_AES128GCM   0x00000008u

◆ SSL_AES256

#define SSL_AES256   0x00000004u

◆ SSL_AES256GCM

#define SSL_AES256GCM   0x00000010u

◆ SSL_aGENERIC

#define SSL_aGENERIC   0x00000008u

◆ SSL_aPSK

#define SSL_aPSK   0x00000004u

◆ SSL_aRSA

#define SSL_aRSA   0x00000001u

◆ SSL_CHACHA20POLY1305

#define SSL_CHACHA20POLY1305   0x00000040u

◆ SSL_eNULL

#define SSL_eNULL   0x00000020u

◆ 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_kECDHE

#define SSL_kECDHE   0x00000002u

◆ SSL_kGENERIC

#define SSL_kGENERIC   0x00000008u

◆ SSL_kPSK

#define SSL_kPSK   0x00000004u

◆ SSL_kRSA

#define SSL_kRSA   0x00000001u

◆ SSL_MAX_HANDSHAKE_FLIGHT

#define SSL_MAX_HANDSHAKE_FLIGHT   7

◆ SSL_MAX_MD_SIZE

#define SSL_MAX_MD_SIZE   48

◆ SSL_PSK_DHE_KE

#define SSL_PSK_DHE_KE   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   0x00000001u

◆ TLSEXT_CHANNEL_ID_SIZE

#define TLSEXT_CHANNEL_ID_SIZE   128

◆ tlsext_tick_md

#define tlsext_tick_md   EVP_sha256

Enumeration Type Documentation

◆ dtls1_use_epoch_t

Enumerator
dtls1_use_previous_epoch 
dtls1_use_current_epoch 

Definition at line 1002 of file third_party/boringssl-with-bazel/src/ssl/internal.h.

◆ handback_t

enum handback_t
Enumerator
handback_after_session_resumption 
handback_after_ecdhe 
handback_after_handshake 
handback_tls13 
handback_max_value 

Definition at line 1688 of file third_party/boringssl-with-bazel/src/ssl/internal.h.

◆ ssl_cert_verify_context_t

Enumerator
ssl_cert_verify_server 
ssl_cert_verify_client 
ssl_cert_verify_channel_id 

Definition at line 2181 of file third_party/boringssl-with-bazel/src/ssl/internal.h.

◆ ssl_client_hello_type_t

Enumerator
ssl_client_hello_unencrypted 
ssl_client_hello_inner 
ssl_client_hello_outer 

Definition at line 1485 of file third_party/boringssl-with-bazel/src/ssl/internal.h.

◆ ssl_ech_status_t

Enumerator
ssl_ech_none 
ssl_ech_accepted 
ssl_ech_rejected 

Definition at line 2609 of file third_party/boringssl-with-bazel/src/ssl/internal.h.

◆ 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_grease_ech_config_id 
ssl_grease_last_index 

Definition at line 1630 of file third_party/boringssl-with-bazel/src/ssl/internal.h.

◆ ssl_hs_wait_t

Enumerator
ssl_hs_error 
ssl_hs_ok 
ssl_hs_read_server_hello 
ssl_hs_read_message 
ssl_hs_flush 
ssl_hs_certificate_selection_pending 
ssl_hs_handoff 
ssl_hs_handback 
ssl_hs_x509_lookup 
ssl_hs_private_key_operation 
ssl_hs_pending_session 
ssl_hs_pending_ticket 
ssl_hs_early_return 
ssl_hs_early_data_rejected 
ssl_hs_read_end_of_early_data 
ssl_hs_read_change_cipher_spec 
ssl_hs_certificate_verify 
ssl_hs_hints_ready 

Definition at line 1609 of file third_party/boringssl-with-bazel/src/ssl/internal.h.

◆ ssl_key_usage_t

Enumerator
key_usage_digital_signature 
key_usage_encipherment 

Definition at line 1320 of file third_party/boringssl-with-bazel/src/ssl/internal.h.

◆ 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_error 

Definition at line 933 of file third_party/boringssl-with-bazel/src/ssl/internal.h.

◆ ssl_shutdown_t

Enumerator
ssl_shutdown_none 
ssl_shutdown_close_notify 
ssl_shutdown_error 

Definition at line 2603 of file third_party/boringssl-with-bazel/src/ssl/internal.h.

◆ tls12_server_hs_state_t

Enumerator
state12_start_accept 
state12_read_client_hello 
state12_read_client_hello_after_ech 
state12_select_certificate 
state12_tls13 
state12_select_parameters 
state12_send_server_hello 
state12_send_server_certificate 
state12_send_server_key_exchange 
state12_send_server_hello_done 
state12_read_client_certificate 
state12_verify_client_certificate 
state12_read_client_key_exchange 
state12_read_client_certificate_verify 
state12_read_change_cipher_spec 
state12_process_change_cipher_spec 
state12_read_next_proto 
state12_read_channel_id 
state12_read_client_finished 
state12_send_server_finished 
state12_finish_server_handshake 
state12_done 

Definition at line 1641 of file third_party/boringssl-with-bazel/src/ssl/internal.h.

◆ tls13_server_hs_state_t

Enumerator
state13_select_parameters 
state13_select_session 
state13_send_hello_retry_request 
state13_read_second_client_hello 
state13_send_server_hello 
state13_send_server_certificate_verify 
state13_send_server_finished 
state13_send_half_rtt_ticket 
state13_read_second_client_flight 
state13_process_end_of_early_data 
state13_read_client_encrypted_extensions 
state13_read_client_certificate 
state13_read_client_certificate_verify 
state13_read_channel_id 
state13_read_client_finished 
state13_send_new_session_ticket 
state13_done 

Definition at line 1666 of file third_party/boringssl-with-bazel/src/ssl/internal.h.

Function Documentation

◆ AllCiphers()

Span<const SSL_CIPHER> AllCiphers ( )

Definition at line 465 of file ssl_cipher.cc.

◆ CBBFinishArray()

OPENSSL_EXPORT bool CBBFinishArray ( CBB cbb,
Array< uint8_t > *  out 
)

Definition at line 190 of file ssl_lib.cc.

◆ Delete()

template<typename T >
void Delete ( T t)

◆ dtls1_add_change_cipher_spec()

bool dtls1_add_change_cipher_spec ( SSL ssl)

Definition at line 595 of file d1_both.cc.

◆ dtls1_add_message()

bool dtls1_add_message ( SSL ssl,
Array< uint8_t msg 
)

Definition at line 591 of file d1_both.cc.

◆ dtls1_check_timeout_num()

bool dtls1_check_timeout_num ( SSL ssl)

Definition at line 168 of file d1_lib.cc.

◆ dtls1_dispatch_alert()

int dtls1_dispatch_alert ( SSL ssl)

Definition at line 252 of file d1_pkt.cc.

◆ dtls1_finish_message()

bool dtls1_finish_message ( const SSL ssl,
CBB cbb,
Array< uint8_t > *  out_msg 
)

Definition at line 520 of file d1_both.cc.

◆ dtls1_flush_flight()

int dtls1_flush_flight ( SSL ssl)

Definition at line 813 of file d1_both.cc.

◆ dtls1_free()

void dtls1_free ( SSL ssl)

Definition at line 109 of file d1_lib.cc.

◆ dtls1_get_message()

bool dtls1_get_message ( const SSL ssl,
SSLMessage out 
)

Definition at line 407 of file d1_both.cc.

◆ dtls1_init_message()

bool dtls1_init_message ( const SSL ssl,
CBB cbb,
CBB body,
uint8_t  type 
)

Definition at line 506 of file d1_both.cc.

◆ dtls1_is_timer_expired()

bool dtls1_is_timer_expired ( SSL ssl)

Definition at line 138 of file d1_lib.cc.

◆ dtls1_min_mtu()

unsigned int dtls1_min_mtu ( void  )

Definition at line 831 of file d1_both.cc.

◆ dtls1_new()

bool dtls1_new ( SSL ssl)

Definition at line 88 of file d1_lib.cc.

◆ dtls1_next_message()

void dtls1_next_message ( SSL ssl)

Definition at line 425 of file d1_both.cc.

◆ dtls1_open_app_data()

ssl_open_record_t dtls1_open_app_data ( SSL ssl,
Span< uint8_t > *  out,
size_t *  out_consumed,
uint8_t out_alert,
Span< uint8_t in 
)

Definition at line 130 of file d1_pkt.cc.

◆ dtls1_open_change_cipher_spec()

ssl_open_record_t dtls1_open_change_cipher_spec ( SSL ssl,
size_t *  out_consumed,
uint8_t out_alert,
Span< uint8_t in 
)

Definition at line 470 of file d1_both.cc.

◆ dtls1_open_handshake()

ssl_open_record_t dtls1_open_handshake ( SSL ssl,
size_t *  out_consumed,
uint8_t out_alert,
Span< uint8_t in 
)

Definition at line 296 of file d1_both.cc.

◆ dtls1_parse_fragment()

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

Definition at line 454 of file d1_both.cc.

◆ dtls1_retransmit_outgoing_messages()

int dtls1_retransmit_outgoing_messages ( SSL ssl)

Definition at line 820 of file d1_both.cc.

◆ dtls1_start_timer()

void dtls1_start_timer ( SSL ssl)

Definition at line 120 of file d1_lib.cc.

◆ dtls1_stop_timer()

void dtls1_stop_timer ( SSL ssl)

Definition at line 162 of file d1_lib.cc.

◆ dtls1_write_app_data()

int dtls1_write_app_data ( SSL ssl,
bool out_needs_handshake,
const uint8_t buf,
int  len 
)

Definition at line 189 of file d1_pkt.cc.

◆ 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 
)

Definition at line 221 of file d1_pkt.cc.

◆ dtls_clear_outgoing_messages()

void dtls_clear_outgoing_messages ( SSL ssl)

Definition at line 495 of file d1_both.cc.

◆ dtls_has_unprocessed_handshake_data()

bool dtls_has_unprocessed_handshake_data ( const SSL ssl)

Definition at line 439 of file d1_both.cc.

◆ dtls_max_seal_overhead()

size_t dtls_max_seal_overhead ( const SSL ssl,
enum dtls1_use_epoch_t  use_epoch 
)

Definition at line 284 of file dtls_record.cc.

◆ dtls_open_record()

enum ssl_open_record_t dtls_open_record ( SSL ssl,
uint8_t out_type,
Span< uint8_t > *  out,
size_t *  out_consumed,
uint8_t out_alert,
Span< uint8_t in 
)

Definition at line 177 of file dtls_record.cc.

◆ dtls_seal_prefix_len()

size_t dtls_seal_prefix_len ( const SSL ssl,
enum dtls1_use_epoch_t  use_epoch 
)

Definition at line 289 of file dtls_record.cc.

◆ dtls_seal_record()

bool 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 at line 294 of file dtls_record.cc.

◆ MakeUnique()

template<typename T , typename... Args>
UniquePtr<T> MakeUnique ( Args &&...  args)

◆ NamedGroups()

Span<const NamedGroup> NamedGroups ( )

Definition at line 304 of file ssl_key_share.cc.

◆ New()

template<typename T , typename... Args>
T* New ( Args &&...  args)

◆ ssl_add_cert_chain()

bool ssl_add_cert_chain ( SSL_HANDSHAKE hs,
CBB cbb 
)

Definition at line 410 of file ssl_cert.cc.

◆ ssl_add_client_CA_list()

bool ssl_add_client_CA_list ( SSL_HANDSHAKE hs,
CBB cbb 
)

Definition at line 675 of file ssl_cert.cc.

◆ ssl_add_client_hello()

bool ssl_add_client_hello ( SSL_HANDSHAKE hs)

Definition at line 323 of file handshake_client.cc.

◆ ssl_add_clienthello_tlsext()

bool ssl_add_clienthello_tlsext ( SSL_HANDSHAKE hs,
CBB out,
CBB out_encoded,
bool out_needs_psk_binder,
ssl_client_hello_type_t  type,
size_t  header_len 
)

Definition at line 3426 of file extensions.cc.

◆ ssl_add_message_cbb()

bool ssl_add_message_cbb ( SSL ssl,
CBB cbb 
)

Definition at line 220 of file handshake.cc.

◆ ssl_add_serverhello_tlsext()

bool ssl_add_serverhello_tlsext ( SSL_HANDSHAKE hs,
CBB out 
)

Definition at line 3552 of file extensions.cc.

◆ ssl_add_supported_versions()

bool ssl_add_supported_versions ( const SSL_HANDSHAKE hs,
CBB cbb,
uint16_t  extra_min_version 
)

Definition at line 276 of file ssl_versions.cc.

◆ ssl_can_read()

bool ssl_can_read ( const SSL ssl)

Definition at line 226 of file ssl_lib.cc.

◆ ssl_can_write()

bool ssl_can_write ( const SSL ssl)

Definition at line 222 of file ssl_lib.cc.

◆ ssl_cert_check_key_usage()

bool ssl_cert_check_key_usage ( const CBS in,
enum ssl_key_usage_t  bit 
)

Definition at line 542 of file ssl_cert.cc.

◆ ssl_cert_check_private_key()

bool ssl_cert_check_private_key ( const CERT cert,
const EVP_PKEY privkey 
)

Definition at line 518 of file ssl_cert.cc.

◆ ssl_cert_clear_certs()

void ssl_cert_clear_certs ( CERT cert)

Definition at line 196 of file ssl_cert.cc.

◆ ssl_cert_dup()

UniquePtr<CERT> ssl_cert_dup ( CERT cert)

Definition at line 150 of file ssl_cert.cc.

◆ ssl_cert_parse_pubkey()

UniquePtr<EVP_PKEY> ssl_cert_parse_pubkey ( const CBS in)

Definition at line 482 of file ssl_cert.cc.

◆ ssl_check_leaf_certificate()

bool ssl_check_leaf_certificate ( SSL_HANDSHAKE hs,
EVP_PKEY pkey,
const CRYPTO_BUFFER leaf 
)

Definition at line 700 of file ssl_cert.cc.

◆ ssl_check_message_type()

bool ssl_check_message_type ( SSL ssl,
const SSLMessage msg,
int  type 
)

Definition at line 209 of file handshake.cc.

◆ ssl_choose_tls13_cipher()

const SSL_CIPHER* ssl_choose_tls13_cipher ( CBS  cipher_suites,
uint16_t  version,
uint16_t  group_id 
)

Definition at line 694 of file s3_both.cc.

◆ ssl_cipher_auth_mask_for_key()

uint32_t ssl_cipher_auth_mask_for_key ( const EVP_PKEY key)

Definition at line 1282 of file ssl_cipher.cc.

◆ ssl_cipher_get_evp_aead()

bool 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,
bool  is_dtls 
)

Definition at line 559 of file ssl_cipher.cc.

◆ ssl_cipher_get_record_split_len()

size_t ssl_cipher_get_record_split_len ( const SSL_CIPHER cipher)

Definition at line 1305 of file ssl_cipher.cc.

◆ ssl_cipher_requires_server_key_exchange()

bool ssl_cipher_requires_server_key_exchange ( const SSL_CIPHER cipher)

Definition at line 1299 of file ssl_cipher.cc.

◆ ssl_cipher_uses_certificate_auth()

bool ssl_cipher_uses_certificate_auth ( const SSL_CIPHER cipher)

Definition at line 1295 of file ssl_cipher.cc.

◆ ssl_client_cipher_list_contains_cipher()

bool ssl_client_cipher_list_contains_cipher ( const SSL_CLIENT_HELLO client_hello,
uint16_t  id 
)

Definition at line 176 of file handshake_server.cc.

◆ ssl_client_handshake()

enum ssl_hs_wait_t ssl_client_handshake ( SSL_HANDSHAKE hs)

Definition at line 1841 of file handshake_client.cc.

◆ ssl_client_handshake_state()

const char* ssl_client_handshake_state ( SSL_HANDSHAKE hs)

Definition at line 1931 of file handshake_client.cc.

◆ ssl_client_hello_decrypt()

bool ssl_client_hello_decrypt ( EVP_HPKE_CTX hpke_ctx,
Array< uint8_t > *  out,
bool out_is_decrypt_error,
const SSL_CLIENT_HELLO client_hello_outer,
Span< const uint8_t payload 
)

Definition at line 255 of file encrypted_client_hello.cc.

◆ ssl_client_hello_get_extension()

bool ssl_client_hello_get_extension ( const SSL_CLIENT_HELLO client_hello,
CBS out,
uint16_t  extension_type 
)

Definition at line 283 of file extensions.cc.

◆ ssl_client_hello_init()

OPENSSL_EXPORT bool ssl_client_hello_init ( const SSL ssl,
SSL_CLIENT_HELLO out,
Span< const uint8_t body 
)

Definition at line 211 of file extensions.cc.

◆ ssl_compare_public_and_private_key()

bool ssl_compare_public_and_private_key ( const EVP_PKEY pubkey,
const EVP_PKEY privkey 
)

Definition at line 492 of file ssl_cert.cc.

◆ ssl_create_cipher_list()

bool ssl_create_cipher_list ( UniquePtr< SSLCipherPreferenceList > *  out_cipher_list,
const char *  rule_str,
bool  strict 
)

Definition at line 1152 of file ssl_cipher.cc.

◆ ssl_ctx_get_current_time()

void ssl_ctx_get_current_time ( const SSL_CTX ctx,
struct OPENSSL_timeval out_clock 
)

Definition at line 360 of file ssl_lib.cc.

◆ ssl_ctx_rotate_ticket_encryption_key()

int ssl_ctx_rotate_ticket_encryption_key ( SSL_CTX ctx)

Definition at line 403 of file ssl_session.cc.

◆ ssl_decode_client_hello_inner()

OPENSSL_EXPORT bool ssl_decode_client_hello_inner ( SSL ssl,
uint8_t out_alert,
Array< uint8_t > *  out_client_hello_inner,
Span< const uint8_t encoded_client_hello_inner,
const SSL_CLIENT_HELLO client_hello_outer 
)

Definition at line 125 of file encrypted_client_hello.cc.

◆ ssl_do_info_callback()

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

Definition at line 316 of file ssl_lib.cc.

◆ ssl_do_msg_callback()

void ssl_do_msg_callback ( const SSL ssl,
int  is_write,
int  content_type,
Span< const uint8_t in 
)

Definition at line 329 of file ssl_lib.cc.

◆ ssl_done_writing_client_hello()

void ssl_done_writing_client_hello ( SSL_HANDSHAKE hs)

Definition at line 435 of file handshake_client.cc.

◆ ssl_ech_accept_confirmation()

bool ssl_ech_accept_confirmation ( const SSL_HANDSHAKE hs,
Span< uint8_t out,
Span< const uint8_t client_random,
const SSLTranscript transcript,
bool  is_hrr,
Span< const uint8_t msg,
size_t  offset 
)

Definition at line 540 of file tls13_enc.cc.

◆ ssl_ech_confirmation_signal_hello_offset()

size_t ssl_ech_confirmation_signal_hello_offset ( const SSL ssl)

Definition at line 531 of file tls13_enc.cc.

◆ ssl_ech_extension_body_length()

size_t ssl_ech_extension_body_length ( const EVP_HPKE_AEAD aead,
size_t  enc_len,
size_t  in_len 
)

◆ ssl_encrypt_client_hello()

bool ssl_encrypt_client_hello ( SSL_HANDSHAKE hs,
Span< const uint8_t enc 
)

Definition at line 748 of file encrypted_client_hello.cc.

◆ ssl_encrypt_ticket()

int ssl_encrypt_ticket ( SSL_HANDSHAKE hs,
CBB out,
const SSL_SESSION session 
)

Definition at line 563 of file ssl_session.cc.

◆ ssl_ext_key_share_add_serverhello()

bool ssl_ext_key_share_add_serverhello ( SSL_HANDSHAKE hs,
CBB out 
)

Definition at line 2437 of file extensions.cc.

◆ ssl_ext_key_share_parse_clienthello()

bool ssl_ext_key_share_parse_clienthello ( SSL_HANDSHAKE hs,
bool out_found,
Span< const uint8_t > *  out_peer_key,
uint8_t out_alert,
const SSL_CLIENT_HELLO client_hello 
)

Definition at line 2384 of file extensions.cc.

◆ ssl_ext_key_share_parse_serverhello()

bool ssl_ext_key_share_parse_serverhello ( SSL_HANDSHAKE hs,
Array< uint8_t > *  out_secret,
uint8_t out_alert,
CBS contents 
)

Definition at line 2350 of file extensions.cc.

◆ ssl_ext_pre_shared_key_add_serverhello()

bool ssl_ext_pre_shared_key_add_serverhello ( SSL_HANDSHAKE hs,
CBB out 
)

Definition at line 2094 of file extensions.cc.

◆ ssl_ext_pre_shared_key_parse_clienthello()

bool ssl_ext_pre_shared_key_parse_clienthello ( SSL_HANDSHAKE hs,
CBS out_ticket,
CBS out_binders,
uint32_t out_obfuscated_ticket_age,
uint8_t out_alert,
const SSL_CLIENT_HELLO client_hello,
CBS contents 
)

Definition at line 2028 of file extensions.cc.

◆ ssl_ext_pre_shared_key_parse_serverhello()

bool ssl_ext_pre_shared_key_parse_serverhello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)

Definition at line 2007 of file extensions.cc.

◆ ssl_get_current_time()

void ssl_get_current_time ( const SSL ssl,
struct OPENSSL_timeval out_clock 
)

Definition at line 354 of file ssl_lib.cc.

◆ ssl_get_finished()

enum ssl_hs_wait_t ssl_get_finished ( SSL_HANDSHAKE hs)

Definition at line 467 of file handshake.cc.

◆ ssl_get_grease_value()

uint16_t ssl_get_grease_value ( const SSL_HANDSHAKE hs,
enum ssl_grease_index_t  index 
)

Definition at line 454 of file handshake.cc.

◆ ssl_get_handshake_digest()

const EVP_MD* ssl_get_handshake_digest ( uint16_t  version,
const SSL_CIPHER cipher 
)

Definition at line 637 of file ssl_cipher.cc.

◆ ssl_get_local_application_settings()

bool ssl_get_local_application_settings ( const SSL_HANDSHAKE hs,
Span< const uint8_t > *  out_settings,
Span< const uint8_t protocol 
)

Definition at line 2937 of file extensions.cc.

◆ ssl_get_new_session()

bool ssl_get_new_session ( SSL_HANDSHAKE hs)

Definition at line 352 of file ssl_session.cc.

◆ ssl_get_prev_session()

enum ssl_hs_wait_t ssl_get_prev_session ( SSL_HANDSHAKE hs,
UniquePtr< SSL_SESSION > *  out_session,
bool out_tickets_supported,
bool out_renew_ticket,
const SSL_CLIENT_HELLO client_hello 
)

Definition at line 710 of file ssl_session.cc.

◆ ssl_get_version_range()

bool ssl_get_version_range ( const SSL_HANDSHAKE hs,
uint16_t out_min_version,
uint16_t out_max_version 
)

Definition at line 170 of file ssl_versions.cc.

◆ ssl_handle_open_record()

int ssl_handle_open_record ( SSL ssl,
bool out_retry,
ssl_open_record_t  ret,
size_t  consumed,
uint8_t  alert 
)

Definition at line 207 of file ssl_buffer.cc.

◆ ssl_handshake_new()

UniquePtr<SSL_HANDSHAKE> ssl_handshake_new ( SSL ssl)

Definition at line 196 of file handshake.cc.

◆ ssl_handshake_session()

const SSL_SESSION* ssl_handshake_session ( const SSL_HANDSHAKE hs)

Definition at line 581 of file handshake.cc.

◆ ssl_has_certificate()

bool ssl_has_certificate ( const SSL_HANDSHAKE hs)

Definition at line 340 of file ssl_cert.cc.

◆ ssl_has_client_CAs()

bool ssl_has_client_CAs ( const SSL_CONFIG cfg)

Definition at line 664 of file ssl_cert.cc.

◆ ssl_has_private_key()

bool ssl_has_private_key ( const SSL_HANDSHAKE hs)

Definition at line 136 of file ssl_privkey.cc.

◆ ssl_hash_message()

bool ssl_hash_message ( SSL_HANDSHAKE hs,
const SSLMessage msg 
)

Definition at line 260 of file handshake.cc.

◆ ssl_hash_session_id()

uint32_t ssl_hash_session_id ( Span< const uint8_t session_id)

Definition at line 171 of file ssl_session.cc.

◆ ssl_is_alpn_protocol_allowed()

bool ssl_is_alpn_protocol_allowed ( const SSL_HANDSHAKE hs,
Span< const uint8_t protocol 
)

Definition at line 1510 of file extensions.cc.

◆ ssl_is_key_type_supported()

bool ssl_is_key_type_supported ( int  key_type)

Definition at line 74 of file ssl_privkey.cc.

◆ ssl_is_sct_list_valid()

bool ssl_is_sct_list_valid ( const CBS contents)

Definition at line 4286 of file extensions.cc.

◆ ssl_is_valid_alpn_list()

bool ssl_is_valid_alpn_list ( Span< const uint8_t in)

Definition at line 1494 of file extensions.cc.

◆ ssl_is_valid_ech_config_list()

bool ssl_is_valid_ech_config_list ( Span< const uint8_t ech_config_list)

Definition at line 568 of file encrypted_client_hello.cc.

◆ ssl_is_valid_ech_public_name()

OPENSSL_EXPORT bool ssl_is_valid_ech_public_name ( Span< const uint8_t public_name)

Definition at line 338 of file encrypted_client_hello.cc.

◆ ssl_log_secret()

bool ssl_log_secret ( const SSL ssl,
const char *  label,
Span< const uint8_t secret 
)

Definition at line 291 of file ssl_lib.cc.

◆ ssl_max_handshake_message_len()

size_t ssl_max_handshake_message_len ( const SSL ssl)

Definition at line 230 of file handshake.cc.

◆ ssl_method_supports_version()

bool ssl_method_supports_version ( const SSL_PROTOCOL_METHOD method,
uint16_t  version 
)

Definition at line 72 of file ssl_versions.cc.

◆ ssl_name_to_group_id()

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

Definition at line 373 of file ssl_key_share.cc.

◆ ssl_negotiate_alpn()

bool ssl_negotiate_alpn ( SSL_HANDSHAKE hs,
uint8_t out_alert,
const SSL_CLIENT_HELLO client_hello 
)

Definition at line 1538 of file extensions.cc.

◆ ssl_negotiate_alps()

bool ssl_negotiate_alps ( SSL_HANDSHAKE hs,
uint8_t out_alert,
const SSL_CLIENT_HELLO client_hello 
)

Definition at line 3034 of file extensions.cc.

◆ ssl_negotiate_version()

bool ssl_negotiate_version ( SSL_HANDSHAKE hs,
uint8_t out_alert,
uint16_t out_version,
const CBS peer_versions 
)

Definition at line 290 of file ssl_versions.cc.

◆ ssl_nid_to_group_id()

bool ssl_nid_to_group_id ( uint16_t out_group_id,
int  nid 
)

Definition at line 363 of file ssl_key_share.cc.

◆ ssl_on_certificate_selected()

bool ssl_on_certificate_selected ( SSL_HANDSHAKE hs)

Definition at line 726 of file ssl_cert.cc.

◆ ssl_open_app_data()

ssl_open_record_t ssl_open_app_data ( SSL ssl,
Span< uint8_t > *  out,
size_t *  out_consumed,
uint8_t out_alert,
Span< uint8_t in 
)

Definition at line 260 of file ssl_lib.cc.

◆ ssl_open_change_cipher_spec()

ssl_open_record_t ssl_open_change_cipher_spec ( SSL ssl,
size_t *  out_consumed,
uint8_t out_alert,
Span< uint8_t in 
)

Definition at line 244 of file ssl_lib.cc.

◆ ssl_open_handshake()

ssl_open_record_t ssl_open_handshake ( SSL ssl,
size_t *  out_consumed,
uint8_t out_alert,
Span< uint8_t in 
)

Definition at line 230 of file ssl_lib.cc.

◆ ssl_output_cert_chain()

bool ssl_output_cert_chain ( SSL_HANDSHAKE hs)

Definition at line 567 of file handshake.cc.

◆ ssl_parse_cert_chain()

bool ssl_parse_cert_chain ( uint8_t out_alert,
UniquePtr< STACK_OF(CRYPTO_BUFFER)> *  out_chain,
UniquePtr< EVP_PKEY > *  out_pubkey,
uint8_t out_leaf_sha256,
CBS cbs,
CRYPTO_BUFFER_POOL pool 
)

Definition at line 346 of file ssl_cert.cc.

◆ ssl_parse_client_CA_list()

UniquePtr<STACK_OF(CRYPTO_BUFFER)> ssl_parse_client_CA_list ( SSL ssl,
uint8_t out_alert,
CBS cbs 
)

Definition at line 618 of file ssl_cert.cc.

◆ ssl_parse_client_hello_with_trailing_data()

bool ssl_parse_client_hello_with_trailing_data ( const SSL ssl,
CBS cbs,
SSL_CLIENT_HELLO out 
)

Definition at line 221 of file extensions.cc.

◆ ssl_parse_clienthello_tlsext()

bool ssl_parse_clienthello_tlsext ( SSL_HANDSHAKE hs,
const SSL_CLIENT_HELLO client_hello 
)

Definition at line 3651 of file extensions.cc.

◆ ssl_parse_extensions()

bool ssl_parse_extensions ( const CBS cbs,
uint8_t out_alert,
std::initializer_list< SSLExtension * >  extensions,
bool  ignore_unknown 
)

Definition at line 269 of file handshake.cc.

◆ ssl_parse_server_hello()

bool ssl_parse_server_hello ( ParsedServerHello out,
uint8_t out_alert,
const SSLMessage msg 
)

Definition at line 648 of file handshake_client.cc.

◆ ssl_parse_serverhello_tlsext()

bool ssl_parse_serverhello_tlsext ( SSL_HANDSHAKE hs,
const CBS extensions 
)

Definition at line 3793 of file extensions.cc.

◆ ssl_private_key_decrypt()

enum ssl_private_key_result_t ssl_private_key_decrypt ( SSL_HANDSHAKE hs,
uint8_t out,
size_t *  out_len,
size_t  max_out,
Span< const uint8_t in 
)

Definition at line 252 of file ssl_privkey.cc.

◆ ssl_private_key_sign()

enum ssl_private_key_result_t ssl_private_key_sign ( SSL_HANDSHAKE hs,
uint8_t out,
size_t *  out_len,
size_t  max_out,
uint16_t  sigalg,
Span< const uint8_t in 
)

Definition at line 200 of file ssl_privkey.cc.

◆ ssl_private_key_supports_signature_algorithm()

bool ssl_private_key_supports_signature_algorithm ( SSL_HANDSHAKE hs,
uint16_t  sigalg 
)

Definition at line 290 of file ssl_privkey.cc.

◆ ssl_process_alert()

enum ssl_open_record_t ssl_process_alert ( SSL ssl,
uint8_t out_alert,
Span< const uint8_t in 
)

Definition at line 548 of file tls_record.cc.

◆ ssl_process_ticket()

enum ssl_ticket_aead_result_t ssl_process_ticket ( SSL_HANDSHAKE hs,
UniquePtr< SSL_SESSION > *  out_session,
bool out_renew_ticket,
Span< const uint8_t ticket,
Span< const uint8_t session_id 
)

Definition at line 3952 of file extensions.cc.

◆ ssl_protocol_version()

uint16_t ssl_protocol_version ( const SSL ssl)

Definition at line 251 of file ssl_versions.cc.

◆ ssl_protocol_version_from_wire()

bool ssl_protocol_version_from_wire ( uint16_t out,
uint16_t  version 
)

Definition at line 28 of file ssl_versions.cc.

◆ ssl_public_key_verify()

bool ssl_public_key_verify ( SSL ssl,
Span< const uint8_t signature,
uint16_t  sigalg,
EVP_PKEY pkey,
Span< const uint8_t in 
)

Definition at line 236 of file ssl_privkey.cc.

◆ ssl_read_buffer_extend_to()

int ssl_read_buffer_extend_to ( SSL ssl,
size_t  len 
)

Definition at line 169 of file ssl_buffer.cc.

◆ ssl_record_prefix_len()

size_t ssl_record_prefix_len ( const SSL ssl)

Definition at line 165 of file tls_record.cc.

◆ ssl_record_sequence_update()

bool ssl_record_sequence_update ( uint8_t seq,
size_t  seq_len 
)

Definition at line 154 of file tls_record.cc.

◆ ssl_reset_error_state()

void ssl_reset_error_state ( SSL ssl)

Definition at line 201 of file ssl_lib.cc.

◆ ssl_reverify_peer_cert()

enum ssl_verify_result_t ssl_reverify_peer_cert ( SSL_HANDSHAKE hs,
bool  send_alert 
)

Definition at line 423 of file handshake.cc.

◆ ssl_run_handshake()

int ssl_run_handshake ( SSL_HANDSHAKE hs,
bool out_early_return 
)

Definition at line 588 of file handshake.cc.

◆ ssl_seal_align_prefix_len()

size_t ssl_seal_align_prefix_len ( const SSL ssl)

Definition at line 176 of file tls_record.cc.

◆ ssl_select_ech_config()

bool ssl_select_ech_config ( SSL_HANDSHAKE hs,
Span< uint8_t out_enc,
size_t *  out_enc_len 
)

Definition at line 618 of file encrypted_client_hello.cc.

◆ ssl_send_alert()

void ssl_send_alert ( SSL ssl,
int  level,
int  desc 
)

Definition at line 379 of file s3_pkt.cc.

◆ ssl_send_alert_impl()

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

Definition at line 396 of file s3_pkt.cc.

◆ ssl_send_finished()

bool ssl_send_finished ( SSL_HANDSHAKE hs)

Definition at line 523 of file handshake.cc.

◆ ssl_server_handshake()

enum ssl_hs_wait_t ssl_server_handshake ( SSL_HANDSHAKE hs)

Definition at line 1816 of file handshake_server.cc.

◆ ssl_server_handshake_state()

const char* ssl_server_handshake_state ( SSL_HANDSHAKE hs)

Definition at line 1903 of file handshake_server.cc.

◆ SSL_SESSION_dup()

OPENSSL_EXPORT UniquePtr<SSL_SESSION> SSL_SESSION_dup ( SSL_SESSION session,
int  dup_flags 
)

Definition at line 191 of file ssl_session.cc.

◆ ssl_session_get_digest()

const EVP_MD* ssl_session_get_digest ( const SSL_SESSION session)

Definition at line 347 of file ssl_session.cc.

◆ ssl_session_is_context_valid()

int ssl_session_is_context_valid ( const SSL_HANDSHAKE hs,
const SSL_SESSION session 
)

Definition at line 583 of file ssl_session.cc.

◆ ssl_session_is_resumable()

int ssl_session_is_resumable ( const SSL_HANDSHAKE hs,
const SSL_SESSION session 
)

Definition at line 610 of file ssl_session.cc.

◆ ssl_session_is_time_valid()

int ssl_session_is_time_valid ( const SSL ssl,
const SSL_SESSION session 
)

Definition at line 594 of file ssl_session.cc.

◆ ssl_session_new()

UniquePtr<SSL_SESSION> ssl_session_new ( const SSL_X509_METHOD x509_method)

Definition at line 167 of file ssl_session.cc.

◆ SSL_SESSION_parse()

OPENSSL_EXPORT UniquePtr<SSL_SESSION> SSL_SESSION_parse ( CBS cbs,
const SSL_X509_METHOD x509_method,
CRYPTO_BUFFER_POOL pool 
)

Definition at line 555 of file ssl_asn1.cc.

◆ ssl_session_protocol_version()

uint16_t ssl_session_protocol_version ( const SSL_SESSION session)

Definition at line 335 of file ssl_session.cc.

◆ ssl_session_rebase_time()

void ssl_session_rebase_time ( SSL ssl,
SSL_SESSION session 
)

Definition at line 290 of file ssl_session.cc.

◆ ssl_session_renew_timeout()

void ssl_session_renew_timeout ( SSL ssl,
SSL_SESSION session,
uint32_t  timeout 
)

Definition at line 319 of file ssl_session.cc.

◆ ssl_session_serialize()

OPENSSL_EXPORT int ssl_session_serialize ( const SSL_SESSION in,
CBB cbb 
)

Definition at line 811 of file ssl_asn1.cc.

◆ ssl_set_cert()

bool ssl_set_cert ( CERT cert,
UniquePtr< CRYPTO_BUFFER buffer 
)

Definition at line 305 of file ssl_cert.cc.

◆ ssl_set_read_error()

void ssl_set_read_error ( SSL ssl)

Definition at line 209 of file ssl_lib.cc.

◆ ssl_set_session()

void ssl_set_session ( SSL ssl,
SSL_SESSION session 
)

Definition at line 788 of file ssl_session.cc.

◆ ssl_setup_extension_permutation()

bool ssl_setup_extension_permutation ( SSL_HANDSHAKE hs)

Definition at line 3270 of file extensions.cc.

◆ ssl_setup_key_shares()

bool ssl_setup_key_shares ( SSL_HANDSHAKE hs,
uint16_t  override_group_id 
)

Definition at line 2263 of file extensions.cc.

◆ ssl_signing_with_dc()

bool ssl_signing_with_dc ( const SSL_HANDSHAKE hs)

Definition at line 831 of file ssl_cert.cc.

◆ ssl_supports_version()

bool ssl_supports_version ( const SSL_HANDSHAKE hs,
uint16_t  version 
)

Definition at line 263 of file ssl_versions.cc.

◆ ssl_update_cache()

void ssl_update_cache ( SSL ssl)

Definition at line 888 of file ssl_session.cc.

◆ ssl_verify_peer_cert()

enum ssl_verify_result_t ssl_verify_peer_cert ( SSL_HANDSHAKE hs)

Definition at line 323 of file handshake.cc.

◆ ssl_write_buffer_flush()

int ssl_write_buffer_flush ( SSL ssl)

Definition at line 293 of file ssl_buffer.cc.

◆ ssl_write_client_hello_without_extensions()

bool ssl_write_client_hello_without_extensions ( const SSL_HANDSHAKE hs,
CBB cbb,
ssl_client_hello_type_t  type,
bool  empty_session_id 
)

Definition at line 286 of file handshake_client.cc.

◆ tls12_add_verify_sigalgs()

bool tls12_add_verify_sigalgs ( const SSL_HANDSHAKE hs,
CBB out 
)

Definition at line 481 of file extensions.cc.

◆ tls12_check_peer_sigalg()

bool tls12_check_peer_sigalg ( const SSL_HANDSHAKE hs,
uint8_t out_alert,
uint16_t  sigalg 
)

Definition at line 490 of file extensions.cc.

◆ tls13_add_certificate()

bool tls13_add_certificate ( SSL_HANDSHAKE hs)

Definition at line 399 of file tls13_both.cc.

◆ tls13_add_certificate_verify()

enum ssl_private_key_result_t tls13_add_certificate_verify ( SSL_HANDSHAKE hs)

Definition at line 562 of file tls13_both.cc.

◆ tls13_add_finished()

bool tls13_add_finished ( SSL_HANDSHAKE hs)

Definition at line 642 of file tls13_both.cc.

◆ tls13_add_key_update()

bool tls13_add_key_update ( SSL ssl,
int  update_requested 
)

Definition at line 664 of file tls13_both.cc.

◆ tls13_advance_key_schedule()

bool tls13_advance_key_schedule ( SSL_HANDSHAKE hs,
Span< const uint8_t in 
)

Definition at line 123 of file tls13_enc.cc.

◆ tls13_client_handshake()

enum ssl_hs_wait_t tls13_client_handshake ( SSL_HANDSHAKE hs)

Definition at line 924 of file tls13_client.cc.

◆ tls13_client_handshake_state()

const char* tls13_client_handshake_state ( SSL_HANDSHAKE hs)

Definition at line 989 of file tls13_client.cc.

◆ tls13_create_session_with_ticket()

bssl::UniquePtr<SSL_SESSION> tls13_create_session_with_ticket ( SSL ssl,
CBS body 
)

Definition at line 1052 of file tls13_client.cc.

◆ tls13_derive_application_secrets()

bool tls13_derive_application_secrets ( SSL_HANDSHAKE hs)

Definition at line 278 of file tls13_enc.cc.

◆ tls13_derive_early_secret()

bool tls13_derive_early_secret ( SSL_HANDSHAKE hs)

Definition at line 245 of file tls13_enc.cc.

◆ tls13_derive_handshake_secrets()

bool tls13_derive_handshake_secrets ( SSL_HANDSHAKE hs)

Definition at line 262 of file tls13_enc.cc.

◆ tls13_derive_resumption_secret()

bool tls13_derive_resumption_secret ( SSL_HANDSHAKE hs)

Definition at line 323 of file tls13_enc.cc.

◆ tls13_derive_session_psk()

bool tls13_derive_session_psk ( SSL_SESSION session,
Span< const uint8_t nonce 
)

Definition at line 374 of file tls13_enc.cc.

◆ tls13_export_keying_material()

bool tls13_export_keying_material ( SSL ssl,
Span< uint8_t out,
Span< const uint8_t secret,
Span< const char >  label,
Span< const uint8_t context 
)

Definition at line 385 of file tls13_enc.cc.

◆ tls13_finished_mac()

bool tls13_finished_mac ( SSL_HANDSHAKE hs,
uint8_t out,
size_t *  out_len,
bool  is_server 
)

Definition at line 356 of file tls13_enc.cc.

◆ tls13_get_cert_verify_signature_input()

bool tls13_get_cert_verify_signature_input ( SSL_HANDSHAKE hs,
Array< uint8_t > *  out,
enum ssl_cert_verify_context_t  cert_verify_context 
)

Definition at line 56 of file tls13_both.cc.

◆ tls13_init_early_key_schedule()

bool tls13_init_early_key_schedule ( SSL_HANDSHAKE hs,
const SSL_SESSION session 
)

Definition at line 75 of file tls13_enc.cc.

◆ tls13_init_key_schedule()

bool tls13_init_key_schedule ( SSL_HANDSHAKE hs,
Span< const uint8_t psk 
)

Definition at line 61 of file tls13_enc.cc.

◆ tls13_post_handshake()

bool tls13_post_handshake ( SSL ssl,
const SSLMessage msg 
)

Definition at line 709 of file tls13_both.cc.

◆ tls13_process_certificate()

bool tls13_process_certificate ( SSL_HANDSHAKE hs,
const SSLMessage msg,
bool  allow_anonymous 
)

Definition at line 107 of file tls13_both.cc.

◆ tls13_process_certificate_verify()

bool tls13_process_certificate_verify ( SSL_HANDSHAKE hs,
const SSLMessage msg 
)

Definition at line 327 of file tls13_both.cc.

◆ tls13_process_finished()

bool tls13_process_finished ( SSL_HANDSHAKE hs,
const SSLMessage msg,
bool  use_saved_value 
)

Definition at line 369 of file tls13_both.cc.

◆ tls13_process_new_session_ticket()

bool tls13_process_new_session_ticket ( SSL ssl,
const SSLMessage msg 
)

Definition at line 1028 of file tls13_client.cc.

◆ tls13_rotate_traffic_key()

bool tls13_rotate_traffic_key ( SSL ssl,
enum evp_aead_direction_t  direction 
)

Definition at line 303 of file tls13_enc.cc.

◆ tls13_server_handshake()

enum ssl_hs_wait_t tls13_server_handshake ( SSL_HANDSHAKE hs)

Definition at line 1235 of file tls13_server.cc.

◆ tls13_server_handshake_state()

const char* tls13_server_handshake_state ( SSL_HANDSHAKE hs)

Definition at line 1306 of file tls13_server.cc.

◆ tls13_set_traffic_key()

bool tls13_set_traffic_key ( SSL ssl,
enum ssl_encryption_level_t  level,
enum evp_aead_direction_t  direction,
const SSL_SESSION session,
Span< const uint8_t traffic_secret 
)

Definition at line 156 of file tls13_enc.cc.

◆ tls13_verify_psk_binder()

bool tls13_verify_psk_binder ( const SSL_HANDSHAKE hs,
const SSL_SESSION session,
const SSLMessage msg,
CBS binders 
)

Definition at line 500 of file tls13_enc.cc.

◆ tls13_write_psk_binder()

bool tls13_write_psk_binder ( const SSL_HANDSHAKE hs,
const SSLTranscript transcript,
Span< uint8_t msg,
size_t *  out_binder_len 
)

Definition at line 473 of file tls13_enc.cc.

◆ tls1_change_cipher_state()

bool tls1_change_cipher_state ( SSL_HANDSHAKE hs,
evp_aead_direction_t  direction 
)

Definition at line 264 of file t1_enc.cc.

◆ tls1_channel_id_hash()

bool tls1_channel_id_hash ( SSL_HANDSHAKE hs,
uint8_t out,
size_t *  out_len 
)

Definition at line 4219 of file extensions.cc.

◆ tls1_check_group_id()

bool tls1_check_group_id ( const SSL_HANDSHAKE ssl,
uint16_t  group_id 
)

Definition at line 408 of file extensions.cc.

◆ tls1_choose_signature_algorithm()

bool tls1_choose_signature_algorithm ( SSL_HANDSHAKE hs,
uint16_t out 
)

Definition at line 4054 of file extensions.cc.

◆ tls1_configure_aead()

bool tls1_configure_aead ( SSL ssl,
evp_aead_direction_t  direction,
Array< uint8_t > *  key_block_cache,
const SSL_SESSION session,
Span< const uint8_t iv_override 
)

Definition at line 205 of file t1_enc.cc.

◆ tls1_generate_master_secret()

int tls1_generate_master_secret ( SSL_HANDSHAKE hs,
uint8_t out,
Span< const uint8_t premaster 
)

Definition at line 270 of file t1_enc.cc.

◆ tls1_get_grouplist()

Span<const uint16_t> tls1_get_grouplist ( const SSL_HANDSHAKE ssl)

Definition at line 311 of file extensions.cc.

◆ tls1_get_legacy_signature_algorithm()

bool tls1_get_legacy_signature_algorithm ( uint16_t out,
const EVP_PKEY pkey 
)

Definition at line 4041 of file extensions.cc.

◆ tls1_get_peer_verify_algorithms()

Span<const uint16_t> tls1_get_peer_verify_algorithms ( const SSL_HANDSHAKE hs)

Definition at line 4098 of file extensions.cc.

◆ tls1_get_shared_group()

bool tls1_get_shared_group ( SSL_HANDSHAKE hs,
uint16_t out_group_id 
)

Definition at line 318 of file extensions.cc.

◆ tls1_parse_peer_sigalgs()

bool tls1_parse_peer_sigalgs ( SSL_HANDSHAKE hs,
const CBS sigalgs 
)

Definition at line 4029 of file extensions.cc.

◆ tls1_prf()

bool tls1_prf ( const EVP_MD digest,
Span< uint8_t out,
Span< const uint8_t secret,
Span< const char >  label,
Span< const uint8_t seed1,
Span< const uint8_t seed2 
)

Definition at line 158 of file t1_enc.cc.

◆ tls1_record_handshake_hashes_for_channel_id()

bool tls1_record_handshake_hashes_for_channel_id ( SSL_HANDSHAKE hs)

Definition at line 4260 of file extensions.cc.

◆ tls1_set_curves()

bool tls1_set_curves ( Array< uint16_t > *  out_group_ids,
Span< const int curves 
)

Definition at line 357 of file extensions.cc.

◆ tls1_set_curves_list()

bool tls1_set_curves_list ( Array< uint16_t > *  out_group_ids,
const char *  curves 
)

Definition at line 373 of file extensions.cc.

◆ tls1_verify_channel_id()

bool tls1_verify_channel_id ( SSL_HANDSHAKE hs,
const SSLMessage msg 
)

Definition at line 4111 of file extensions.cc.

◆ tls1_write_channel_id()

bool tls1_write_channel_id ( SSL_HANDSHAKE hs,
CBB cbb 
)

Definition at line 4179 of file extensions.cc.

◆ tls_add_change_cipher_spec()

bool tls_add_change_cipher_spec ( SSL ssl)

Definition at line 266 of file s3_both.cc.

◆ tls_add_message()

bool tls_add_message ( SSL ssl,
Array< uint8_t msg 
)

Definition at line 188 of file s3_both.cc.

◆ tls_append_handshake_data()

bool tls_append_handshake_data ( SSL ssl,
Span< const uint8_t data 
)

Definition at line 552 of file s3_both.cc.

◆ tls_can_accept_handshake_data()

bool tls_can_accept_handshake_data ( const SSL ssl,
uint8_t out_alert 
)

Definition at line 519 of file s3_both.cc.

◆ tls_dispatch_alert()

int tls_dispatch_alert ( SSL ssl)

Definition at line 424 of file s3_pkt.cc.

◆ tls_finish_message()

bool tls_finish_message ( const SSL ssl,
CBB cbb,
Array< uint8_t > *  out_msg 
)

Definition at line 184 of file s3_both.cc.

◆ tls_flush_flight()

int tls_flush_flight ( SSL ssl)

Definition at line 284 of file s3_both.cc.

◆ tls_flush_pending_hs_data()

bool tls_flush_pending_hs_data ( SSL ssl)

Definition at line 244 of file s3_both.cc.

◆ tls_free()

void tls_free ( SSL ssl)

Definition at line 210 of file s3_lib.cc.

◆ tls_get_message()

bool tls_get_message ( const SSL ssl,
SSLMessage out 
)

Definition at line 505 of file s3_both.cc.

◆ tls_has_unprocessed_handshake_data()

bool tls_has_unprocessed_handshake_data ( const SSL ssl)

Definition at line 539 of file s3_both.cc.

◆ tls_init_message()

bool tls_init_message ( const SSL ssl,
CBB cbb,
CBB body,
uint8_t  type 
)

Definition at line 171 of file s3_both.cc.

◆ tls_new()

bool tls_new ( SSL ssl)

Definition at line 186 of file s3_lib.cc.

◆ tls_next_message()

void tls_next_message ( SSL ssl)

Definition at line 640 of file s3_both.cc.

◆ tls_open_app_data()

ssl_open_record_t tls_open_app_data ( SSL ssl,
Span< uint8_t > *  out,
size_t *  out_consumed,
uint8_t out_alert,
Span< uint8_t in 
)

Definition at line 297 of file s3_pkt.cc.

◆ tls_open_change_cipher_spec()

ssl_open_record_t tls_open_change_cipher_spec ( SSL ssl,
size_t *  out_consumed,
uint8_t out_alert,
Span< uint8_t in 
)

Definition at line 353 of file s3_pkt.cc.

◆ tls_open_handshake()

ssl_open_record_t tls_open_handshake ( SSL ssl,
size_t *  out_consumed,
uint8_t out_alert,
Span< uint8_t in 
)

Definition at line 561 of file s3_both.cc.

◆ tls_open_record()

enum ssl_open_record_t tls_open_record ( SSL ssl,
uint8_t out_type,
Span< uint8_t > *  out,
size_t *  out_consumed,
uint8_t out_alert,
Span< uint8_t in 
)

Definition at line 206 of file tls_record.cc.

◆ tls_seal_record()

bool 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 at line 514 of file tls_record.cc.

◆ tls_write_app_data()

int tls_write_app_data ( SSL ssl,
bool out_needs_handshake,
const uint8_t buf,
int  len 
)

Definition at line 131 of file s3_pkt.cc.

Variable Documentation

◆ kHelloRetryRequest

const uint8_t kHelloRetryRequest[SSL3_RANDOM_SIZE]

Definition at line 40 of file tls13_both.cc.

◆ kJDK11DowngradeRandom

const uint8_t kJDK11DowngradeRandom[8]

Definition at line 53 of file tls13_both.cc.

◆ kMaxEarlyDataAccepted

const size_t kMaxEarlyDataAccepted = 14336
static

◆ kTLS12DowngradeRandom

const uint8_t kTLS12DowngradeRandom[8]

Definition at line 47 of file tls13_both.cc.

◆ kTLS13DowngradeRandom

const uint8_t kTLS13DowngradeRandom[8]

Definition at line 49 of file tls13_both.cc.

◆ ssl_crypto_x509_method

const SSL_X509_METHOD ssl_crypto_x509_method

Definition at line 511 of file ssl_x509.cc.

◆ ssl_noop_x509_method

const SSL_X509_METHOD ssl_noop_x509_method

Definition at line 203 of file tls_method.cc.



grpc
Author(s):
autogenerated on Fri May 16 2025 03:01:21