Classes | Macros | Functions | Variables
extensions.cc File Reference
#include <openssl/ssl.h>
#include <assert.h>
#include <limits.h>
#include <stdlib.h>
#include <string.h>
#include <algorithm>
#include <utility>
#include <openssl/aead.h>
#include <openssl/bytestring.h>
#include <openssl/chacha.h>
#include <openssl/curve25519.h>
#include <openssl/digest.h>
#include <openssl/err.h>
#include <openssl/evp.h>
#include <openssl/hmac.h>
#include <openssl/hpke.h>
#include <openssl/mem.h>
#include <openssl/nid.h>
#include <openssl/rand.h>
#include "../crypto/internal.h"
#include "internal.h"
Include dependency graph for extensions.cc:

Go to the source code of this file.

Classes

struct  tls_extension
 

Macros

#define kNumExtensions   (sizeof(kExtensions) / sizeof(struct tls_extension))
 

Functions

static bool add_padding_extension (CBB *cbb, uint16_t ext, size_t len)
 
static bool cert_compression_add_clienthello (const SSL_HANDSHAKE *hs, CBB *out, CBB *out_compressible, ssl_client_hello_type_t type)
 
static bool cert_compression_add_serverhello (SSL_HANDSHAKE *hs, CBB *out)
 
static bool cert_compression_parse_clienthello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool cert_compression_parse_serverhello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static int compare_uint16_t (const void *p1, const void *p2)
 
static enum ssl_ticket_aead_result_t decrypt_ticket_with_cipher_ctx (Array< uint8_t > *out, EVP_CIPHER_CTX *cipher_ctx, HMAC_CTX *hmac_ctx, Span< const uint8_t > ticket)
 
static bool dont_add_serverhello (SSL_HANDSHAKE *hs, CBB *out)
 
static bool ext_alpn_add_clienthello (const SSL_HANDSHAKE *hs, CBB *out, CBB *out_compressible, ssl_client_hello_type_t type)
 
static bool ext_alpn_add_serverhello (SSL_HANDSHAKE *hs, CBB *out)
 
static bool ext_alpn_parse_serverhello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_alps_add_clienthello (const SSL_HANDSHAKE *hs, CBB *out, CBB *out_compressible, ssl_client_hello_type_t type)
 
static bool ext_alps_add_serverhello (SSL_HANDSHAKE *hs, CBB *out)
 
static bool ext_alps_parse_serverhello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_channel_id_add_clienthello (const SSL_HANDSHAKE *hs, CBB *out, CBB *out_compressible, ssl_client_hello_type_t type)
 
static bool ext_channel_id_add_serverhello (SSL_HANDSHAKE *hs, CBB *out)
 
static bool ext_channel_id_parse_clienthello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_channel_id_parse_serverhello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_cookie_add_clienthello (const SSL_HANDSHAKE *hs, CBB *out, CBB *out_compressible, ssl_client_hello_type_t type)
 
static bool ext_delegated_credential_add_clienthello (const SSL_HANDSHAKE *hs, CBB *out, CBB *out_compressible, ssl_client_hello_type_t type)
 
static bool ext_delegated_credential_parse_clienthello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_early_data_add_clienthello (const SSL_HANDSHAKE *hs, CBB *out, CBB *out_compressible, ssl_client_hello_type_t type)
 
static bool ext_early_data_add_serverhello (SSL_HANDSHAKE *hs, CBB *out)
 
static bool ext_early_data_parse_clienthello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_early_data_parse_serverhello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_ec_point_add_clienthello (const SSL_HANDSHAKE *hs, CBB *out, CBB *out_compressible, ssl_client_hello_type_t type)
 
static bool ext_ec_point_add_extension (const SSL_HANDSHAKE *hs, CBB *out)
 
static bool ext_ec_point_add_serverhello (SSL_HANDSHAKE *hs, CBB *out)
 
static bool ext_ec_point_parse_clienthello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_ec_point_parse_serverhello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_ech_add_clienthello (const SSL_HANDSHAKE *hs, CBB *out, CBB *out_compressible, ssl_client_hello_type_t type)
 
static bool ext_ech_add_serverhello (SSL_HANDSHAKE *hs, CBB *out)
 
static bool ext_ech_parse_clienthello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_ech_parse_serverhello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_ems_add_clienthello (const SSL_HANDSHAKE *hs, CBB *out, CBB *out_compressible, ssl_client_hello_type_t type)
 
static bool ext_ems_add_serverhello (SSL_HANDSHAKE *hs, CBB *out)
 
static bool ext_ems_parse_clienthello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_ems_parse_serverhello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_key_share_add_clienthello (const SSL_HANDSHAKE *hs, CBB *out, CBB *out_compressible, ssl_client_hello_type_t type)
 
static bool ext_npn_add_clienthello (const SSL_HANDSHAKE *hs, CBB *out, CBB *out_compressible, ssl_client_hello_type_t type)
 
