@@ -2820,74 +2820,108 @@ typedef struct Options Options;
28202820/** TLS Extensions - RFC 6066 */
28212821#ifdef HAVE_TLS_EXTENSIONS
28222822
2823+ #define TLSXT_SERVER_NAME 0x0000 /* a.k.a. SNI */
2824+ #define TLSXT_MAX_FRAGMENT_LENGTH 0x0001
2825+ #define TLSXT_TRUSTED_CA_KEYS 0x0003
2826+ #define TLSXT_TRUNCATED_HMAC 0x0004
2827+ #define TLSXT_STATUS_REQUEST 0x0005 /* a.k.a. OCSP stapling */
2828+ #define TLSXT_SUPPORTED_GROUPS 0x000a /* a.k.a. Supported Curves */
2829+ #define TLSXT_EC_POINT_FORMATS 0x000b
2830+ #define TLSXT_SIGNATURE_ALGORITHMS 0x000d /* HELLO_EXT_SIG_ALGO */
2831+ #define TLSXT_USE_SRTP 0x000e /* 14 */
2832+ #define TLSXT_APPLICATION_LAYER_PROTOCOL 0x0010 /* a.k.a. ALPN */
2833+ #define TLSXT_STATUS_REQUEST_V2 0x0011 /* a.k.a. OCSP stapling v2 */
2834+ #define TLSXT_CLIENT_CERTIFICATE 0x0013 /* RFC8446 */
2835+ #define TLSXT_SERVER_CERTIFICATE 0x0014 /* RFC8446 */
2836+ #define TLSXT_ENCRYPT_THEN_MAC 0x0016 /* RFC 7366 */
2837+ #define TLSXT_EXTENDED_MASTER_SECRET 0x0017 /* HELLO_EXT_EXTMS */
2838+ #define TLSXT_SESSION_TICKET 0x0023
2839+ #define TLSXT_PRE_SHARED_KEY 0x0029
2840+ #define TLSXT_EARLY_DATA 0x002a
2841+ #define TLSXT_SUPPORTED_VERSIONS 0x002b
2842+ #define TLSXT_COOKIE 0x002c
2843+ #define TLSXT_PSK_KEY_EXCHANGE_MODES 0x002d
2844+ #define TLSXT_CERTIFICATE_AUTHORITIES 0x002f
2845+ #define TLSXT_POST_HANDSHAKE_AUTH 0x0031
2846+ #define TLSXT_SIGNATURE_ALGORITHMS_CERT 0x0032
2847+ #define TLSXT_KEY_SHARE 0x0033
2848+ #define TLSXT_CONNECTION_ID 0x0036
2849+ #define TLSXT_KEY_QUIC_TP_PARAMS 0x0039 /* RFC 9001, ch. 8.2 */
2850+ #define TLSXT_ECH 0xfe0d /* from */
2851+ /* draft-ietf-tls-esni-13 */
2852+ /* The 0xFF section is experimental/custom/personal use */
2853+ #define TLSXT_CKS 0xff92 /* X9.146 */
2854+ #define TLSXT_RENEGOTIATION_INFO 0xff01
2855+ #define TLSXT_KEY_QUIC_TP_PARAMS_DRAFT 0xffa5 /* from */
2856+ /* draft-ietf-quic-tls-27 */
2857+
28232858typedef enum {
28242859#ifdef HAVE_SNI
2825- TLSX_SERVER_NAME = 0x0000 , /* a.k.a. SNI */
2826- #endif
2827- TLSX_MAX_FRAGMENT_LENGTH = 0x0001 ,
2828- TLSX_TRUSTED_CA_KEYS = 0x0003 ,
2829- TLSX_TRUNCATED_HMAC = 0x0004 ,
2830- TLSX_STATUS_REQUEST = 0x0005 , /* a.k.a. OCSP stapling */
2831- TLSX_SUPPORTED_GROUPS = 0x000a , /* a.k.a. Supported Curves */
2832- TLSX_EC_POINT_FORMATS = 0x000b ,
2860+ TLSX_SERVER_NAME = TLSXT_SERVER_NAME ,
2861+ #endif
2862+ TLSX_MAX_FRAGMENT_LENGTH = TLSXT_MAX_FRAGMENT_LENGTH ,
2863+ TLSX_TRUSTED_CA_KEYS = TLSXT_TRUSTED_CA_KEYS ,
2864+ TLSX_TRUNCATED_HMAC = TLSXT_TRUNCATED_HMAC ,
2865+ TLSX_STATUS_REQUEST = TLSXT_STATUS_REQUEST ,
2866+ TLSX_SUPPORTED_GROUPS = TLSXT_SUPPORTED_GROUPS ,
2867+ TLSX_EC_POINT_FORMATS = TLSXT_EC_POINT_FORMATS ,
28332868#if !defined(NO_CERTS ) && !defined(WOLFSSL_NO_SIGALG )
2834- TLSX_SIGNATURE_ALGORITHMS = 0x000d , /* HELLO_EXT_SIG_ALGO */
2869+ TLSX_SIGNATURE_ALGORITHMS = TLSXT_SIGNATURE_ALGORITHMS ,
28352870#endif
28362871#ifdef WOLFSSL_SRTP
2837- TLSX_USE_SRTP = 0x000e , /* 14 */
2872+ TLSX_USE_SRTP = TLSXT_USE_SRTP ,
28382873#endif
2839- TLSX_APPLICATION_LAYER_PROTOCOL = 0x0010 , /* a.k.a. ALPN */
2840- TLSX_STATUS_REQUEST_V2 = 0x0011 , /* a.k.a. OCSP stapling v2 */
2874+ TLSX_APPLICATION_LAYER_PROTOCOL = TLSXT_APPLICATION_LAYER_PROTOCOL ,
2875+ TLSX_STATUS_REQUEST_V2 = TLSXT_STATUS_REQUEST_V2 ,
28412876#ifdef HAVE_RPK
2842- TLSX_CLIENT_CERTIFICATE_TYPE = 0x0013 , /* RFC8446 */
2843- TLSX_SERVER_CERTIFICATE_TYPE = 0x0014 , /* RFC8446 */
2877+ TLSX_CLIENT_CERTIFICATE_TYPE = TLSXT_CLIENT_CERTIFICATE ,
2878+ TLSX_SERVER_CERTIFICATE_TYPE = TLSXT_SERVER_CERTIFICATE ,
28442879#endif
28452880#if defined(HAVE_ENCRYPT_THEN_MAC ) && !defined(WOLFSSL_AEAD_ONLY )
2846- TLSX_ENCRYPT_THEN_MAC = 0x0016 , /* RFC 7366 */
2881+ TLSX_ENCRYPT_THEN_MAC = TLSXT_ENCRYPT_THEN_MAC ,
28472882#endif
2848- TLSX_EXTENDED_MASTER_SECRET = 0x0017 , /* HELLO_EXT_EXTMS */
2849- TLSX_SESSION_TICKET = 0x0023 ,
2883+ TLSX_EXTENDED_MASTER_SECRET = TLSXT_EXTENDED_MASTER_SECRET ,
2884+ TLSX_SESSION_TICKET = TLSXT_SESSION_TICKET ,
28502885#ifdef WOLFSSL_TLS13
28512886 #if defined(HAVE_SESSION_TICKET ) || !defined(NO_PSK )
2852- TLSX_PRE_SHARED_KEY = 0x0029 ,
2887+ TLSX_PRE_SHARED_KEY = TLSXT_PRE_SHARED_KEY ,
28532888 #endif
28542889 #ifdef WOLFSSL_EARLY_DATA
2855- TLSX_EARLY_DATA = 0x002a ,
2890+ TLSX_EARLY_DATA = TLSXT_EARLY_DATA ,
28562891 #endif
2857- TLSX_SUPPORTED_VERSIONS = 0x002b ,
2892+ TLSX_SUPPORTED_VERSIONS = TLSXT_SUPPORTED_VERSIONS ,
28582893 #ifdef WOLFSSL_SEND_HRR_COOKIE
2859- TLSX_COOKIE = 0x002c ,
2894+ TLSX_COOKIE = TLSXT_COOKIE ,
28602895 #endif
28612896 #if defined(HAVE_SESSION_TICKET ) || !defined(NO_PSK )
2862- TLSX_PSK_KEY_EXCHANGE_MODES = 0x002d ,
2897+ TLSX_PSK_KEY_EXCHANGE_MODES = TLSXT_PSK_KEY_EXCHANGE_MODES ,
28632898 #endif
28642899 #if !defined(NO_CERTS ) && !defined(WOLFSSL_NO_CA_NAMES )
2865- TLSX_CERTIFICATE_AUTHORITIES = 0x002f ,
2900+ TLSX_CERTIFICATE_AUTHORITIES = TLSXT_CERTIFICATE_AUTHORITIES ,
28662901 #endif
28672902 #ifdef WOLFSSL_POST_HANDSHAKE_AUTH
2868- TLSX_POST_HANDSHAKE_AUTH = 0x0031 ,
2903+ TLSX_POST_HANDSHAKE_AUTH = TLSXT_POST_HANDSHAKE_AUTH ,
28692904 #endif
28702905 #if !defined(NO_CERTS ) && !defined(WOLFSSL_NO_SIGALG )
2871- TLSX_SIGNATURE_ALGORITHMS_CERT = 0x0032 ,
2906+ TLSX_SIGNATURE_ALGORITHMS_CERT = TLSXT_SIGNATURE_ALGORITHMS_CERT ,
28722907 #endif
2873- TLSX_KEY_SHARE = 0x0033 ,
2908+ TLSX_KEY_SHARE = TLSXT_KEY_SHARE ,
28742909 #if defined(WOLFSSL_DTLS_CID )
2875- TLSX_CONNECTION_ID = 0x0036 ,
2910+ TLSX_CONNECTION_ID = TLSXT_CONNECTION_ID ,
28762911 #endif /* defined(WOLFSSL_DTLS_CID) */
28772912 #ifdef WOLFSSL_QUIC
2878- TLSX_KEY_QUIC_TP_PARAMS = 0x0039 , /* RFC 9001, ch. 8.2 */
2913+ TLSX_KEY_QUIC_TP_PARAMS = TLSXT_KEY_QUIC_TP_PARAMS ,
28792914 #endif
2880- #ifdef WOLFSSL_DUAL_ALG_CERTS
2881- TLSX_CKS = 0xff92 , /* X9.146; ff indicates personal
2882- * use and 92 is hex for 146. */
2915+ #ifdef HAVE_ECH
2916+ TLSX_ECH = TLSXT_ECH ,
28832917 #endif
28842918#endif
2885- TLSX_RENEGOTIATION_INFO = 0xff01 ,
2886- #ifdef WOLFSSL_QUIC
2887- TLSX_KEY_QUIC_TP_PARAMS_DRAFT = 0xffa5 , /* from draft-ietf-quic-tls-27 */
2919+ #if defined(WOLFSSL_TLS13 ) && defined(WOLFSSL_DUAL_ALG_CERTS )
2920+ TLSX_CKS = TLSXT_CKS ,
28882921#endif
2889- #if defined(WOLFSSL_TLS13 ) && defined(HAVE_ECH )
2890- TLSX_ECH = 0xfe0d , /* from draft-ietf-tls-esni-13 */
2922+ TLSX_RENEGOTIATION_INFO = TLSXT_RENEGOTIATION_INFO ,
2923+ #ifdef WOLFSSL_QUIC
2924+ TLSX_KEY_QUIC_TP_PARAMS_DRAFT = TLSXT_KEY_QUIC_TP_PARAMS_DRAFT ,
28912925#endif
28922926} TLSX_Type ;
28932927
0 commit comments