pub enum KeyChange {
Handshake {
keys: Keys,
},
OneRtt {
keys: Keys,
next: Secrets,
},
}
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.
Variants§
Auto Trait Implementations§
impl Freeze for KeyChange
impl RefUnwindSafe for KeyChange
impl Send for KeyChange
impl Sync for KeyChange
impl Unpin for KeyChange
impl UnwindSafe for KeyChange
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<Tail, T> Prepend<T> for Tail
impl<Tail, T> Prepend<T> for Tail
§type PreprendResult = Tail
type PreprendResult = Tail
The Resulting [
TupleList
], of an [Prepend::prepend()
] call,
including the prepended entry.