static bool ext_npn_add_serverhello (SSL_HANDSHAKE *hs, CBB *out)
 
static bool ext_npn_parse_clienthello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_npn_parse_serverhello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_ocsp_add_clienthello (const SSL_HANDSHAKE *hs, CBB *out, CBB *out_compressible, ssl_client_hello_type_t type)
 
static bool ext_ocsp_add_serverhello (SSL_HANDSHAKE *hs, CBB *out)
 
static bool ext_ocsp_parse_clienthello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_ocsp_parse_serverhello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_pre_shared_key_add_clienthello (const SSL_HANDSHAKE *hs, CBB *out, bool *out_needs_binder, ssl_client_hello_type_t type)
 
static size_t ext_pre_shared_key_clienthello_length (const SSL_HANDSHAKE *hs, ssl_client_hello_type_t type)
 
static bool ext_psk_key_exchange_modes_add_clienthello (const SSL_HANDSHAKE *hs, CBB *out, CBB *out_compressible, ssl_client_hello_type_t type)
 
static bool ext_psk_key_exchange_modes_parse_clienthello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_quic_transport_params_add_clienthello (const SSL_HANDSHAKE *hs, CBB *out, CBB *out_compressible, ssl_client_hello_type_t type)
 
static bool ext_quic_transport_params_add_clienthello_impl (const SSL_HANDSHAKE *hs, CBB *out, bool use_legacy_codepoint)
 
static bool ext_quic_transport_params_add_clienthello_legacy (const SSL_HANDSHAKE *hs, CBB *out, CBB *out_compressible, ssl_client_hello_type_t type)
 
static bool ext_quic_transport_params_add_serverhello (SSL_HANDSHAKE *hs, CBB *out)
 
static bool ext_quic_transport_params_add_serverhello_impl (SSL_HANDSHAKE *hs, CBB *out, bool use_legacy_codepoint)
 
static bool ext_quic_transport_params_add_serverhello_legacy (SSL_HANDSHAKE *hs, CBB *out)
 
static bool ext_quic_transport_params_parse_clienthello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_quic_transport_params_parse_clienthello_impl (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents, bool used_legacy_codepoint)
 
static bool ext_quic_transport_params_parse_clienthello_legacy (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_quic_transport_params_parse_serverhello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_quic_transport_params_parse_serverhello_impl (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents, bool used_legacy_codepoint)
 
static bool ext_quic_transport_params_parse_serverhello_legacy (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_ri_add_clienthello (const SSL_HANDSHAKE *hs, CBB *out, CBB *out_compressible, ssl_client_hello_type_t type)
 
static bool ext_ri_add_serverhello (SSL_HANDSHAKE *hs, CBB *out)
 
static bool ext_ri_parse_clienthello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_ri_parse_serverhello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_sct_add_clienthello (const SSL_HANDSHAKE *hs, CBB *out, CBB *out_compressible, ssl_client_hello_type_t type)
 
static bool ext_sct_add_serverhello (SSL_HANDSHAKE *hs, CBB *out)
 
static bool ext_sct_parse_clienthello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_sct_parse_serverhello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_sigalgs_add_clienthello (const SSL_HANDSHAKE *hs, CBB *out, CBB *out_compressible, ssl_client_hello_type_t type)
 
static bool ext_sigalgs_parse_clienthello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_sni_add_clienthello (const SSL_HANDSHAKE *hs, CBB *out, CBB *out_compressible, ssl_client_hello_type_t type)
 
static bool ext_sni_add_serverhello (SSL_HANDSHAKE *hs, CBB *out)
 
static bool ext_sni_parse_clienthello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_sni_parse_serverhello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_srtp_add_clienthello (const SSL_HANDSHAKE *hs, CBB *out, CBB *out_compressible, ssl_client_hello_type_t type)
 
static bool ext_srtp_add_serverhello (SSL_HANDSHAKE *hs, CBB *out)
 
static bool ext_srtp_parse_clienthello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_srtp_parse_serverhello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_supported_groups_add_clienthello (const SSL_HANDSHAKE *hs, CBB *out, CBB *out_compressible, ssl_client_hello_type_t type)
 
static bool ext_supported_groups_parse_clienthello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_supported_groups_parse_serverhello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ext_supported_versions_add_clienthello (const SSL_HANDSHAKE *hs, CBB *out, CBB *out_compressible, ssl_client_hello_type_t type)
 
static bool ext_ticket_add_clienthello (const SSL_HANDSHAKE *hs, CBB *out, CBB *out_compressible, ssl_client_hello_type_t type)
 
static bool ext_ticket_add_serverhello (SSL_HANDSHAKE *hs, CBB *out)
 
static bool ext_ticket_parse_serverhello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool forbid_parse_serverhello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool ignore_parse_clienthello (SSL_HANDSHAKE *hs, uint8_t *out_alert, CBS *contents)
 
static bool is_post_quantum_group (uint16_t id)
 
static bool parse_u16_array (const CBS *cbs, Array< uint16_t > *out)
 
static bool should_offer_psk (const SSL_HANDSHAKE *hs, ssl_client_hello_type_t type)
 
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)
 
static bool ssl_add_clienthello_tlsext_inner (SSL_HANDSHAKE *hs, CBB *out, CBB *out_encoded, bool *out_needs_psk_binder)
 
bool ssl_add_serverhello_tlsext (SSL_HANDSHAKE *hs, CBB *out)
 
static BSSL_NAMESPACE_BEGIN bool ssl_check_clienthello_tlsext (SSL_HANDSHAKE *hs)
 
static bool ssl_check_serverhello_tlsext (SSL_HANDSHAKE *hs)
 
bool ssl_client_hello_get_extension (const SSL_CLIENT_HELLO *client_hello, CBS *out, uint16_t extension_type)
 
bool ssl_client_hello_init (const SSL *ssl, SSL_CLIENT_HELLO *out, Span< const uint8_t > body)
 
static enum ssl_ticket_aead_result_t ssl_decrypt_ticket_with_cb (SSL_HANDSHAKE *hs, Array< uint8_t > *out, bool *out_renew_ticket, Span< const uint8_t > ticket)
 
static enum ssl_ticket_aead_result_t ssl_decrypt_ticket_with_method (SSL_HANDSHAKE *hs, Array< uint8_t > *out, bool *out_renew_ticket, Span< const uint8_t > ticket)
 
static enum ssl_ticket_aead_result_t ssl_decrypt_ticket_with_ticket_keys (SSL_HANDSHAKE *hs, Array< uint8_t > *out, Span< const uint8_t > ticket)
 
int SSL_early_callback_ctx_extension_get (const SSL_CLIENT_HELLO *client_hello, uint16_t extension_type, const uint8_t **out_data, size_t *out_len)
 
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)
 
