pub struct EapolKeyFrame {
pub descriptor_type: u8,
pub key_info: KeyInfo,
pub key_length: u16,
pub replay_counter: u64,
pub key_nonce: [u8; 32],
pub key_iv: [u8; 16],
pub key_mic: [u8; 16],
pub key_data_length: u16,
pub key_data: Vec<u8>,
}Expand description
EAPOL-Key frame body (within EAPOL frame)
Fields§
§descriptor_type: u8Descriptor type (2 = RSN/WPA2)
key_info: KeyInfoKey information flags
key_length: u16Key length (16 for CCMP)
replay_counter: u64Replay counter (monotonically increasing)
key_nonce: [u8; 32]Key nonce (32 bytes - ANonce from AP, SNonce from STA)
key_iv: [u8; 16]Key IV (16 bytes, typically zero for WPA2)
key_mic: [u8; 16]Key MIC (16 bytes, HMAC over frame)
key_data_length: u16Key data length
key_data: Vec<u8>Key data (encrypted GTK, PMKID, etc.)
Implementations§
Source§impl EapolKeyFrame
impl EapolKeyFrame
Sourcepub const MIN_SIZE: usize = 95usize
pub const MIN_SIZE: usize = 95usize
Minimum key frame body size (without key data): 1 + 2 + 2 + 8 + 32 + 16 + 8(RSC) + 8(reserved) + 16 + 2 = 95 bytes
Sourcepub fn from_bytes(data: &[u8]) -> Option<Self>
pub fn from_bytes(data: &[u8]) -> Option<Self>
Parse EAPOL-Key frame from body bytes (after EAPOL header)
Trait Implementations§
Source§impl Clone for EapolKeyFrame
impl Clone for EapolKeyFrame
Source§fn clone(&self) -> EapolKeyFrame
fn clone(&self) -> EapolKeyFrame
Returns a duplicate of the value. Read more
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for EapolKeyFrame
impl RefUnwindSafe for EapolKeyFrame
impl Send for EapolKeyFrame
impl Sync for EapolKeyFrame
impl Unpin for EapolKeyFrame
impl UnwindSafe for EapolKeyFrame
Blanket Implementations§
§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)