webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
Classes | Macros | Functions
t1_lib.c File Reference
#include <openssl/ssl.h>
#include <assert.h>
#include <limits.h>
#include <stdlib.h>
#include <string.h>
#include <openssl/bytestring.h>
#include <openssl/digest.h>
#include <openssl/err.h>
#include <openssl/evp.h>
#include <openssl/hmac.h>
#include <openssl/mem.h>
#include <openssl/nid.h>
#include <openssl/rand.h>
#include <openssl/type_check.h>
#include "internal.h"
#include "../crypto/internal.h"

Classes

struct  tls_extension
 

Macros

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

Functions

int ssl_early_callback_init (SSL *ssl, struct ssl_early_callback_ctx *ctx, const uint8_t *in, size_t in_len)
 
int ssl_early_callback_get_extension (const struct ssl_early_callback_ctx *ctx, CBS *out, uint16_t extension_type)
 
int SSL_early_callback_ctx_extension_get (const struct ssl_early_callback_ctx *ctx, uint16_t extension_type, const uint8_t **out_data, size_t *out_len)
 
void tls1_get_grouplist (SSL *ssl, const uint16_t **out_group_ids, size_t *out_group_ids_len)
 
int tls1_get_shared_group (SSL *ssl, uint16_t *out_group_id)
 
int tls1_set_curves (uint16_t **out_group_ids, size_t *out_group_ids_len, const int *curves, size_t ncurves)
 
int tls1_set_curves_list (uint16_t **out_group_ids, size_t *out_group_ids_len, const char *curves)
 
int tls1_check_group_id (SSL *ssl, uint16_t group_id)
 
size_t tls12_get_verify_sigalgs (const SSL *ssl, const uint16_t **out)
 
int tls12_check_peer_sigalg (SSL *ssl, int *out_alert, uint16_t sigalg)
 
void ssl_set_client_disabled (SSL *ssl)
 
int ssl_ext_pre_shared_key_parse_serverhello (SSL *ssl, uint8_t *out_alert, CBS *contents)
 
int ssl_ext_pre_shared_key_parse_clienthello (SSL *ssl, SSL_SESSION **out_session, uint8_t *out_alert, CBS *contents)
 
int ssl_ext_pre_shared_key_add_serverhello (SSL *ssl, CBB *out)
 
int ssl_ext_key_share_parse_serverhello (SSL *ssl, uint8_t **out_secret, size_t *out_secret_len, uint8_t *out_alert, CBS *contents)
 
int ssl_ext_key_share_parse_clienthello (SSL *ssl, int *out_found, uint8_t **out_secret, size_t *out_secret_len, uint8_t *out_alert, CBS *contents)
 
int ssl_ext_key_share_add_serverhello (SSL *ssl, CBB *out)
 
 OPENSSL_COMPILE_ASSERT (kNumExtensions<=sizeof(((SSL_HANDSHAKE *) NULL) ->extensions.sent) *8, too_many_extensions_for_sent_bitset)
 
 OPENSSL_COMPILE_ASSERT (kNumExtensions<=sizeof(((SSL_HANDSHAKE *) NULL) ->extensions.received) *8, too_many_extensions_for_received_bitset)
 
int SSL_extension_supported (unsigned extension_value)
 
int ssl_add_clienthello_tlsext (SSL *ssl, CBB *out, size_t header_len)
 
int ssl_add_serverhello_tlsext (SSL *ssl, CBB *out)
 
int ssl_parse_clienthello_tlsext (SSL *ssl, const struct ssl_early_callback_ctx *client_hello)
 
 OPENSSL_COMPILE_ASSERT (kNumExtensions<=sizeof(uint32_t) *8, too_many_bits)
 
int ssl_parse_serverhello_tlsext (SSL *ssl, CBS *cbs)
 
int tls_process_ticket (SSL *ssl, SSL_SESSION **out_session, int *out_renew_ticket, const uint8_t *ticket, size_t ticket_len, const uint8_t *session_id, size_t session_id_len)
 
int tls1_parse_peer_sigalgs (SSL *ssl, const CBS *in_sigalgs)
 
int tls1_choose_signature_algorithm (SSL *ssl, uint16_t *out)
 
int tls1_verify_channel_id (SSL *ssl)
 
int tls1_write_channel_id (SSL *ssl, CBB *cbb)
 