bool ssl_get_local_application_settings (const SSL_HANDSHAKE *hs, Span< const uint8_t > *out_settings, Span< const uint8_t > protocol)
 
bool ssl_is_alpn_protocol_allowed (const SSL_HANDSHAKE *hs, Span< const uint8_t > protocol)
 
bool ssl_is_sct_list_valid (const CBS *contents)
 
bool ssl_is_valid_alpn_list (Span< const uint8_t > in)
 
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_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_serverhello_tlsext (SSL_HANDSHAKE *hs, const CBS *cbs)
 
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)
 
static bool ssl_scan_clienthello_tlsext (SSL_HANDSHAKE *hs, const SSL_CLIENT_HELLO *client_hello, int *out_alert)
 
static bool ssl_scan_serverhello_tlsext (SSL_HANDSHAKE *hs, const CBS *cbs, int *out_alert)
 
bool ssl_setup_extension_permutation (SSL_HANDSHAKE *hs)
 
bool ssl_setup_key_shares (SSL_HANDSHAKE *hs, uint16_t override_group_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)
 
static Span< const uint16_ttls12_get_verify_sigalgs (const SSL_HANDSHAKE *hs)
 
bool tls1_channel_id_hash (SSL_HANDSHAKE *hs, uint8_t *out, size_t *out_len)
 
static bool tls1_check_duplicate_extensions (const CBS *cbs)
 
bool tls1_check_group_id (const SSL_HANDSHAKE *hs, uint16_t group_id)
 
bool tls1_choose_signature_algorithm (SSL_HANDSHAKE *hs, uint16_t *out)
 
Span< const uint16_ttls1_get_grouplist (const SSL_HANDSHAKE *hs)
 
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 *in_sigalgs)
 
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)
 
static const struct tls_extensiontls_extension_find (uint32_t *out_index, uint16_t value)
 

Variables

static const uint16_t kDefaultGroups []
 
static const struct tls_extension kExtensions []
 
static const uint16_t kSignSignatureAlgorithms []
 
static const uint16_t kVerifySignatureAlgorithms []
 

Macro Definition Documentation

◆ kNumExtensions

#define kNumExtensions   (sizeof(kExtensions) / sizeof(struct tls_extension))

Definition at line 3261 of file extensions.cc.

Function Documentation

◆ add_padding_extension()

static bool add_padding_extension ( CBB cbb,
uint16_t  ext,
size_t  len 
)
static

Definition at line 3307 of file extensions.cc.

◆ cert_compression_add_clienthello()

static bool cert_compression_add_clienthello ( const SSL_HANDSHAKE hs,
CBB out,
CBB out_compressible,
ssl_client_hello_type_t  type 
)
static

Definition at line 2828 of file extensions.cc.

◆ cert_compression_add_serverhello()

static bool cert_compression_add_serverhello ( SSL_HANDSHAKE hs,
CBB out 
)
static

