pub struct CaseSessionKeys {
pub i2r_key: [u8; 16],
pub r2i_key: [u8; 16],
pub attestation_challenge: [u8; 16],
}Expand description
Symmetric session keys derived by a completed CASE handshake.
Consumed by M5 transport’s AES-CCM cipher wrapper.
§Secret hygiene
This type carries live symmetric key material. It implements
zeroize::ZeroizeOnDrop so the key bytes are wiped from memory when the
value is dropped, and its Debug impl redacts every field (printing
CaseSessionKeys { .. }) so key bytes never reach logs. Equality is
intentionally not derived: comparing session keys with the variable-time
== would be a timing side-channel, and no caller needs it (tests compare
individual byte-array fields directly).
Fields§
§i2r_key: [u8; 16]Key for encrypting initiator → responder traffic.
r2i_key: [u8; 16]Key for encrypting responder → initiator traffic.
attestation_challenge: [u8; 16]Challenge used for the attestation step on the operational session.
Trait Implementations§
Source§impl Clone for CaseSessionKeys
impl Clone for CaseSessionKeys
Source§fn clone(&self) -> CaseSessionKeys
fn clone(&self) -> CaseSessionKeys
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for CaseSessionKeys
impl Debug for CaseSessionKeys
Source§impl Drop for CaseSessionKeys
impl Drop for CaseSessionKeys
Auto Trait Implementations§
impl Freeze for CaseSessionKeys
impl RefUnwindSafe for CaseSessionKeys
impl Send for CaseSessionKeys
impl Sync for CaseSessionKeys
impl Unpin for CaseSessionKeys
impl UnsafeUnpin for CaseSessionKeys
impl UnwindSafe for CaseSessionKeys
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