int tls1_channel_id_hash (SSL *ssl, uint8_t *out, size_t *out_len)
 
int tls1_record_handshake_hashes_for_channel_id (SSL *ssl)
 
int ssl_do_channel_id_callback (SSL *ssl)
 

Macro Definition Documentation

◆ kNumExtensions

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

Function Documentation

◆ OPENSSL_COMPILE_ASSERT() [1/3]

OPENSSL_COMPILE_ASSERT ( kNumExtensions<=sizeof(((SSL_HANDSHAKE *) NULL) ->extensions.sent) *  8,
too_many_extensions_for_sent_bitset   
)

◆ OPENSSL_COMPILE_ASSERT() [2/3]

OPENSSL_COMPILE_ASSERT ( kNumExtensions<=sizeof(((SSL_HANDSHAKE *) NULL) ->extensions.received) *  8,
too_many_extensions_for_received_bitset   
)

◆ OPENSSL_COMPILE_ASSERT() [3/3]

OPENSSL_COMPILE_ASSERT ( kNumExtensions<=sizeof(uint32_t) *  8,
too_many_bits   
)

◆ ssl_add_clienthello_tlsext()

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

◆ ssl_add_serverhello_tlsext()

int ssl_add_serverhello_tlsext ( SSL ssl,
CBB out 
)

◆ ssl_do_channel_id_callback()

int ssl_do_channel_id_callback ( SSL ssl)

◆ SSL_early_callback_ctx_extension_get()

int SSL_early_callback_ctx_extension_get ( const struct ssl_early_callback_ctx ctx,
uint16_t  extension_type,
const uint8_t **  out_data,
size_t out_len 
)

◆ ssl_early_callback_get_extension()

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

◆ ssl_early_callback_init()

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

◆ ssl_ext_key_share_add_serverhello()

int ssl_ext_key_share_add_serverhello ( SSL ssl,
CBB out 
)

◆ ssl_ext_key_share_parse_clienthello()

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

◆ ssl_ext_key_share_parse_serverhello()

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

◆ ssl_ext_pre_shared_key_add_serverhello()

int ssl_ext_pre_shared_key_add_serverhello ( SSL ssl,
CBB out 
)

◆ ssl_ext_pre_shared_key_parse_clienthello()

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

◆ ssl_ext_pre_shared_key_parse_serverhello()

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

◆ SSL_extension_supported()

int SSL_extension_supported ( unsigned  extension_value)

◆ ssl_parse_clienthello_tlsext()

int ssl_parse_clienthello_tlsext ( SSL ssl,
const struct ssl_early_callback_ctx client_hello 
)

◆ ssl_parse_serverhello_tlsext()

int ssl_parse_serverhello_tlsext ( SSL ssl,
CBS cbs 
)

◆ ssl_set_client_disabled()

void ssl_set_client_disabled ( SSL ssl)

◆ tls12_check_peer_sigalg()

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

◆ tls12_get_verify_sigalgs()

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

◆ tls1_channel_id_hash()

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

◆ tls1_check_group_id()

int tls1_check_group_id ( SSL ssl,
uint16_t  group_id 
)

◆ tls1_choose_signature_algorithm()

int tls1_choose_signature_algorithm ( SSL ssl,
uint16_t out 
)

◆ tls1_get_grouplist()

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

◆ tls1_get_shared_group()

int tls1_get_shared_group ( SSL ssl,
uint16_t out_group_id 
)

◆ tls1_parse_peer_sigalgs()

int tls1_parse_peer_sigalgs ( SSL ssl,
const CBS in_sigalgs 
)

◆ tls1_record_handshake_hashes_for_channel_id()

int tls1_record_handshake_hashes_for_channel_id ( SSL ssl)

◆ tls1_set_curves()

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

◆ tls1_set_curves_list()

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

◆ tls1_verify_channel_id()

int tls1_verify_channel_id ( SSL ssl)

◆ tls1_write_channel_id()

int tls1_write_channel_id ( SSL ssl,
CBB cbb 
)

◆ tls_process_ticket()

int tls_process_ticket ( SSL ssl,
SSL_SESSION **  out_session,
int *  out_renew_ticket,
const uint8_t ticket,
size_t  ticket_len,
const uint8_t session_id,
size_t  session_id_len 
)