Stores the active TLS 1.3 client handshake and record state. More...
#include <tlsclient.h>
Stores the active TLS 1.3 client handshake and record state.
| bool alpnselected |
True when the server selected an ALPN protocol.
| bool changecipherspecreceived |
True once the compatibility ChangeCipherSpec record has been observed.
| uint8_t clienthello[QSC_TLS_CLIENT_HELLO_BODY_MAX_SIZE+4U] |
Serialized first ClientHello handshake message.
| size_t clienthellolen |
Length, in bytes, of the retained first ClientHello.
| uint8_t clientrandom[32U] |
ClientHello random value.
| bool clientrandomgenerated |
True once the ClientHello random has been generated for this handshake.
| qsc_tls_client_config config |
Snapshot of the client configuration supplied at initialization.
| bool earlydataaccepted |
True if server confirmed early_data in EncryptedExtensions.
| bool earlydataoffered |
True if early_data extension was emitted in ClientHello.
| uint8_t helloretryrequest[QSC_TLS_SERVER_HELLO_BODY_MAX_SIZE+4U] |
Serialized HelloRetryRequest handshake message.
| bool helloretryrequestconsumed |
True once a HelloRetryRequest path has been consumed for this handshake.
| size_t helloretryrequestlen |
Length, in bytes, of the retained HelloRetryRequest.
| qsc_tls_key_exchange_state keyexchange |
Local ephemeral key-exchange state for the offered key share.
| qsc_tls_key_schedule_state keyschedule |
TLS 1.3 key schedule state for handshake and application epochs.
| qsc_tls_alert_description lastalert |
Most recent alert description observed or generated by the client.
| qsc_tls_named_group negotiatedgroup |
Negotiated key-exchange group used for the active handshake.
| qsc_tls_hash_algorithm negotiatedhash |
Transcript and HKDF hash derived from the negotiated suite.
| qsc_tls_signature_scheme negotiatedsigscheme |
Negotiated CertificateVerify signature scheme.
| qsc_tls_cipher_suite negotiatedsuite |
Negotiated cipher suite selected by the server.
| qsc_tls_peer_capabilities peercapabilities |
Capabilities advertised by the peer and parsed from extensions.
| uint8_t peercertificate[QSC_TLS_CERTIFICATE_MAX_SIZE] |
DER encoded peer leaf certificate retained for CertificateVerify validation.
| size_t peercertificatelen |
Length, in bytes, of the retained peer leaf certificate.
| qsc_tls_client_phase phase |
Current handshake phase.
| bool pskaccepted |
True if the server selected our PSK (ServerHello pre_shared_key).
| bool pskoffered |
True if a pre_shared_key extension was offered in ClientHello.
| qsc_tls_record_state readrecord |
Active inbound record protection state.
| uint8_t retryclienthello[QSC_TLS_CLIENT_HELLO_BODY_MAX_SIZE+4U] |
Serialized second ClientHello handshake message after HelloRetryRequest.
| size_t retryclienthellolen |
Length, in bytes, of the retained second ClientHello.
| uint8_t selectedalpn[QSC_TLS_MAX_ALPN_SIZE] |
Selected ALPN protocol identifier without a terminating NULL byte.
| size_t selectedalpnlen |
Length, in bytes, of selectedalpn.
| bool serverauthenticated |
True once the server certificate path and CertificateVerify have been validated.
| uint8_t serverrandom[32U] |
ServerHello random value.
| qsc_tls_transcript_state transcript |
Active transcript hash state.
| qsc_tls_record_state writerecord |
Active outbound record protection state.