Definition at line 2929 of file extensions.cc.

◆ cert_compression_parse_clienthello()

static bool cert_compression_parse_clienthello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 2866 of file extensions.cc.

◆ cert_compression_parse_serverhello()

static bool cert_compression_parse_serverhello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 2854 of file extensions.cc.

◆ compare_uint16_t()

static int compare_uint16_t ( const void *  p1,
const void *  p2 
)
static

Definition at line 141 of file extensions.cc.

◆ decrypt_ticket_with_cipher_ctx()

static enum ssl_ticket_aead_result_t decrypt_ticket_with_cipher_ctx ( Array< uint8_t > *  out,
EVP_CIPHER_CTX cipher_ctx,
HMAC_CTX hmac_ctx,
Span< const uint8_t ticket 
)
static

Definition at line 3808 of file extensions.cc.

◆ dont_add_serverhello()

static bool dont_add_serverhello ( SSL_HANDSHAKE hs,
CBB out 
)
static

Definition at line 560 of file extensions.cc.

◆ ext_alpn_add_clienthello()

static bool ext_alpn_add_clienthello ( const SSL_HANDSHAKE hs,
CBB out,
CBB out_compressible,
ssl_client_hello_type_t  type 
)
static

Definition at line 1416 of file extensions.cc.

◆ ext_alpn_add_serverhello()

static bool ext_alpn_add_serverhello ( SSL_HANDSHAKE hs,
CBB out 
)
static

Definition at line 1608 of file extensions.cc.

◆ ext_alpn_parse_serverhello()

static bool ext_alpn_parse_serverhello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 1445 of file extensions.cc.

◆ ext_alps_add_clienthello()

static bool ext_alps_add_clienthello ( const SSL_HANDSHAKE hs,
CBB out,
CBB out_compressible,
ssl_client_hello_type_t  type 
)
static

Definition at line 2949 of file extensions.cc.

◆ ext_alps_add_serverhello()

static bool ext_alps_add_serverhello ( SSL_HANDSHAKE hs,
CBB out 
)
static

Definition at line 3011 of file extensions.cc.

◆ ext_alps_parse_serverhello()

static bool ext_alps_parse_serverhello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 2982 of file extensions.cc.

◆ ext_channel_id_add_clienthello()

static bool ext_channel_id_add_clienthello ( const SSL_HANDSHAKE hs,
CBB out,
CBB out_compressible,
ssl_client_hello_type_t  type 
)
static

Definition at line 1633 of file extensions.cc.

◆ ext_channel_id_add_serverhello()

static bool ext_channel_id_add_serverhello ( SSL_HANDSHAKE hs,
CBB out 
)
static

Definition at line 1692 of file extensions.cc.

◆ ext_channel_id_parse_clienthello()

static bool ext_channel_id_parse_clienthello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 1676 of file extensions.cc.

◆ ext_channel_id_parse_serverhello()

static bool ext_channel_id_parse_serverhello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 1658 of file extensions.cc.

◆ ext_cookie_add_clienthello()

static bool ext_cookie_add_clienthello ( const SSL_HANDSHAKE hs,
CBB out,
CBB out_compressible,
ssl_client_hello_type_t  type 
)
static

Definition at line 2499 of file extensions.cc.

◆ ext_delegated_credential_add_clienthello()

static bool ext_delegated_credential_add_clienthello ( const SSL_HANDSHAKE hs,
CBB out,
CBB out_compressible,
ssl_client_hello_type_t  type 
)
static

Definition at line 2797 of file extensions.cc.

◆ ext_delegated_credential_parse_clienthello()

static bool ext_delegated_credential_parse_clienthello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 2803 of file extensions.cc.

◆ ext_early_data_add_clienthello()

static bool ext_early_data_add_clienthello ( const SSL_HANDSHAKE hs,
CBB out,
CBB out_compressible,
ssl_client_hello_type_t  type 
)
static

Definition at line 2161 of file extensions.cc.

◆ ext_early_data_add_serverhello()

static bool ext_early_data_add_serverhello ( SSL_HANDSHAKE hs,
CBB out 
)
static

Definition at line 2244 of file extensions.cc.

◆ ext_early_data_parse_clienthello()

static bool ext_early_data_parse_clienthello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 2227 of file extensions.cc.

◆ ext_early_data_parse_serverhello()

static bool ext_early_data_parse_serverhello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 2189 of file extensions.cc.

◆ ext_ec_point_add_clienthello()

static bool ext_ec_point_add_clienthello ( const SSL_HANDSHAKE hs,
CBB out,
CBB out_compressible,
ssl_client_hello_type_t  type 
)
static

Definition at line 1866 of file extensions.cc.

◆ ext_ec_point_add_extension()

static bool ext_ec_point_add_extension ( const SSL_HANDSHAKE hs,
CBB out 
)
static

