Enum rustls_fork_shadow_tls::quic::KeyChange
source · pub enum KeyChange {
Handshake {
keys: Keys,
},
OneRtt {
keys: Keys,
next: Secrets,
},
}
Available on crate feature
quic
only.Expand description
Key material for use in QUIC packet spaces
QUIC uses 4 different sets of keys (and progressive key updates for long-running connections):
- Initial: these can be created from
Keys::initial()
- 0-RTT keys: can be retrieved from
QuicExt::zero_rtt_keys()
- Handshake: these are returned from
QuicExt::write_hs()
afterClientHello
andServerHello
messages have been exchanged - 1-RTT keys: these are returned from
QuicExt::write_hs()
after the handshake is done
Once the 1-RTT keys have been exchanged, either side may initiate a key update. Progressive
update keys can be obtained from the Secrets
returned in KeyChange::OneRtt
. Note that
only packet keys are updated by key updates; header protection keys remain the same.