QSC Post Quantum Cryptographic Library 1.3.0.0 (C1)
A post quantum secure library written in Ansi C
Loading...
Searching...
No Matches
qsc_tls_client_state Struct Reference

Stores the active TLS 1.3 client handshake and record state. More...

#include <tlsclient.h>

Data Fields

qsc_tls_client_config config
qsc_tls_client_phase phase
qsc_tls_cipher_suite negotiatedsuite
qsc_tls_hash_algorithm negotiatedhash
qsc_tls_named_group negotiatedgroup
qsc_tls_signature_scheme negotiatedsigscheme
uint8_t clientrandom [32U]
uint8_t serverrandom [32U]
uint8_t clienthello [QSC_TLS_CLIENT_HELLO_BODY_MAX_SIZE+4U]
uint8_t retryclienthello [QSC_TLS_CLIENT_HELLO_BODY_MAX_SIZE+4U]
uint8_t helloretryrequest [QSC_TLS_SERVER_HELLO_BODY_MAX_SIZE+4U]
qsc_tls_transcript_state transcript
qsc_tls_key_schedule_state keyschedule
qsc_tls_record_state readrecord
qsc_tls_record_state writerecord
qsc_tls_key_exchange_state keyexchange
qsc_tls_peer_capabilities peercapabilities
qsc_tls_alert_description lastalert
uint8_t selectedalpn [QSC_TLS_MAX_ALPN_SIZE]
uint8_t peercertificate [QSC_TLS_CERTIFICATE_MAX_SIZE]
size_t selectedalpnlen
size_t peercertificatelen
size_t clienthellolen
size_t retryclienthellolen
size_t helloretryrequestlen
bool alpnselected
bool serverauthenticated
bool changecipherspecreceived
bool helloretryrequestconsumed
bool clientrandomgenerated
bool pskoffered
bool pskaccepted
bool earlydataoffered
bool earlydataaccepted

Detailed Description

Stores the active TLS 1.3 client handshake and record state.

Field Documentation

◆ alpnselected

bool alpnselected

True when the server selected an ALPN protocol.

◆ changecipherspecreceived

bool changecipherspecreceived

True once the compatibility ChangeCipherSpec record has been observed.

◆ clienthello

uint8_t clienthello[QSC_TLS_CLIENT_HELLO_BODY_MAX_SIZE+4U]

Serialized first ClientHello handshake message.

◆ clienthellolen

size_t clienthellolen

Length, in bytes, of the retained first ClientHello.

◆ clientrandom

uint8_t clientrandom[32U]

ClientHello random value.

◆ clientrandomgenerated

bool clientrandomgenerated

True once the ClientHello random has been generated for this handshake.

◆ config

Snapshot of the client configuration supplied at initialization.

◆ earlydataaccepted

bool earlydataaccepted

True if server confirmed early_data in EncryptedExtensions.

◆ earlydataoffered

bool earlydataoffered

True if early_data extension was emitted in ClientHello.

◆ helloretryrequest

uint8_t helloretryrequest[QSC_TLS_SERVER_HELLO_BODY_MAX_SIZE+4U]

Serialized HelloRetryRequest handshake message.

◆ helloretryrequestconsumed

bool helloretryrequestconsumed

True once a HelloRetryRequest path has been consumed for this handshake.

◆ helloretryrequestlen

size_t helloretryrequestlen

Length, in bytes, of the retained HelloRetryRequest.

◆ keyexchange

Local ephemeral key-exchange state for the offered key share.

◆ keyschedule

TLS 1.3 key schedule state for handshake and application epochs.

◆ lastalert

Most recent alert description observed or generated by the client.

◆ negotiatedgroup

qsc_tls_named_group negotiatedgroup

Negotiated key-exchange group used for the active handshake.

◆ negotiatedhash

qsc_tls_hash_algorithm negotiatedhash

Transcript and HKDF hash derived from the negotiated suite.

◆ negotiatedsigscheme

qsc_tls_signature_scheme negotiatedsigscheme

Negotiated CertificateVerify signature scheme.

◆ negotiatedsuite

qsc_tls_cipher_suite negotiatedsuite

Negotiated cipher suite selected by the server.

◆ peercapabilities

qsc_tls_peer_capabilities peercapabilities

Capabilities advertised by the peer and parsed from extensions.

◆ peercertificate

uint8_t peercertificate[QSC_TLS_CERTIFICATE_MAX_SIZE]

DER encoded peer leaf certificate retained for CertificateVerify validation.

◆ peercertificatelen

size_t peercertificatelen

Length, in bytes, of the retained peer leaf certificate.

◆ phase

Current handshake phase.

◆ pskaccepted

bool pskaccepted

True if the server selected our PSK (ServerHello pre_shared_key).

◆ pskoffered

bool pskoffered

True if a pre_shared_key extension was offered in ClientHello.

◆ readrecord

Active inbound record protection state.

◆ retryclienthello

uint8_t retryclienthello[QSC_TLS_CLIENT_HELLO_BODY_MAX_SIZE+4U]

Serialized second ClientHello handshake message after HelloRetryRequest.

◆ retryclienthellolen

size_t retryclienthellolen

Length, in bytes, of the retained second ClientHello.

◆ selectedalpn

uint8_t selectedalpn[QSC_TLS_MAX_ALPN_SIZE]

Selected ALPN protocol identifier without a terminating NULL byte.

◆ selectedalpnlen

size_t selectedalpnlen

Length, in bytes, of selectedalpn.

◆ serverauthenticated

bool serverauthenticated

True once the server certificate path and CertificateVerify have been validated.

◆ serverrandom

uint8_t serverrandom[32U]

ServerHello random value.

◆ transcript

Active transcript hash state.

◆ writerecord

qsc_tls_record_state writerecord

Active outbound record protection state.


The documentation for this struct was generated from the following file:
  • C:/Users/stepp/Documents/Visual Studio 2022/Projects/C/QSC/QSC/tlsclient.h