Definition at line 1853 of file extensions.cc.

◆ ext_ec_point_add_serverhello()

static bool ext_ec_point_add_serverhello ( SSL_HANDSHAKE hs,
CBB out 
)
static

Definition at line 1914 of file extensions.cc.

◆ ext_ec_point_parse_clienthello()

static bool ext_ec_point_parse_clienthello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 1905 of file extensions.cc.

◆ ext_ec_point_parse_serverhello()

static bool ext_ec_point_parse_serverhello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 1877 of file extensions.cc.

◆ ext_ech_add_clienthello()

static bool ext_ech_add_clienthello ( const SSL_HANDSHAKE hs,
CBB out,
CBB out_compressible,
ssl_client_hello_type_t  type 
)
static

Definition at line 631 of file extensions.cc.

◆ ext_ech_add_serverhello()

static bool ext_ech_add_serverhello ( SSL_HANDSHAKE hs,
CBB out 
)
static

Definition at line 712 of file extensions.cc.

◆ ext_ech_parse_clienthello()

static bool ext_ech_parse_clienthello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 690 of file extensions.cc.

◆ ext_ech_parse_serverhello()

static bool ext_ech_parse_serverhello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 659 of file extensions.cc.

◆ ext_ems_add_clienthello()

static bool ext_ems_add_clienthello ( const SSL_HANDSHAKE hs,
CBB out,
CBB out_compressible,
ssl_client_hello_type_t  type 
)
static

Definition at line 913 of file extensions.cc.

◆ ext_ems_add_serverhello()

static bool ext_ems_add_serverhello ( SSL_HANDSHAKE hs,
CBB out 
)
static

Definition at line 972 of file extensions.cc.

◆ ext_ems_parse_clienthello()

static bool ext_ems_parse_clienthello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 954 of file extensions.cc.

◆ ext_ems_parse_serverhello()

static bool ext_ems_parse_serverhello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 929 of file extensions.cc.

◆ ext_key_share_add_clienthello()

static bool ext_key_share_add_clienthello ( const SSL_HANDSHAKE hs,
CBB out,
CBB out_compressible,
ssl_client_hello_type_t  type 
)
static

Definition at line 2329 of file extensions.cc.

◆ ext_npn_add_clienthello()

static bool ext_npn_add_clienthello ( const SSL_HANDSHAKE hs,
CBB out,
CBB out_compressible,
ssl_client_hello_type_t  type 
)
static

Definition at line 1195 of file extensions.cc.

◆ ext_npn_add_serverhello()

static bool ext_npn_add_serverhello ( SSL_HANDSHAKE hs,
CBB out 
)
static

Definition at line 1289 of file extensions.cc.

◆ ext_npn_parse_clienthello()

static bool ext_npn_parse_clienthello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 1267 of file extensions.cc.

◆ ext_npn_parse_serverhello()

static bool ext_npn_parse_serverhello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 1216 of file extensions.cc.

◆ ext_ocsp_add_clienthello()

static bool ext_ocsp_add_clienthello ( const SSL_HANDSHAKE hs,
CBB out,
CBB out_compressible,
ssl_client_hello_type_t  type 
)
static

Definition at line 1111 of file extensions.cc.

◆ ext_ocsp_add_serverhello()

static bool ext_ocsp_add_serverhello ( SSL_HANDSHAKE hs,
CBB out 
)
static

Definition at line 1175 of file extensions.cc.

◆ ext_ocsp_parse_clienthello()

static bool ext_ocsp_parse_clienthello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 1157 of file extensions.cc.

◆ ext_ocsp_parse_serverhello()

static bool ext_ocsp_parse_serverhello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 1131 of file extensions.cc.

◆ ext_pre_shared_key_add_clienthello()

static bool ext_pre_shared_key_add_clienthello ( const SSL_HANDSHAKE hs,
CBB out,
bool out_needs_binder,
ssl_client_hello_type_t  type 
)
static

Definition at line 1971 of file extensions.cc.

◆ ext_pre_shared_key_clienthello_length()

static size_t ext_pre_shared_key_clienthello_length ( const SSL_HANDSHAKE hs,
ssl_client_hello_type_t  type 
)
static

Definition at line 1960 of file extensions.cc.

◆ ext_psk_key_exchange_modes_add_clienthello()

static bool ext_psk_key_exchange_modes_add_clienthello ( const SSL_HANDSHAKE hs,
CBB out,
CBB out_compressible,
ssl_client_hello_type_t  type 
)
static

Definition at line 2116 of file extensions.cc.

◆ ext_psk_key_exchange_modes_parse_clienthello()

static bool ext_psk_key_exchange_modes_parse_clienthello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 2134 of file extensions.cc.

◆ ext_quic_transport_params_add_clienthello()

static bool ext_quic_transport_params_add_clienthello ( const SSL_HANDSHAKE hs,
CBB out,
CBB out_compressible,
ssl_client_hello_type_t  type 
)
static

