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 |
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.
| bool binderderived |
True after binder_key derivation has completed.
| uint8_t binderkey[QSC_TLS_HASH_MAX_SIZE] |
PSK binder key, external or resumption, derived from early_secret.
| uint8_t clientapplicationtrafficsecret[QSC_TLS_HASH_MAX_SIZE] |
Client application traffic secret, generation 0.
| uint8_t clientearlytrafficsecret[QSC_TLS_HASH_MAX_SIZE] |
Client early traffic secret used for 0-RTT data.
| uint8_t clienthandshaketrafficsecret[QSC_TLS_HASH_MAX_SIZE] |
Client handshake traffic secret.
| size_t digestsize |
Digest size, in bytes, for the selected hash algorithm.
| bool earlydone |
True after early_secret derivation has completed.
| uint8_t earlyexportermastersecret[QSC_TLS_HASH_MAX_SIZE] |
Early exporter master secret.
| uint8_t earlysecret[QSC_TLS_HASH_MAX_SIZE] |
TLS early_secret value.
| bool earlytrafficderived |
True after client_early_traffic_secret derivation has completed.
| uint8_t exportermastersecret[QSC_TLS_HASH_MAX_SIZE] |
Exporter master secret.
| bool handshakedone |
True after handshake_secret derivation has completed.
| uint8_t handshakesecret[QSC_TLS_HASH_MAX_SIZE] |
TLS handshake_secret value.
Hash algorithm associated with the negotiated suite.
| bool initialized |
True when the key schedule state has been initialized.
| bool masterdone |
True after master_secret derivation has completed.
| uint8_t mastersecret[QSC_TLS_HASH_MAX_SIZE] |
TLS master_secret value.
| uint8_t resumptionmastersecret[QSC_TLS_HASH_MAX_SIZE] |
Resumption master secret.
| uint8_t serverapplicationtrafficsecret[QSC_TLS_HASH_MAX_SIZE] |
Server application traffic secret, generation 0.
| uint8_t serverhandshaketrafficsecret[QSC_TLS_HASH_MAX_SIZE] |
Server handshake traffic secret.