|
wired
libc-free QUIC/HTTP3 SDK in C for x86_64-linux
|
Key schedule state: the current stage, the Master Secret once reached, and the four traffic key sets indexed by the QUIC_KS_* constants. More...
#include <keyschedule.h>
Data Fields | |
| int | stage |
| 0=init/early, 1=handshake, 2=master | |
| u8 | master [QUIC_HKDF_PRK] |
| Master Secret (derived on reaching stage 1). | |
| quic_initial_keys | keys [4] |
| traffic keys indexed by QUIC_KS_* | |
| u8 | client_ap_secret [QUIC_HKDF_PRK] |
| client_application_traffic_secret_0 (RFC 8446 7.1), retained past stage 2 so RFC 9001 6 key updates can derive the next generation from it | |
| u8 | server_ap_secret [QUIC_HKDF_PRK] |
| server_application_traffic_secret_0, retained for the same reason on the send side (RFC 9001 6.2) | |
| u8 | exporter_secret [QUIC_HKDF_PRK] |
| exporter_master_secret (RFC 8446 7.1/7.5), derived alongside the application traffic secrets on reaching stage 2 so quic_tls_exporter can compute TLS-Exporter values (e.g. | |
| u16 | suite |
| negotiated TLS 1.3 cipher suite (RFC 8446 B.4) for the Handshake/1-RTT levels this schedule derives; set by quic_keysched_init to AES_128_GCM_SHA256 and overridable via quic_keysched_set_suite before advance_handshake. | |
Key schedule state: the current stage, the Master Secret once reached, and the four traffic key sets indexed by the QUIC_KS_* constants.
| u8 quic_keysched::exporter_secret[QUIC_HKDF_PRK] |
exporter_master_secret (RFC 8446 7.1/7.5), derived alongside the application traffic secrets on reaching stage 2 so quic_tls_exporter can compute TLS-Exporter values (e.g.
EXPORTER-WebTransport) once the handshake completes
| u16 quic_keysched::suite |
negotiated TLS 1.3 cipher suite (RFC 8446 B.4) for the Handshake/1-RTT levels this schedule derives; set by quic_keysched_init to AES_128_GCM_SHA256 and overridable via quic_keysched_set_suite before advance_handshake.
Initial packet protection (RFC 9001 5.2) is unaffected – it derives separately and is always AES-128-GCM.