Definition at line 2642 of file extensions.cc.

◆ ext_quic_transport_params_add_clienthello_impl()

static bool ext_quic_transport_params_add_clienthello_impl ( const SSL_HANDSHAKE hs,
CBB out,
bool  use_legacy_codepoint 
)
static

Definition at line 2608 of file extensions.cc.

◆ ext_quic_transport_params_add_clienthello_legacy()

static bool ext_quic_transport_params_add_clienthello_legacy ( const SSL_HANDSHAKE hs,
CBB out,
CBB out_compressible,
ssl_client_hello_type_t  type 
)
static

Definition at line 2649 of file extensions.cc.

◆ ext_quic_transport_params_add_serverhello()

static bool ext_quic_transport_params_add_serverhello ( SSL_HANDSHAKE hs,
CBB out 
)
static

Definition at line 2781 of file extensions.cc.

◆ ext_quic_transport_params_add_serverhello_impl()

static bool ext_quic_transport_params_add_serverhello_impl ( SSL_HANDSHAKE hs,
CBB out,
bool  use_legacy_codepoint 
)
static

Definition at line 2746 of file extensions.cc.

◆ ext_quic_transport_params_add_serverhello_legacy()

static bool ext_quic_transport_params_add_serverhello_legacy ( SSL_HANDSHAKE hs,
CBB out 
)
static

Definition at line 2787 of file extensions.cc.

◆ ext_quic_transport_params_parse_clienthello()

static bool ext_quic_transport_params_parse_clienthello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 2733 of file extensions.cc.

◆ ext_quic_transport_params_parse_clienthello_impl()

static bool ext_quic_transport_params_parse_clienthello_impl ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents,
bool  used_legacy_codepoint 
)
static

Definition at line 2692 of file extensions.cc.

◆ ext_quic_transport_params_parse_clienthello_legacy()

static bool ext_quic_transport_params_parse_clienthello_legacy ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 2740 of file extensions.cc.

◆ ext_quic_transport_params_parse_serverhello()

static bool ext_quic_transport_params_parse_serverhello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 2679 of file extensions.cc.

◆ ext_quic_transport_params_parse_serverhello_impl()

static bool ext_quic_transport_params_parse_serverhello_impl ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents,
bool  used_legacy_codepoint 
)
static

Definition at line 2656 of file extensions.cc.

◆ ext_quic_transport_params_parse_serverhello_legacy()

static bool ext_quic_transport_params_parse_serverhello_legacy ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 2686 of file extensions.cc.

◆ ext_ri_add_clienthello()

static bool ext_ri_add_clienthello ( const SSL_HANDSHAKE hs,
CBB out,
CBB out_compressible,
ssl_client_hello_type_t  type 
)
static

Definition at line 745 of file extensions.cc.

◆ ext_ri_add_serverhello()

static bool ext_ri_add_serverhello ( SSL_HANDSHAKE hs,
CBB out 
)
static

Definition at line 889 of file extensions.cc.

◆ ext_ri_parse_clienthello()

static bool ext_ri_parse_clienthello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 854 of file extensions.cc.

◆ ext_ri_parse_serverhello()

static bool ext_ri_parse_serverhello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 771 of file extensions.cc.

◆ ext_sct_add_clienthello()

static bool ext_sct_add_clienthello ( const SSL_HANDSHAKE hs,
CBB out,
CBB out_compressible,
ssl_client_hello_type_t  type 
)
static

Definition at line 1323 of file extensions.cc.

◆ ext_sct_add_serverhello()

static bool ext_sct_add_serverhello ( SSL_HANDSHAKE hs,
CBB out 
)
static

Definition at line 1391 of file extensions.cc.

◆ ext_sct_parse_clienthello()

static bool ext_sct_parse_clienthello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 1377 of file extensions.cc.

◆ ext_sct_parse_serverhello()

static bool ext_sct_parse_serverhello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 1338 of file extensions.cc.

◆ ext_sigalgs_add_clienthello()

static bool ext_sigalgs_add_clienthello ( const SSL_HANDSHAKE hs,
CBB out,
CBB out_compressible,
ssl_client_hello_type_t  type 
)
static

Definition at line 1070 of file extensions.cc.

◆ ext_sigalgs_parse_clienthello()

static bool ext_sigalgs_parse_clienthello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 1089 of file extensions.cc.

◆ ext_sni_add_clienthello()

static bool ext_sni_add_clienthello ( const SSL_HANDSHAKE hs,
CBB out,
CBB out_compressible,
ssl_client_hello_type_t  type 
)
static

Definition at line 568 of file extensions.cc.

◆ ext_sni_add_serverhello()

static bool ext_sni_add_serverhello ( SSL_HANDSHAKE hs,
CBB out 
)
static

