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_key_schedule_state Struct Reference

TLS 1.3 key schedule state and derived secret container. More...

#include <tlskeyschedule.h>

Data Fields

uint8_t binderkey [QSC_TLS_HASH_MAX_SIZE]
uint8_t clientapplicationtrafficsecret [QSC_TLS_HASH_MAX_SIZE]
uint8_t clientearlytrafficsecret [QSC_TLS_HASH_MAX_SIZE]
uint8_t clienthandshaketrafficsecret [QSC_TLS_HASH_MAX_SIZE]
uint8_t earlyexportermastersecret [QSC_TLS_HASH_MAX_SIZE]
uint8_t exportermastersecret [QSC_TLS_HASH_MAX_SIZE]
uint8_t earlysecret [QSC_TLS_HASH_MAX_SIZE]
uint8_t handshakesecret [QSC_TLS_HASH_MAX_SIZE]
uint8_t mastersecret [QSC_TLS_HASH_MAX_SIZE]
uint8_t resumptionmastersecret [QSC_TLS_HASH_MAX_SIZE]
uint8_t serverhandshaketrafficsecret [QSC_TLS_HASH_MAX_SIZE]
uint8_t serverapplicationtrafficsecret [QSC_TLS_HASH_MAX_SIZE]
size_t digestsize
qsc_tls_hash_algorithm hash
bool binderderived
bool earlydone
bool earlytrafficderived
bool handshakedone
bool initialized
bool masterdone

Detailed Description

TLS 1.3 key schedule state and derived secret container.

This structure stores the staged TLS 1.3 secrets derived during handshake and post-handshake processing. The selected hash algorithm determines the valid number of bytes in each fixed-size secret buffer. The boolean state flags record which derivation stages have completed, allowing the implementation to reject operations that are attempted out of sequence.

The structure contains sensitive keying material and shall be cleared with qsc_tls_keyschedule_state_dispose() before it is released, reused, or allowed to leave scope.

Field Documentation

◆ binderderived

bool binderderived

True after binder_key derivation has completed.

◆ binderkey

uint8_t binderkey[QSC_TLS_HASH_MAX_SIZE]

PSK binder key, external or resumption, derived from early_secret.

◆ clientapplicationtrafficsecret

uint8_t clientapplicationtrafficsecret[QSC_TLS_HASH_MAX_SIZE]

Client application traffic secret, generation 0.

◆ clientearlytrafficsecret

uint8_t clientearlytrafficsecret[QSC_TLS_HASH_MAX_SIZE]

Client early traffic secret used for 0-RTT data.

◆ clienthandshaketrafficsecret

uint8_t clienthandshaketrafficsecret[QSC_TLS_HASH_MAX_SIZE]

Client handshake traffic secret.

◆ digestsize

size_t digestsize

Digest size, in bytes, for the selected hash algorithm.

◆ earlydone

bool earlydone

True after early_secret derivation has completed.

◆ earlyexportermastersecret

uint8_t earlyexportermastersecret[QSC_TLS_HASH_MAX_SIZE]

Early exporter master secret.

◆ earlysecret

uint8_t earlysecret[QSC_TLS_HASH_MAX_SIZE]

TLS early_secret value.

◆ earlytrafficderived

bool earlytrafficderived

True after client_early_traffic_secret derivation has completed.

◆ exportermastersecret

uint8_t exportermastersecret[QSC_TLS_HASH_MAX_SIZE]

Exporter master secret.

◆ handshakedone

bool handshakedone

True after handshake_secret derivation has completed.

◆ handshakesecret

uint8_t handshakesecret[QSC_TLS_HASH_MAX_SIZE]

TLS handshake_secret value.

◆ hash

Hash algorithm associated with the negotiated suite.

◆ initialized

bool initialized

True when the key schedule state has been initialized.

◆ masterdone

bool masterdone

True after master_secret derivation has completed.

◆ mastersecret

uint8_t mastersecret[QSC_TLS_HASH_MAX_SIZE]

TLS master_secret value.

◆ resumptionmastersecret

uint8_t resumptionmastersecret[QSC_TLS_HASH_MAX_SIZE]

Resumption master secret.

◆ serverapplicationtrafficsecret

uint8_t serverapplicationtrafficsecret[QSC_TLS_HASH_MAX_SIZE]

Server application traffic secret, generation 0.

◆ serverhandshaketrafficsecret

uint8_t serverhandshaketrafficsecret[QSC_TLS_HASH_MAX_SIZE]

Server handshake traffic secret.


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