*end,
size_tneed)
510 return(cur > end) || (need > (size_t) (end - cur));
517} mbedtls_ssl_chk_buf_ptr_args;
519 voidmbedtls_ssl_set_chk_buf_ptr_fail_args(
521 voidmbedtls_ssl_reset_chk_buf_ptr_fail_args(
void);
524 intmbedtls_ssl_cmp_chk_buf_ptr_fail_args(mbedtls_ssl_chk_buf_ptr_args *args);
527 const uint8_t*end,
size_tneed)
529 if((cur > end) || (need > (
size_t) (end - cur))) {
530mbedtls_ssl_set_chk_buf_ptr_fail_args(cur, end, need);
547 #define MBEDTLS_SSL_CHK_BUF_PTR(cur, end, need) \ 549 if (mbedtls_ssl_chk_buf_ptr((cur), (end), (need)) != 0) \ 551 return MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL; \ 569 #define MBEDTLS_SSL_CHK_BUF_READ_PTR(cur, end, need) \ 571 if (mbedtls_ssl_chk_buf_ptr((cur), (end), (need)) != 0) \ 573 MBEDTLS_SSL_DEBUG_MSG(1, \ 574 ("missing input data in %s", __func__)); \
575MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, \
576MBEDTLS_ERR_SSL_DECODE_ERROR); \
577return MBEDTLS_ERR_SSL_DECODE_ERROR; \
587 const unsigned char*random,
size_trlen,
588 unsigned char*dstbuf,
size_tdlen);
606 #define MBEDTLS_SSL_MAX_BLOCK_LENGTH 16 607 #define MBEDTLS_SSL_MAX_IV_LENGTH 16 608 #define MBEDTLS_SSL_MAX_KEY_LENGTH 32 651 #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) 655 #if defined(MBEDTLS_SSL_SRV_C) 658 uint8_tcertificate_request_sent;
659 #if defined(MBEDTLS_SSL_EARLY_DATA) 665 #if defined(MBEDTLS_SSL_SESSION_TICKETS) 669 #if defined(MBEDTLS_SSL_CLI_C) 691 #if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) 695 #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) 699 #if defined(MBEDTLS_SSL_PROTO_DTLS) 700 unsigned charretransmit_state;
703 #if !defined(MBEDTLS_DEPRECATED_REMOVED) 708 #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) 713ssl_ecrs_ske_start_processing,
714ssl_ecrs_cke_ecdh_calc_secret,
715ssl_ecrs_crt_vrfy_sign,
734 #if defined(MBEDTLS_SSL_PROTO_TLS1_3) 742 uint8_thello_retry_request_flag;
744 #if defined(MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE) 754 #if defined(MBEDTLS_SSL_SRV_C) 755 #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) 760 #if defined(MBEDTLS_SSL_SESSION_TICKETS) 767 #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) 771 #if !defined(MBEDTLS_DEPRECATED_REMOVED) 776 #if defined(MBEDTLS_DHM_C) 780 #if !defined(MBEDTLS_USE_PSA_CRYPTO) && \ 781 defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDH_OR_ECDHE_1_2_ENABLED) 786 #if defined(MBEDTLS_KEY_EXCHANGE_SOME_XXDH_PSA_ANY_ENABLED) 788 size_txxdh_psa_bits;
790 uint8_txxdh_psa_privkey_is_external;
792 size_txxdh_psa_peerkey_len;
795 #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) 796 #if defined(MBEDTLS_USE_PSA_CRYPTO) 803 #if defined(MBEDTLS_SSL_CLI_C) 804 unsigned char*ecjpake_cache;
805 size_tecjpake_cache_len;
809 #if defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDH_OR_ECDHE_ANY_ENABLED) || \ 810 defined(MBEDTLS_KEY_EXCHANGE_ECDSA_CERT_REQ_ANY_ALLOWED_ENABLED) || \ 811 defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) 815 #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) 816 #if defined(MBEDTLS_USE_PSA_CRYPTO) 818 uint8_tpsk_opaque_is_internal;
826 #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) 830 #if defined(MBEDTLS_X509_CRT_PARSE_C) 831mbedtls_ssl_key_cert *key_cert;
832 #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) 833mbedtls_ssl_key_cert *sni_key_cert;
839 #if defined(MBEDTLS_X509_CRT_PARSE_C) && \ 840 !defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) 860 unsigned char*
data;
867 #if defined(MBEDTLS_SSL_CLI_C) && \ 868 (defined(MBEDTLS_SSL_PROTO_DTLS) || \ 869 defined(MBEDTLS_SSL_PROTO_TLS1_3)) 870 unsigned char*cookie;
872 #if !defined(MBEDTLS_SSL_PROTO_TLS1_3) 892 #if defined(MBEDTLS_SSL_SRV_C) && defined(MBEDTLS_SSL_PROTO_DTLS) 893 unsigned charcookie_verify_result;
896 #if defined(MBEDTLS_SSL_PROTO_DTLS) 897 unsigned intout_msg_seq;
898 unsigned intin_msg_seq;
901mbedtls_ssl_flight_item *flight;
902mbedtls_ssl_flight_item *cur_msg;
903 unsigned char*cur_msg_p;
904 unsigned intin_flight_start_seq;
911 #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) 929 #if defined(MBEDTLS_MD_CAN_SHA256) 930 #if defined(MBEDTLS_USE_PSA_CRYPTO) 936 #if defined(MBEDTLS_MD_CAN_SHA384) 937 #if defined(MBEDTLS_USE_PSA_CRYPTO) 944 #if defined(MBEDTLS_SSL_PROTO_TLS1_3) 954 #if defined(MBEDTLS_SSL_CLI_C) 992 #if defined(MBEDTLS_SSL_PROTO_TLS1_2) 998 #if defined(MBEDTLS_SSL_PROTO_TLS1_3) 1002 #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) 1003 unsigned charcertificate_request_context_len;
1004 unsigned char*certificate_request_context;
1013} tls13_master_secrets;
1016 #if defined(MBEDTLS_SSL_EARLY_DATA) 1022 #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) 1028 void*user_async_ctx;
1031 #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) 1032 const unsigned char*sni_name;
1033 size_tsni_name_len;
1034 #if defined(MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED) 1134 #if defined(MBEDTLS_SSL_SOME_SUITES_USE_MAC) 1136 #if defined(MBEDTLS_USE_PSA_CRYPTO) 1145 #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) 1146 intencrypt_then_mac;
1153 #if defined(MBEDTLS_USE_PSA_CRYPTO) 1162 #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) 1169 #if defined(MBEDTLS_SSL_KEEP_RANDBYTES) 1187 #if defined(MBEDTLS_SSL_SOME_SUITES_USE_MAC) 1215 #if MBEDTLS_SSL_CID_OUT_LEN_MAX > MBEDTLS_SSL_CID_IN_LEN_MAX 1216 #define MBEDTLS_SSL_CID_LEN_MAX MBEDTLS_SSL_CID_OUT_LEN_MAX 1218 #define MBEDTLS_SSL_CID_LEN_MAX MBEDTLS_SSL_CID_IN_LEN_MAX 1242 #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) 1248 #if defined(MBEDTLS_X509_CRT_PARSE_C) 1252 structmbedtls_ssl_key_cert {
1255mbedtls_ssl_key_cert *
next;
1259 #if defined(MBEDTLS_SSL_PROTO_DTLS) 1263 structmbedtls_ssl_flight_item {
1266 unsigned char type;
1267mbedtls_ssl_flight_item *
next;
1271 #if defined(MBEDTLS_SSL_PROTO_TLS1_2) 1285 unsigned char*
buf,
1286 const unsigned char*end,
1291 #if defined(MBEDTLS_SSL_PROTO_TLS1_2) && \ 1292 defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) 1306 unsigned intsig_alg);
1341 #if defined(MBEDTLS_DEBUG_C) 1370 #if defined(MBEDTLS_SSL_PROTO_TLS1_2) 1460 unsignedupdate_hs_digest);
1469 unsigned char**
buf,
size_t*buf_len);
1473 intupdate_checksum,
1485 size_tbuf_len,
size_tmsg_len);
1516 unsigned char const*
msg,
1522 size_ttotal_hs_len);
1524 #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) 1525 #if !defined(MBEDTLS_USE_PSA_CRYPTO) 1532 #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) 1533 #if defined(MBEDTLS_SSL_CLI_C) || defined(MBEDTLS_SSL_SRV_C) 1537 #if defined(MBEDTLS_USE_PSA_CRYPTO) 1549 returnssl->handshake->psk_opaque;
1553 returnssl->conf->psk_opaque;
1566 const unsigned char**psk,
size_t*psk_len)
1568 if(ssl->handshake->psk !=
NULL&& ssl->handshake->psk_len > 0) {
1569*psk = ssl->handshake->psk;
1570*psk_len = ssl->handshake->psk_len;
1571}
else if(ssl->conf->psk !=
NULL&& ssl->conf->psk_len > 0) {
1572*psk = ssl->conf->psk;
1573*psk_len = ssl->conf->psk_len;
1586 #if defined(MBEDTLS_PK_C) 1595 #if defined(MBEDTLS_SSL_PROTO_TLS1_2) 1602 #if defined(MBEDTLS_PK_HAVE_ECC_KEYS) 1645 #if defined(MBEDTLS_DEBUG_C) 1656 #if defined(MBEDTLS_SSL_DTLS_SRTP) 1657 static inlinembedtls_ssl_srtp_profile mbedtls_ssl_check_srtp_profile_value
1658(
const uint16_tsrtp_profile_value)
1660 switch(srtp_profile_value) {
1661 caseMBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_80:
1662 caseMBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_32:
1663 caseMBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_80:
1664 caseMBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_32:
1665 returnsrtp_profile_value;
1668 returnMBEDTLS_TLS_SRTP_UNSET;
1672 #if defined(MBEDTLS_X509_CRT_PARSE_C) 1675mbedtls_ssl_key_cert *key_cert;
1677 if(ssl->handshake !=
NULL&& ssl->handshake->key_cert !=
NULL) {
1678key_cert = ssl->handshake->key_cert;
1679 #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) 1682&& ssl->handshake && ssl->handshake->sni_key_cert) {
1683key_cert = ssl->handshake->sni_key_cert;
1686key_cert = ssl->conf->key_cert;
1689 returnkey_cert ==
NULL?
NULL: key_cert->key;
1694mbedtls_ssl_key_cert *key_cert;
1696 if(ssl->handshake !=
NULL&& ssl->handshake->key_cert !=
NULL) {
1697key_cert = ssl->handshake->key_cert;
1698 #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) 1701&& ssl->handshake && ssl->handshake->sni_key_cert) {
1702key_cert = ssl->handshake->sni_key_cert;
1705key_cert = ssl->conf->key_cert;
1708 returnkey_cert ==
NULL?
NULL: key_cert->cert;
1769 #if !defined(MBEDTLS_SSL_PROTO_DTLS) 1773 #if defined(MBEDTLS_SSL_PROTO_DTLS) 1785 return(
size_t) (ssl->out_iv - ssl->out_hdr);
1790 #if defined(MBEDTLS_SSL_PROTO_DTLS) 1800 #if defined(MBEDTLS_SSL_PROTO_DTLS) 1810 #if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) 1820 #if defined(MBEDTLS_SSL_PROTO_TLS1_2) 1824 unsigned char*
hash,
size_t*hashlen,
1825 unsigned char*
data,
size_tdata_len,
1838 int(*f_rng)(
void*,
unsigned char*,
size_t),
1848 #if defined(MBEDTLS_SSL_PROTO_DTLS) 1858 #if defined(MBEDTLS_SSL_PROTO_DTLS) 1888 unsigned charalert_type,
1892 #define MBEDTLS_SSL_PEND_FATAL_ALERT(type, user_return_value) \ 1893 mbedtls_ssl_pend_fatal_alert(ssl, type, user_return_value) 1895 #if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) 1901 #if defined(MBEDTLS_SSL_RENEGOTIATION) 1906 #if defined(MBEDTLS_SSL_PROTO_DTLS) 1916 #if defined(MBEDTLS_SSL_PROTO_TLS1_3) 1925 #if defined(MBEDTLS_SSL_PROTO_TLS1_2) 1936 #if defined(MBEDTLS_SSL_PROTO_TLS1_3) 1947 #if defined(MBEDTLS_SSL_PROTO_TLS1_2) 1956 #if defined(MBEDTLS_SSL_PROTO_TLS1_2) && defined(MBEDTLS_SSL_PROTO_TLS1_3) 1957 static inline intmbedtls_ssl_conf_is_hybrid_tls12_tls13(
const mbedtls_ssl_config*conf)
1964 #if defined(MBEDTLS_SSL_PROTO_TLS1_3) 2004 unsigned char*
buf,
2031 return(ssl->conf->tls13_kex_modes & kex_mode_mask) != 0;
2036 returnmbedtls_ssl_conf_tls13_is_kex_mode_enabled(ssl,
2040 static inline intmbedtls_ssl_conf_tls13_is_psk_ephemeral_enabled(
mbedtls_ssl_context*ssl)
2042 returnmbedtls_ssl_conf_tls13_is_kex_mode_enabled(ssl,
2048 returnmbedtls_ssl_conf_tls13_is_kex_mode_enabled(ssl,
2052 static inline intmbedtls_ssl_conf_tls13_is_some_ephemeral_enabled(
mbedtls_ssl_context*ssl)
2054 returnmbedtls_ssl_conf_tls13_is_kex_mode_enabled(ssl,
2060 returnmbedtls_ssl_conf_tls13_is_kex_mode_enabled(ssl,
2064 #if defined(MBEDTLS_SSL_SRV_C) && \ 2065 defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) 2079 return(ssl->handshake->tls13_kex_modes & kex_modes_mask) != 0;
2084 returnmbedtls_ssl_tls13_is_kex_mode_supported(ssl,
2088 static inline intmbedtls_ssl_tls13_is_psk_ephemeral_supported(
2091 returnmbedtls_ssl_tls13_is_kex_mode_supported(ssl,
2097 returnmbedtls_ssl_tls13_is_kex_mode_supported(ssl,
2101 static inline intmbedtls_ssl_tls13_is_some_ephemeral_supported(
mbedtls_ssl_context*ssl)
2103 returnmbedtls_ssl_tls13_is_kex_mode_supported(ssl,
2109 returnmbedtls_ssl_tls13_is_kex_mode_supported(ssl,
2123 unsigned intreceived_extension_type,
2124 uint32_ths_msg_allowed_extensions_mask);
2126 static inline voidmbedtls_ssl_tls13_set_hs_sent_ext_mask(
2129ssl->handshake->sent_extensions |=
2136 static inline intmbedtls_ssl_tls13_key_exchange_mode_check(
2139 return(ssl->handshake->key_exchange_mode & kex_mask) != 0;
2142 static inline intmbedtls_ssl_tls13_key_exchange_mode_with_psk(
2145 returnmbedtls_ssl_tls13_key_exchange_mode_check(ssl,
2149 static inline intmbedtls_ssl_tls13_key_exchange_mode_with_ephemeral(
2152 returnmbedtls_ssl_tls13_key_exchange_mode_check(ssl,
2162 unsigned char**
buf,
2188 const unsigned char*
buf,
const unsigned char*end,
2189 const unsigned char**supported_versions_data,
2190 const unsigned char**supported_versions_data_end);
2198 #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) 2228 #if defined(PSA_WANT_ALG_ECDH) || defined(PSA_WANT_ALG_FFDH) 2233 unsigned char*
buf,
2238 #if defined(MBEDTLS_SSL_EARLY_DATA) 2240 intin_new_session_ticket,
2241 unsigned char*
buf,
2242 const unsigned char*end,
2246 size_tearly_data_len);
2253MBEDTLS_SSL_EARLY_DATA_STATE_IDLE,
2259MBEDTLS_SSL_EARLY_DATA_STATE_NO_IND_SENT,
2268MBEDTLS_SSL_EARLY_DATA_STATE_IND_SENT,
2276MBEDTLS_SSL_EARLY_DATA_STATE_CAN_WRITE,
2282MBEDTLS_SSL_EARLY_DATA_STATE_ACCEPTED,
2288MBEDTLS_SSL_EARLY_DATA_STATE_REJECTED,
2295MBEDTLS_SSL_EARLY_DATA_STATE_SERVER_FINISHED_RECEIVED,
2297} mbedtls_ssl_early_data_state;
2302 #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) 2308 const unsigned char*end,
size_t*out_len);
2314 const unsigned char*
buf,
2315 const unsigned char*end);
2339 #if defined(MBEDTLS_DEPRECATED_REMOVED) || !defined(MBEDTLS_ECP_C) 2340 returnssl->conf->group_list;
2342 if((ssl->handshake !=
NULL) && (ssl->handshake->group_list !=
NULL)) {
2343 returnssl->handshake->group_list;
2345 returnssl->conf->group_list;
2394 if(group_list ==
NULL) {
2398 for(; *group_list != 0; group_list++) {
2409 #if defined(PSA_WANT_ALG_ECDH) 2417 #if defined(PSA_WANT_ALG_FFDH) 2422 #if !defined(PSA_WANT_ALG_ECDH) && !defined(PSA_WANT_ALG_FFDH) 2443 #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) 2445 #if !defined(MBEDTLS_DEPRECATED_REMOVED) 2446 if(ssl->handshake !=
NULL&&
2447ssl->handshake->sig_algs_heap_allocated == 1 &&
2448ssl->handshake->sig_algs !=
NULL) {
2449 returnssl->handshake->sig_algs;
2452 returnssl->conf->sig_algs;
2461 #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) 2465 const uint16_t*sig_alg = ssl->handshake->received_sig_algs;
2466 if(sig_alg ==
NULL) {
2470 for(; *sig_alg != MBEDTLS_TLS_SIG_NONE; sig_alg++) {
2471 if(*sig_alg == own_sig_alg) {
2478 static inline intmbedtls_ssl_tls13_sig_alg_for_cert_verify_is_supported(
2482 #if defined(MBEDTLS_PK_CAN_ECDSA_SOME) 2483 #if defined(PSA_WANT_ALG_SHA_256) && defined(PSA_WANT_ECC_SECP_R1_256) 2487 #if defined(PSA_WANT_ALG_SHA_384) && defined(PSA_WANT_ECC_SECP_R1_384) 2491 #if defined(PSA_WANT_ALG_SHA_512) && defined(PSA_WANT_ECC_SECP_R1_521) 2497 #if defined(MBEDTLS_PKCS1_V21) 2498 #if defined(PSA_WANT_ALG_SHA_256) 2502 #if defined(PSA_WANT_ALG_SHA_384) 2506 #if defined(PSA_WANT_ALG_SHA_512) 2518 static inline intmbedtls_ssl_tls13_sig_alg_is_supported(
2522 #if defined(MBEDTLS_PKCS1_V15) 2523 #if defined(MBEDTLS_MD_CAN_SHA256) 2527 #if defined(MBEDTLS_MD_CAN_SHA384) 2531 #if defined(MBEDTLS_MD_CAN_SHA512) 2537 returnmbedtls_ssl_tls13_sig_alg_for_cert_verify_is_supported(
2548 #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) 2553 if(sig_alg ==
NULL) {
2557 for(; *sig_alg != MBEDTLS_TLS_SIG_NONE; sig_alg++) {
2558 if(*sig_alg == proposed_sig_alg) {
2565 static inline intmbedtls_ssl_get_pk_type_and_md_alg_from_sig_alg(
2576 #if defined(MBEDTLS_PKCS1_V21) 2577 #if defined(MBEDTLS_MD_CAN_SHA256) 2583 #if defined(MBEDTLS_MD_CAN_SHA384) 2589 #if defined(MBEDTLS_MD_CAN_SHA512) 2602 #if defined(MBEDTLS_SSL_PROTO_TLS1_2) 2603 static inline intmbedtls_ssl_tls12_sig_alg_is_supported(
2611 #if defined(MBEDTLS_MD_CAN_MD5) 2616 #if defined(MBEDTLS_MD_CAN_SHA1) 2621 #if defined(MBEDTLS_MD_CAN_SHA224) 2626 #if defined(MBEDTLS_MD_CAN_SHA256) 2631 #if defined(MBEDTLS_MD_CAN_SHA384) 2636 #if defined(MBEDTLS_MD_CAN_SHA512) 2646 #if defined(MBEDTLS_RSA_C) 2651 #if defined(MBEDTLS_KEY_EXCHANGE_ECDSA_CERT_REQ_ALLOWED_ENABLED) 2664 static inline intmbedtls_ssl_sig_alg_is_supported(
2669 #if defined(MBEDTLS_SSL_PROTO_TLS1_2) 2671 returnmbedtls_ssl_tls12_sig_alg_is_supported(sig_alg);
2675 #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) 2677 returnmbedtls_ssl_tls13_sig_alg_is_supported(sig_alg);
2686 #if defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3) 2691 #define MBEDTLS_SSL_NULL_CIPHER 0x04000000 2717 #if !defined(MBEDTLS_DEPRECATED_REMOVED) 2749 #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) && \ 2750 defined(MBEDTLS_USE_PSA_CRYPTO) 2753MBEDTLS_ECJPAKE_ROUND_ONE,
2754MBEDTLS_ECJPAKE_ROUND_TWO
2755} mbedtls_ecjpake_rounds_t;
2769 intmbedtls_psa_ecjpake_read_round(
2771 const unsigned char*
buf,
2772 size_t len, mbedtls_ecjpake_rounds_t
round);
2787 intmbedtls_psa_ecjpake_write_round(
2789 unsigned char*
buf,
2790 size_t len,
size_t*olen,
2791mbedtls_ecjpake_rounds_t
round);
2808 #if defined(MBEDTLS_SSL_SOME_SUITES_USE_CBC_ETM) 2810 intencrypt_then_mac,
2817 #if defined(PSA_WANT_ALG_ECDH) || defined(PSA_WANT_ALG_FFDH) 2821 const unsigned char*
buf,
2829 const int*ciphersuite_list = ssl->conf->ciphersuite_list;
2832 for(
size_t i= 0; ciphersuite_list[
i] != 0;
i++) {
2833 if(ciphersuite_list[
i] == cipher_suite) {
2857 #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) 2860 const unsigned char*
buf,
2861 const unsigned char*end);
2864 #if defined(MBEDTLS_SSL_RECORD_SIZE_LIMIT) 2865 #define MBEDTLS_SSL_RECORD_SIZE_LIMIT_EXTENSION_DATA_LENGTH (2) 2866 #define MBEDTLS_SSL_RECORD_SIZE_LIMIT_MIN (64) 2870 const unsigned char*
buf,
2871 const unsigned char*end);
2875 unsigned char*
buf,
2876 const unsigned char*end,
2880 #if defined(MBEDTLS_SSL_ALPN) 2883 const unsigned char*
buf,
2884 const unsigned char*end);
2889 unsigned char*
buf,
2894 #if defined(MBEDTLS_TEST_HOOKS) 2895 intmbedtls_ssl_check_dtls_clihlo_cookie(
2897 const unsigned char*cli_id,
size_tcli_id_len,
2898 const unsigned char*
in,
size_tin_len,
2899 unsigned char*obuf,
size_tbuf_len,
size_t*olen);
2902 #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) 2919 unsigned char*
buf,
unsigned char*end,
2920 size_t*out_len,
size_t*binders_len);
2934 unsigned char*
buf,
unsigned char*end);
2937 #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) 2949 #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ 2950 defined(MBEDTLS_SSL_SESSION_TICKETS) && \ 2951 defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ 2952 defined(MBEDTLS_SSL_CLI_C) 2955 const char*hostname);
2958 #if defined(MBEDTLS_SSL_SRV_C) && defined(MBEDTLS_SSL_EARLY_DATA) && \ 2959 defined(MBEDTLS_SSL_ALPN) 2965 #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) 2967 #define MBEDTLS_SSL_TLS1_3_MAX_ALLOWED_TICKET_LIFETIME (604800) 2969 static inline unsigned intmbedtls_ssl_tls13_session_get_ticket_flags(
2972 returnsession->ticket_flags &
2973(
flags& MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK);
2982 static inline intmbedtls_ssl_tls13_session_ticket_has_flags(
2985 returnmbedtls_ssl_tls13_session_get_ticket_flags(session,
flags) != 0;
2988 static inline intmbedtls_ssl_tls13_session_ticket_allow_psk(
2991 returnmbedtls_ssl_tls13_session_ticket_has_flags(
2992session, MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_RESUMPTION);
2995 static inline intmbedtls_ssl_tls13_session_ticket_allow_psk_ephemeral(
2998 returnmbedtls_ssl_tls13_session_ticket_has_flags(
2999session, MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_EPHEMERAL_RESUMPTION);
3002 static inline unsigned intmbedtls_ssl_tls13_session_ticket_allow_early_data(
3005 returnmbedtls_ssl_tls13_session_ticket_has_flags(
3006session, MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_EARLY_DATA);
3009 static inline voidmbedtls_ssl_tls13_session_set_ticket_flags(
3012session->ticket_flags |= (
flags& MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK);
3015 static inline voidmbedtls_ssl_tls13_session_clear_ticket_flags(
3018session->ticket_flags &= ~(
flags& MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK);
3023 #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_CLI_C) 3024 #define MBEDTLS_SSL_SESSION_TICKETS_TLS1_2_BIT 0 3025 #define MBEDTLS_SSL_SESSION_TICKETS_TLS1_3_BIT 1 3027 #define MBEDTLS_SSL_SESSION_TICKETS_TLS1_2_MASK \ 3028 (1 << MBEDTLS_SSL_SESSION_TICKETS_TLS1_2_BIT) 3029 #define MBEDTLS_SSL_SESSION_TICKETS_TLS1_3_MASK \ 3030 (1 << MBEDTLS_SSL_SESSION_TICKETS_TLS1_3_BIT) 3032 #if defined(MBEDTLS_SSL_PROTO_TLS1_2) 3033 static inline intmbedtls_ssl_conf_get_session_tickets(
3036 returnconf->session_tickets & MBEDTLS_SSL_SESSION_TICKETS_TLS1_2_MASK ?
3042 #if defined(MBEDTLS_SSL_PROTO_TLS1_3) 3043 static inline intmbedtls_ssl_conf_is_signal_new_session_tickets_enabled(
3046 returnconf->session_tickets & MBEDTLS_SSL_SESSION_TICKETS_TLS1_3_MASK ?
3053 #if defined(MBEDTLS_SSL_CLI_C) && defined(MBEDTLS_SSL_PROTO_TLS1_3) 3057 #if defined(MBEDTLS_TEST_HOOKS) && defined(MBEDTLS_SSL_SOME_SUITES_USE_MAC) 3095 #if defined(MBEDTLS_USE_PSA_CRYPTO) 3098 const unsigned char*add_data,
3099 size_tadd_data_len,
3100 const unsigned char*
data,
3101 size_tdata_len_secret,
3102 size_tmin_data_len,
3103 size_tmax_data_len,
3104 unsigned char*
output);
3107 const unsigned char*add_data,
3108 size_tadd_data_len,
3109 const unsigned char*
data,
3110 size_tdata_len_secret,
3111 size_tmin_data_len,
3112 size_tmax_data_len,
3113 unsigned char*
output);
#define MBEDTLS_BYTE_1(x)
#define MBEDTLS_BYTE_0(x)
Byte Reading Macros.
void transform(Container &c, UnaryFunction *op)
This file contains an abstraction interface for use with the cipher primitives provided by the librar...
mbedtls_cipher_type_t
Supported {cipher type, cipher mode} pairs.
Platform Security Architecture cryptography module.
#define PSA_EXPORT_PUBLIC_KEY_MAX_SIZE
Sufficient buffer size for exporting any asymmetric public key.
Functions for controlling and providing debug output from the library.
#define MBEDTLS_SSL_DEBUG_MSG(level, args)
Internal part of the public "debug.h".
mbedtls_ecp_group_id
Domain-parameter identifiers: curve, subgroup, and generator.
static DLIST_TYPE *DLIST_NAME() next(DLIST_LIST_TYPE *list, DLIST_TYPE *item)
static SQLCHAR output[256]
static const char label[]
uint16_t psa_key_type_t
Encoding of a key type.
uint32_t psa_algorithm_t
Encoding of a cryptographic algorithm.
int32_t psa_status_t
Function return status.
#define PSA_ERROR_NOT_SUPPORTED
The requested operation or a parameter is not supported by this implementation.
#define PSA_ERROR_INVALID_SIGNATURE
The signature, MAC or hash is incorrect.
#define PSA_SUCCESS
The action was completed successfully.
#define PSA_ERROR_BUFFER_TOO_SMALL
An output buffer is too small.
#define PSA_ERROR_INVALID_ARGUMENT
The parameters passed to the function are invalid.
#define PSA_ERROR_INSUFFICIENT_MEMORY
There is not enough runtime memory.
#define PSA_ERROR_BAD_STATE
The requested action cannot be performed in the current state.
static int mbedtls_svc_key_id_is_null(mbedtls_svc_key_id_t key)
Check whether a key identifier is null.
#define MBEDTLS_SVC_KEY_ID_INIT
psa_key_id_t mbedtls_svc_key_id_t
Encoding of key identifiers as seen inside the PSA Crypto implementation.
unsigned int
A callback function used to compare two keys in a database.
void mbedtls_x509_crt_restart_ctx
Build-time configuration info.
mbedtls_md_type_t
Supported message digests.
@ MBEDTLS_MD_SHA512
The SHA-512 message digest.
@ MBEDTLS_MD_SHA384
The SHA-384 message digest.
@ MBEDTLS_MD_SHA256
The SHA-256 message digest.
const string version
version string
const struct ncbi::grid::netcache::search::fields::KEY key
#define mbedtls_ssl_write_sig_alg_ext
#define mbedtls_ssl_sig_from_pk
#define mbedtls_ssl_derive_keys
#define mbedtls_ssl_get_hostname_pointer
#define mbedtls_ssl_tls13_write_binders_of_pre_shared_key_ext
#define mbedtls_ssl_reset_transcript_for_hrr
#define mbedtls_ssl_sig_from_pk_alg
#define mbedtls_ssl_tls12_write_client_hello_exts
#define mbedtls_ssl_check_curve
#define mbedtls_ssl_verify_certificate
#define mbedtls_ssl_get_input_max_frag_len
#define mbedtls_ssl_tls13_check_received_extension
#define mbedtls_ssl_buffering_free
#define mbedtls_ssl_tls13_write_certificate
#define mbedtls_ssl_tls13_hello_retry_request_magic
#define mbedtls_ssl_get_current_mtu
#define mbedtls_ssl_tls13_finalize_client_hello
#define mbedtls_ssl_tls13_fetch_handshake_msg
#define mbedtls_ssl_states_str
#define mbedtls_ssl_tls13_generate_and_write_xxdh_key_exchange
#define mbedtls_ssl_cipher_to_psa
#define mbedtls_ssl_tls13_check_sig_alg_cert_key_match
#define mbedtls_ssl_tls13_handshake_server_step
#define mbedtls_ssl_tls13_process_finished_message
#define mbedtls_ssl_parse_server_name_ext
#define mbedtls_ssl_pk_alg_from_sig
#define mbedtls_ssl_parse_sig_alg_ext
#define mbedtls_ssl_tls12_get_preferred_hash_for_sig_alg
#define mbedtls_ssl_resend_hello_request
#define mbedtls_ssl_tls13_process_certificate
#define mbedtls_ssl_tls13_write_certificate_verify
#define mbedtls_ssl_dtls_replay_reset
#define mbedtls_ssl_tls13_handshake_client_step
#define mbedtls_ssl_write_alpn_ext
#define mbedtls_ssl_resend
#define mbedtls_ssl_start_renegotiation
#define mbedtls_ssl_parse_alpn_ext
#define mbedtls_ssl_tls13_write_finished_message
#define mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext
#define mbedtls_ssl_conf_has_static_psk
#define mbedtls_ssl_tls13_write_change_cipher_spec
#define mbedtls_ssl_flight_transmit
#define mbedtls_ssl_tls13_process_certificate_verify
#define mbedtls_ssl_get_output_max_frag_len
#define mbedtls_ssl_get_curve_name_from_tls_id
#define mbedtls_ssl_session_set_hostname
#define mbedtls_ssl_tls13_is_supported_versions_ext_present_in_exts
#define mbedtls_ssl_psk_derive_premaster
#define mbedtls_ssl_flight_free
#define mbedtls_ssl_dtls_replay_update
#define mbedtls_ssl_set_calc_verify_md
#define mbedtls_ssl_check_cert_usage
#define mbedtls_ssl_tls13_read_public_xxdhe_share
#define mbedtls_ssl_recv_flight_completed
#define mbedtls_ssl_send_flight_completed
#define mbedtls_ssl_tls13_handshake_wrapup
#define mbedtls_ssl_tls13_crypto_init
#define mbedtls_ssl_tls13_write_client_hello_exts
#define mbedtls_ssl_dtls_replay_check
#define mbedtls_ssl_get_key_exchange_md_tls1_2
std::istream & in(std::istream &in_, double &x_)
Public Key abstraction layer.
mbedtls_pk_type_t
Public key types.
Public Key abstraction layer: internal (i.e.
#define MBEDTLS_DEPRECATED
#define MBEDTLS_CHECK_RETURN_CRITICAL
Critical-failure function.
Internal utility functions for use of PSA Crypto.
This file contains SHA-1 definitions and functions.
This file contains SHA-224 and SHA-256 definitions and functions.
This file contains SHA-384 and SHA-512 definitions and functions.
static SLJIT_INLINE sljit_ins msg(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
Error to string translation.
#define MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED
Hardware accelerator failed.
MD5 message digest algorithm (hash function)
#define MBEDTLS_SSL_TLS1_3_SIGNAL_NEW_SESSION_TICKETS_ENABLED
#define MBEDTLS_SSL_CID_OUT_LEN_MAX
The maximum length of CIDs used for outgoing DTLS messages.
#define MBEDTLS_SSL_IANA_TLS_GROUP_X25519
#define MBEDTLS_SSL_IS_CLIENT
#define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL
#define MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256
#define MBEDTLS_SSL_SIG_RSA
#define MBEDTLS_SSL_HASH_SHA1
#define MBEDTLS_SSL_CID_IN_LEN_MAX
The maximum length of CIDs used for incoming DTLS messages.
#define MBEDTLS_SSL_IANA_TLS_GROUP_SECP224R1
#define MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA384
#define MBEDTLS_TLS1_3_SIG_ECDSA_SECP256R1_SHA256
mbedtls_ssl_protocol_version
Human-friendly representation of the (D)TLS protocol version.
@ MBEDTLS_SSL_VERSION_TLS1_2
@ MBEDTLS_SSL_VERSION_TLS1_3
#define MBEDTLS_ERR_SSL_PRIVATE_KEY_REQUIRED
The own private key or pre-shared key is not set, but needed.
#define MBEDTLS_SSL_IANA_TLS_GROUP_SECP521R1
#define MBEDTLS_SSL_SEQUENCE_NUMBER_LEN
#define MBEDTLS_SSL_IANA_TLS_GROUP_SECP384R1
#define MBEDTLS_SSL_HASH_SHA224
#define MBEDTLS_SSL_IANA_TLS_GROUP_BP512R1
#define MBEDTLS_SSL_TLS1_3_SIGNAL_NEW_SESSION_TICKETS_DISABLED
#define MBEDTLS_SSL_IANA_TLS_GROUP_SECP192K1
#define MBEDTLS_SSL_SESSION_TICKETS_ENABLED
#define MBEDTLS_ERR_SSL_BAD_INPUT_DATA
Bad input parameters to function.
#define MBEDTLS_SSL_HASH_SHA256
#define MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA512
#define MBEDTLS_ERR_SSL_ALLOC_FAILED
Memory allocation failed.
#define MBEDTLS_SSL_IANA_TLS_GROUP_BP256R1
#define MBEDTLS_SSL_HASH_MD5
#define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ALL
#define MBEDTLS_SSL_SESSION_TICKETS_DISABLED
#define MBEDTLS_TLS1_3_SIG_ECDSA_SECP384R1_SHA384
#define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL
#define MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA384
#define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK
#define MBEDTLS_SSL_IANA_TLS_GROUP_SECP192R1
#define MBEDTLS_SSL_IANA_TLS_GROUP_X448
#define MBEDTLS_SSL_IANA_TLS_GROUP_SECP256R1
#define MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA256
#define MBEDTLS_SSL_SIG_ECDSA
#define MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA512
#define MBEDTLS_SSL_IANA_TLS_GROUP_SECP256K1
#define MBEDTLS_TLS1_3_MD_MAX_SIZE
#define MBEDTLS_SSL_IANA_TLS_GROUP_SECP224K1
#define MBEDTLS_SSL_HASH_SHA384
#define MBEDTLS_SSL_IANA_TLS_GROUP_FFDHE8192
#define MBEDTLS_SSL_TRANSPORT_DATAGRAM
#define MBEDTLS_ERR_SSL_INVALID_MAC
Verification of the message MAC failed.
#define MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL
A buffer is too small to receive or write a message.
#define MBEDTLS_SSL_IANA_TLS_GROUP_FFDHE2048
#define MBEDTLS_PREMASTER_SIZE
#define MBEDTLS_SSL_IANA_TLS_GROUP_BP384R1
#define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL
#define MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE
The requested feature is not available.
#define MBEDTLS_SSL_HASH_SHA512
#define MBEDTLS_ERR_SSL_INTERNAL_ERROR
Internal error (eg, unexpected failure in lower-level module)
#define MBEDTLS_TLS1_3_SIG_ECDSA_SECP521R1_SHA512
mbedtls_key_exchange_type_t
Internal part of the public "ssl_ciphersuites.h".
uint16_t mbedtls_ssl_read_version(const unsigned char version[2], int transport)
static size_t mbedtls_ssl_out_hdr_len(const mbedtls_ssl_context *ssl)
#define MBEDTLS_CLIENT_HELLO_RANDOM_LEN
static int mbedtls_ssl_write_handshake_msg(mbedtls_ssl_context *ssl)
void mbedtls_ssl_transform_init(mbedtls_ssl_transform *transform)
static size_t mbedtls_ssl_in_hdr_len(const mbedtls_ssl_context *ssl)
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_validate_ciphersuite(const mbedtls_ssl_context *ssl, const mbedtls_ssl_ciphersuite_t *suite_info, mbedtls_ssl_protocol_version min_tls_version, mbedtls_ssl_protocol_version max_tls_version)
Validate cipher suite against config in SSL context.
void mbedtls_ssl_write_version(unsigned char version[2], int transport, mbedtls_ssl_protocol_version tls_version)
static int mbedtls_ssl_conf_is_tls12_enabled(const mbedtls_ssl_config *conf)
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_finish_handshake_msg(mbedtls_ssl_context *ssl, size_t buf_len, size_t msg_len)
#define MBEDTLS_SSL_MAX_BUFFERED_HS
void mbedtls_ssl_handshake_free(mbedtls_ssl_context *ssl)
Free referenced items in an SSL handshake context and clear memory.
static size_t mbedtls_ssl_ep_len(const mbedtls_ssl_context *ssl)
void mbedtls_ssl_session_reset_msg_layer(mbedtls_ssl_context *ssl, int partial)
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_parse_certificate(mbedtls_ssl_context *ssl)
#define MBEDTLS_SSL_CID_LEN_MAX
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_handshake_client_step(mbedtls_ssl_context *ssl)
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_handle_message_type(mbedtls_ssl_context *ssl)
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_read_record(mbedtls_ssl_context *ssl, unsigned update_hs_digest)
Update record layer.
void mbedtls_ssl_update_out_pointers(mbedtls_ssl_context *ssl, mbedtls_ssl_transform *transform)
void mbedtls_ssl_update_in_pointers(mbedtls_ssl_context *ssl)
#define MBEDTLS_SSL_HEADER_LEN
void mbedtls_ssl_set_outbound_transform(mbedtls_ssl_context *ssl, mbedtls_ssl_transform *transform)
void mbedtls_ssl_transform_free(mbedtls_ssl_transform *transform)
Free referenced items in an SSL transform context and clear memory.
#define MBEDTLS_SERVER_HELLO_RANDOM_LEN
static int mbedtls_ssl_transform_uses_aead(const mbedtls_ssl_transform *transform)
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_write_handshake_msg_ext(mbedtls_ssl_context *ssl, int update_checksum, int force_flush)
mbedtls_md_type_t mbedtls_ssl_md_alg_from_hash(unsigned char hash)
static int mbedtls_ssl_conf_is_tls13_enabled(const mbedtls_ssl_config *conf)
ssl utils functions for checking configuration.
void mbedtls_ssl_reset_in_pointers(mbedtls_ssl_context *ssl)
void mbedtls_ssl_handshake_wrapup(mbedtls_ssl_context *ssl)
static int mbedtls_ssl_tls12_named_group_is_ecdhe(uint16_t named_group)
mbedtls_ssl_mode_t mbedtls_ssl_get_mode_from_transform(const mbedtls_ssl_transform *transform)
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_start_handshake_msg(mbedtls_ssl_context *ssl, unsigned char hs_type, unsigned char **buf, size_t *buf_len)
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_handshake_server_step(mbedtls_ssl_context *ssl)
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_decrypt_buf(mbedtls_ssl_context const *ssl, mbedtls_ssl_transform *transform, mbedtls_record *rec)
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_flush_output(mbedtls_ssl_context *ssl)
static const void * mbedtls_ssl_get_sig_algs(const mbedtls_ssl_context *ssl)
uint32_t mbedtls_ssl_get_extension_id(unsigned int extension_type)
static void mbedtls_ssl_handshake_set_state(mbedtls_ssl_context *ssl, mbedtls_ssl_states state)
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_add_hs_hdr_to_checksum(mbedtls_ssl_context *ssl, unsigned hs_type, size_t total_hs_len)
static void mbedtls_ssl_handshake_increment_state(mbedtls_ssl_context *ssl)
uint32_t mbedtls_ssl_get_extension_mask(unsigned int extension_type)
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_write_record(mbedtls_ssl_context *ssl, int force_flush)
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_write_change_cipher_spec(mbedtls_ssl_context *ssl)
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_session_reset_int(mbedtls_ssl_context *ssl, int partial)
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_handle_pending_alert(mbedtls_ssl_context *ssl)
static int mbedtls_ssl_named_group_is_supported(uint16_t named_group)
void mbedtls_ssl_handshake_wrapup_free_hs_transform(mbedtls_ssl_context *ssl)
int mbedtls_ssl_get_psa_curve_info_from_tls_id(uint16_t tls_id, psa_key_type_t *type, size_t *bits)
Return PSA EC info for the specified TLS ID.
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_session_copy(mbedtls_ssl_session *dst, const mbedtls_ssl_session *src)
#define MBEDTLS_SSL_MAX_KEY_LENGTH
static int mbedtls_ssl_tls13_named_group_is_ecdhe(uint16_t named_group)
static int mbedtls_ssl_named_group_is_offered(const mbedtls_ssl_context *ssl, uint16_t named_group)
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_prepare_handshake_record(mbedtls_ssl_context *ssl)
void mbedtls_ssl_set_inbound_transform(mbedtls_ssl_context *ssl, mbedtls_ssl_transform *transform)
void mbedtls_ssl_reset_out_pointers(mbedtls_ssl_context *ssl)
static int mbedtls_ssl_tls13_named_group_is_ffdh(uint16_t named_group)
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_reset_checksum(mbedtls_ssl_context *ssl)
mbedtls_ecp_group_id mbedtls_ssl_get_ecp_group_id_from_tls_id(uint16_t tls_id)
Return mbedtls_ecp_group_id for the specified TLS ID.
void mbedtls_ssl_optimize_checksum(mbedtls_ssl_context *ssl, const mbedtls_ssl_ciphersuite_t *ciphersuite_info)
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_fetch_input(mbedtls_ssl_context *ssl, size_t nb_want)
static size_t mbedtls_ssl_hs_hdr_len(const mbedtls_ssl_context *ssl)
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_update_handshake_status(mbedtls_ssl_context *ssl)
uint16_t mbedtls_ssl_get_tls_id_from_ecp_group_id(mbedtls_ecp_group_id grp_id)
Return TLS ID for the specified mbedtls_ecp_group_id.
unsigned char mbedtls_ssl_hash_from_md_alg(int md)
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_check_timer(mbedtls_ssl_context *ssl)
int mbedtls_ssl_tls_prf_cb(const unsigned char *secret, size_t slen, const char *label, const unsigned char *random, size_t rlen, unsigned char *dstbuf, size_t dlen)
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_encrypt_buf(mbedtls_ssl_context *ssl, mbedtls_ssl_transform *transform, mbedtls_record *rec, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng)
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_send_fatal_handshake_failure(mbedtls_ssl_context *ssl)
#define MBEDTLS_SSL_MAX_IV_LENGTH
#define MBEDTLS_SSL_PAYLOAD_OVERHEAD
static const void * mbedtls_ssl_get_groups(const mbedtls_ssl_context *ssl)
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_add_hs_msg_to_checksum(mbedtls_ssl_context *ssl, unsigned hs_type, unsigned char const *msg, size_t msg_len)
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_write_certificate(mbedtls_ssl_context *ssl)
static int mbedtls_ssl_chk_buf_ptr(const uint8_t *cur, const uint8_t *end, size_t need)
This function checks if the remaining size in a buffer is greater or equal than a needed space.
mbedtls_ssl_mode_t mbedtls_ssl_get_mode_from_ciphersuite(const mbedtls_ssl_ciphersuite_t *suite)
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_parse_finished(mbedtls_ssl_context *ssl)
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_get_handshake_transcript(mbedtls_ssl_context *ssl, const mbedtls_md_type_t md, unsigned char *dst, size_t dst_len, size_t *olen)
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_write_finished(mbedtls_ssl_context *ssl)
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_parse_change_cipher_spec(mbedtls_ssl_context *ssl)
#define MBEDTLS_RECEIVED_SIG_ALGS_SIZE
void mbedtls_ssl_set_timer(mbedtls_ssl_context *ssl, uint32_t millisecs)
struct mbedtls_ssl_hs_buffer mbedtls_ssl_hs_buffer
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_check_curve_tls_id(const mbedtls_ssl_context *ssl, uint16_t tls_id)
mbedtls_ssl_mode_t
TLS record protection modes.
@ MBEDTLS_SSL_MODE_STREAM
@ MBEDTLS_SSL_MODE_CBC_ETM
static int mbedtls_ssl_tls13_cipher_suite_is_offered(mbedtls_ssl_context *ssl, int cipher_suite)
void mbedtls_ssl_pend_fatal_alert(mbedtls_ssl_context *ssl, unsigned char alert_type, int alert_reason)
The DHM context structure.
The ECDH context structure.
EC J-PAKE context structure.
The generic message-digest context.
This structure is used for storing ciphersuite information.
SSL/TLS configuration to be shared between mbedtls_ssl_context structures.
MBEDTLS_CHECK_RETURN_CRITICAL int(* update_checksum)(mbedtls_ssl_context *, const unsigned char *, size_t)
MBEDTLS_CHECK_RETURN_CRITICAL int(* calc_verify)(const mbedtls_ssl_context *, unsigned char *, size_t *)
struct mbedtls_ssl_handshake_params::@995::@998 finished_in
unsigned char digest[PSA_HASH_MAX_SIZE]
MBEDTLS_CHECK_RETURN_CRITICAL int(* calc_finished)(mbedtls_ssl_context *, unsigned char *, int)
unsigned char sig_algs_heap_allocated
struct mbedtls_ssl_handshake_params::@994 buffering
struct mbedtls_ssl_handshake_params::@995::@997 finished_out
struct mbedtls_ssl_handshake_params::@994::mbedtls_ssl_hs_buffer hs[4]
size_t total_bytes_buffered
mbedtls_ssl_ciphersuite_t const * ciphersuite_info
mbedtls_ssl_tls_prf_cb * tls_prf
const uint16_t * sig_algs
const uint16_t * group_list
struct mbedtls_ssl_handshake_params::@994::@996 future_record
unsigned char randbytes[32+32]
unsigned char group_list_heap_allocated
union mbedtls_ssl_handshake_params::@995 state_local
The data structure holding the cryptographic material (key and IV) used for record protection in TLS ...
unsigned char server_write_key[32]
unsigned char client_write_key[32]
unsigned char server_write_iv[16]
unsigned char client_write_iv[16]
mbedtls_cipher_context_t cipher_ctx_enc
mbedtls_cipher_context_t cipher_ctx_dec
mbedtls_ssl_protocol_version tls_version
Certificate revocation list structure.
Container for an X.509 certificate.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4