Definition at line 612 of file extensions.cc.

◆ ext_sni_parse_clienthello()

static bool ext_sni_parse_clienthello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 606 of file extensions.cc.

◆ ext_sni_parse_serverhello()

static bool ext_sni_parse_serverhello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 599 of file extensions.cc.

◆ ext_srtp_add_clienthello()

static bool ext_srtp_add_clienthello ( const SSL_HANDSHAKE hs,
CBB out,
CBB out_compressible,
ssl_client_hello_type_t  type 
)
static

Definition at line 1710 of file extensions.cc.

◆ ext_srtp_add_serverhello()

static bool ext_srtp_add_serverhello ( SSL_HANDSHAKE hs,
CBB out 
)
static

Definition at line 1828 of file extensions.cc.

◆ ext_srtp_parse_clienthello()

static bool ext_srtp_parse_clienthello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 1786 of file extensions.cc.

◆ ext_srtp_parse_serverhello()

static bool ext_srtp_parse_serverhello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 1743 of file extensions.cc.

◆ ext_supported_groups_add_clienthello()

static bool ext_supported_groups_add_clienthello ( const SSL_HANDSHAKE hs,
CBB out,
CBB out_compressible,
ssl_client_hello_type_t  type 
)
static

Definition at line 2524 of file extensions.cc.

◆ ext_supported_groups_parse_clienthello()

static bool ext_supported_groups_parse_clienthello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 2587 of file extensions.cc.

◆ ext_supported_groups_parse_serverhello()

static bool ext_supported_groups_parse_serverhello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 2556 of file extensions.cc.

◆ ext_supported_versions_add_clienthello()

static bool ext_supported_versions_add_clienthello ( const SSL_HANDSHAKE hs,
CBB out,
CBB out_compressible,
ssl_client_hello_type_t  type 
)
static

Definition at line 2456 of file extensions.cc.

◆ ext_ticket_add_clienthello()

static bool ext_ticket_add_clienthello ( const SSL_HANDSHAKE hs,
CBB out,
CBB out_compressible,
ssl_client_hello_type_t  type 
)
static

Definition at line 990 of file extensions.cc.

◆ ext_ticket_add_serverhello()

static bool ext_ticket_add_serverhello ( SSL_HANDSHAKE hs,
CBB out 
)
static

Definition at line 1049 of file extensions.cc.

◆ ext_ticket_parse_serverhello()

static bool ext_ticket_parse_serverhello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 1025 of file extensions.cc.

◆ forbid_parse_serverhello()

static bool forbid_parse_serverhello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 542 of file extensions.cc.

◆ ignore_parse_clienthello()

static bool ignore_parse_clienthello ( SSL_HANDSHAKE hs,
uint8_t out_alert,
CBS contents 
)
static

Definition at line 554 of file extensions.cc.

◆ is_post_quantum_group()

static bool is_post_quantum_group ( uint16_t  id)
static

Definition at line 207 of file extensions.cc.

◆ parse_u16_array()

static bool parse_u16_array ( const CBS cbs,
Array< uint16_t > *  out 
)
static

Definition at line 2564 of file extensions.cc.

◆ should_offer_psk()

static bool should_offer_psk ( const SSL_HANDSHAKE hs,
ssl_client_hello_type_t  type 
)
static

Definition at line 1936 of file extensions.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_clienthello_tlsext_inner()

static bool ssl_add_clienthello_tlsext_inner ( SSL_HANDSHAKE hs,
CBB out,
CBB out_encoded,
bool out_needs_psk_binder 
)
static

Definition at line 3318 of file extensions.cc.

◆ ssl_add_serverhello_tlsext()

bool ssl_add_serverhello_tlsext ( SSL_HANDSHAKE hs,
CBB out 
)

Definition at line 3552 of file extensions.cc.

◆ ssl_check_clienthello_tlsext()

static bool ssl_check_clienthello_tlsext ( SSL_HANDSHAKE hs)
static

Definition at line 3738 of file extensions.cc.

◆ ssl_check_serverhello_tlsext()

static bool ssl_check_serverhello_tlsext ( SSL_HANDSHAKE hs)
static

Definition at line 3763 of file extensions.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()

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_decrypt_ticket_with_cb()

static enum ssl_ticket_aead_result_t ssl_decrypt_ticket_with_cb ( SSL_HANDSHAKE hs,
Array< uint8_t > *  out,
bool out_renew_ticket,
Span< const uint8_t ticket 
)
static

Definition at line 3862 of file extensions.cc.

◆ ssl_decrypt_ticket_with_method()

static enum ssl_ticket_aead_result_t ssl_decrypt_ticket_with_method ( SSL_HANDSHAKE hs,
Array< uint8_t > *  out,
bool out_renew_ticket,
Span< const uint8_t ticket 
)
static

Definition at line 3929 of file extensions.cc.

◆ ssl_decrypt_ticket_with_ticket_keys()

