Module key_schedule

Source
Expand description

Key schedule maintenance for TLS1.3

StructsΒ§

KeySchedule πŸ”’
This is the TLS1.3 key schedule. It stores the current secret and the type of hash. This isn’t used directly; but only through the typestates.
KeyScheduleBeforeFinished πŸ”’
Keys derived (but not installed) before client’s Finished message.
KeyScheduleClientBeforeFinished πŸ”’
Client-side key schedule before the finished message is sent.
KeyScheduleEarly πŸ”’
The β€œearly secret” stage of the key schedule WITH a PSK.
KeyScheduleHandshake πŸ”’
KeyScheduleHandshakeStart πŸ”’
KeySchedule during handshake.
KeySchedulePreHandshake πŸ”’
The β€œearly secret” stage of the key schedule.
KeyScheduleResumption πŸ”’
KeyScheduleSuite πŸ”’
This is a component part of KeySchedule, and groups operations that do not depend on the root key schedule secret.
KeyScheduleTraffic πŸ”’
KeySchedule during traffic stage. All traffic & exporter keys are guaranteed to be available.
KeyScheduleTrafficWithClientFinishedPending πŸ”’
KeySchedule during traffic stage, retaining the ability to calculate the client’s finished verify_data. The traffic stage key schedule can be extracted from it through signing the client finished hash.

EnumsΒ§

SecretKind πŸ”’
The kinds of secret we can extract from KeySchedule.

FunctionsΒ§

derive_traffic_iv
HKDF-Expand-Label where the output is an IV.
derive_traffic_key
HKDF-Expand-Label where the output is an AEAD key.
expand_secret πŸ”’
hkdf_expand_label πŸ”’
HKDF-Expand-Label where the output length is a compile-time constant, and therefore it is infallible.
hkdf_expand_label_aead_key πŸ”’
[HKDF-Expand-Label] where the output is an AEAD key.
hkdf_expand_label_block πŸ”’
[HKDF-Expand-Label] where the output is one block in size.
hkdf_expand_label_inner πŸ”’
hkdf_expand_label_slice πŸ”’
[HKDF-Expand-Label] where the output is a slice.
server_ech_hrr_confirmation_secret πŸ”’