7#if !defined(MBEDTLS_SSL_TLS1_3_KEYS_H)
8#define MBEDTLS_SSL_TLS1_3_KEYS_H
13#define MBEDTLS_SSL_TLS1_3_LABEL_LIST \
14 MBEDTLS_SSL_TLS1_3_LABEL(finished, "finished") \
15 MBEDTLS_SSL_TLS1_3_LABEL(resumption, "resumption") \
16 MBEDTLS_SSL_TLS1_3_LABEL(traffic_upd, "traffic upd") \
17 MBEDTLS_SSL_TLS1_3_LABEL(exporter, "exporter") \
18 MBEDTLS_SSL_TLS1_3_LABEL(key, "key") \
19 MBEDTLS_SSL_TLS1_3_LABEL(iv, "iv") \
20 MBEDTLS_SSL_TLS1_3_LABEL(c_hs_traffic, "c hs traffic") \
21 MBEDTLS_SSL_TLS1_3_LABEL(c_ap_traffic, "c ap traffic") \
22 MBEDTLS_SSL_TLS1_3_LABEL(c_e_traffic, "c e traffic") \
23 MBEDTLS_SSL_TLS1_3_LABEL(s_hs_traffic, "s hs traffic") \
24 MBEDTLS_SSL_TLS1_3_LABEL(s_ap_traffic, "s ap traffic") \
25 MBEDTLS_SSL_TLS1_3_LABEL(s_e_traffic, "s e traffic") \
26 MBEDTLS_SSL_TLS1_3_LABEL(e_exp_master, "e exp master") \
27 MBEDTLS_SSL_TLS1_3_LABEL(res_master, "res master") \
28 MBEDTLS_SSL_TLS1_3_LABEL(exp_master, "exp master") \
29 MBEDTLS_SSL_TLS1_3_LABEL(ext_binder, "ext binder") \
30 MBEDTLS_SSL_TLS1_3_LABEL(res_binder, "res binder") \
31 MBEDTLS_SSL_TLS1_3_LABEL(derived, "derived") \
32 MBEDTLS_SSL_TLS1_3_LABEL(client_cv, "TLS 1.3, client CertificateVerify") \
33 MBEDTLS_SSL_TLS1_3_LABEL(server_cv, "TLS 1.3, server CertificateVerify")
35#define MBEDTLS_SSL_TLS1_3_CONTEXT_UNHASHED 0
36#define MBEDTLS_SSL_TLS1_3_CONTEXT_HASHED 1
38#define MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL 0
39#define MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION 1
41#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
44#define MBEDTLS_SSL_TLS1_3_LABEL(name, string) \
45 const unsigned char name [sizeof(string) - 1] MBEDTLS_ATTRIBUTE_UNTERMINATED_STRING;
47union mbedtls_ssl_tls13_labels_union {
50struct mbedtls_ssl_tls13_labels_struct {
53#undef MBEDTLS_SSL_TLS1_3_LABEL
55extern const struct mbedtls_ssl_tls13_labels_struct mbedtls_ssl_tls13_labels;
57#define MBEDTLS_SSL_TLS1_3_LBL_LEN(LABEL) \
58 sizeof(mbedtls_ssl_tls13_labels.LABEL)
60#define MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN(LABEL) \
61 mbedtls_ssl_tls13_labels.LABEL, \
62 MBEDTLS_SSL_TLS1_3_LBL_LEN(LABEL)
66#define MBEDTLS_SSL_TLS1_3_HKDF_LABEL_MAX_LABEL_LEN 249
71#define MBEDTLS_SSL_TLS1_3_KEY_SCHEDULE_MAX_CONTEXT_LEN \
78#define MBEDTLS_SSL_TLS1_3_KEY_SCHEDULE_MAX_EXPANSION_LEN \
79 (255 * MBEDTLS_TLS1_3_MD_MAX_SIZE)
111int mbedtls_ssl_tls13_hkdf_expand_label(
113 const unsigned char *secret,
size_t secret_len,
114 const unsigned char *label,
size_t label_len,
115 const unsigned char *ctx,
size_t ctx_len,
116 unsigned char *buf,
size_t buf_len);
150int mbedtls_ssl_tls13_make_traffic_keys(
152 const unsigned char *client_secret,
153 const unsigned char *server_secret,
size_t secret_len,
154 size_t key_len,
size_t iv_len,
197int mbedtls_ssl_tls13_derive_secret(
199 const unsigned char *secret,
size_t secret_len,
200 const unsigned char *label,
size_t label_len,
201 const unsigned char *ctx,
size_t ctx_len,
203 unsigned char *dstbuf,
size_t dstbuf_len);
248int mbedtls_ssl_tls13_derive_early_secrets(
250 unsigned char const *early_secret,
251 unsigned char const *transcript,
size_t transcript_len,
294int mbedtls_ssl_tls13_derive_handshake_secrets(
296 unsigned char const *handshake_secret,
297 unsigned char const *transcript,
size_t transcript_len,
345int mbedtls_ssl_tls13_derive_application_secrets(
347 unsigned char const *master_secret,
348 unsigned char const *transcript,
size_t transcript_len,
376int mbedtls_ssl_tls13_derive_resumption_master_secret(
378 unsigned char const *application_secret,
379 unsigned char const *transcript,
size_t transcript_len,
450int mbedtls_ssl_tls13_evolve_secret(
452 const unsigned char *secret_old,
453 const unsigned char *
input,
size_t input_len,
454 unsigned char *secret_new);
482 unsigned char const *psk,
size_t psk_len,
484 unsigned char const *transcript,
485 unsigned char *result);
586#if defined(MBEDTLS_SSL_EARLY_DATA)
631#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED)
661 const unsigned char *secret,
const size_t secret_len,
662 const unsigned char *label,
const size_t label_len,
663 const unsigned char *context_value,
const size_t context_len,
void * endpoint
Definition main.cpp:149
#define out(...)
Definition main.cpp:65
unsigned char uint8_t
Definition acefiex.h:161
uint32_t psa_algorithm_t
Encoding of a cryptographic algorithm.
Definition crypto_types.h:134
#define MBEDTLS_SSL_TLS1_3_LABEL_LIST
Definition ssl_tls13_keys.h:13
The data structure holding the cryptographic material (key and IV) used for record protection in TLS ...
Definition ssl_misc.h:614
Definition ssl_misc.h:631
Definition ssl_misc.h:637
struct VirtioInputEvent * input
Definition virtiokbd.c:46