static enum ssl_ticket_aead_result_t ssl_decrypt_ticket_with_ticket_keys ( SSL_HANDSHAKE hs,
Array< uint8_t > *  out,
Span< const uint8_t ticket 
)
static

Definition at line 3890 of file extensions.cc.

◆ SSL_early_callback_ctx_extension_get()

int SSL_early_callback_ctx_extension_get ( const SSL_CLIENT_HELLO client_hello,
uint16_t  extension_type,
const uint8_t **  out_data,
size_t *  out_len 
)

Definition at line 4313 of file extensions.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_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_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_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_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_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_serverhello_tlsext()

bool ssl_parse_serverhello_tlsext ( SSL_HANDSHAKE hs,
const CBS cbs 
)

Definition at line 3793 of file extensions.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_scan_clienthello_tlsext()

static bool ssl_scan_clienthello_tlsext ( SSL_HANDSHAKE hs,
const SSL_CLIENT_HELLO client_hello,
int out_alert 
)
static

Definition at line 3585 of file extensions.cc.

◆ ssl_scan_serverhello_tlsext()

static bool ssl_scan_serverhello_tlsext ( SSL_HANDSHAKE hs,
const CBS cbs,
int out_alert 
)
static

Definition at line 3668 of file extensions.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.

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

◆ tls12_get_verify_sigalgs()

static Span<const uint16_t> tls12_get_verify_sigalgs ( const SSL_HANDSHAKE hs)
static

Definition at line 474 of file extensions.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_duplicate_extensions()

static bool tls1_check_duplicate_extensions ( const CBS cbs)
static

Definition at line 157 of file extensions.cc.

◆ tls1_check_group_id()

bool tls1_check_group_id ( const SSL_HANDSHAKE hs,
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_get_grouplist()

Span<const uint16_t> tls1_get_grouplist ( const SSL_HANDSHAKE hs)

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

Definition at line 4029 of file extensions.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_extension_find()

static const struct tls_extension* tls_extension_find ( uint32_t out_index,
uint16_t  value 
)
static

Definition at line 3294 of file extensions.cc.

Variable Documentation

◆ kDefaultGroups

const uint16_t kDefaultGroups[]
static
Initial value:

Definition at line 305 of file extensions.cc.

◆ kExtensions

const struct tls_extension kExtensions[]
static

Definition at line 3087 of file extensions.cc.

◆ kSignSignatureAlgorithms

const uint16_t kSignSignatureAlgorithms[]
static

◆ kVerifySignatureAlgorithms

const uint16_t kVerifySignatureAlgorithms[]
static
SSL_SIGN_RSA_PSS_RSAE_SHA512
#define SSL_SIGN_RSA_PSS_RSAE_SHA512
Definition: ssl.h:1075
SSL_SIGN_RSA_PSS_RSAE_SHA256
#define SSL_SIGN_RSA_PSS_RSAE_SHA256
Definition: ssl.h:1073
SSL_SIGN_RSA_PSS_RSAE_SHA384
#define SSL_SIGN_RSA_PSS_RSAE_SHA384
Definition: ssl.h:1074
SSL_SIGN_ECDSA_SECP521R1_SHA512
#define SSL_SIGN_ECDSA_SECP521R1_SHA512
Definition: ssl.h:1072
SSL_SIGN_RSA_PKCS1_SHA256
#define SSL_SIGN_RSA_PKCS1_SHA256
Definition: ssl.h:1066
SSL_SIGN_RSA_PKCS1_SHA384
#define SSL_SIGN_RSA_PKCS1_SHA384
Definition: ssl.h:1067
SSL_SIGN_RSA_PKCS1_SHA512
#define SSL_SIGN_RSA_PKCS1_SHA512
Definition: ssl.h:1068
SSL_SIGN_RSA_PKCS1_SHA1
#define SSL_SIGN_RSA_PKCS1_SHA1
Definition: ssl.h:1065
SSL_CURVE_X25519
#define SSL_CURVE_X25519
Definition: ssl.h:2330
SSL_SIGN_ED25519
#define SSL_SIGN_ED25519
Definition: ssl.h:1076
SSL_CURVE_SECP256R1
#define SSL_CURVE_SECP256R1
Definition: ssl.h:2327
SSL_CURVE_SECP384R1
#define SSL_CURVE_SECP384R1
Definition: ssl.h:2328
SSL_SIGN_ECDSA_SHA1
#define SSL_SIGN_ECDSA_SHA1
Definition: ssl.h:1069
SSL_SIGN_ECDSA_SECP384R1_SHA384
#define SSL_SIGN_ECDSA_SECP384R1_SHA384
Definition: ssl.h:1071
SSL_SIGN_ECDSA_SECP256R1_SHA256
#define SSL_SIGN_ECDSA_SECP256R1_SHA256
Definition: ssl.h:1070


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