pub struct EncryptedHeader {
pub signature: u128,
pub nonce: EncryptionNonce,
pub original_message_size: u32,
pub session_id: u64,
}Expand description
This header is used by the client or server when sending encrypted messages
Fields§
§signature: u128The 16-byte signature of the message generated using negotiated encryption algorithm
nonce: EncryptionNonceAn implementation-specific value assigned for every encrypted message. This MUST NOT be reused for all encrypted messages within a session.
original_message_size: u32The size, in bytes, of the SMB2 message.
session_id: u64Uniquely identifies the established session for the command.
Implementations§
Source§impl EncryptedHeader
impl EncryptedHeader
pub const STRUCTURE_SIZE: usize = 52usize
Sourcepub fn aead_bytes(&self) -> [u8; 32]
pub fn aead_bytes(&self) -> [u8; 32]
The bytes to use as the additional data for the AEAD out of this header. Make sure to call it after all fields (except signature) are finalized.
Returns (according to MS-SMB2) the bytes of the header, excluding the magic and the signature.
Trait Implementations§
Source§impl BinRead for EncryptedHeader
impl BinRead for EncryptedHeader
Source§fn read_options<R: Read + Seek>(
__binrw_generated_var_reader: &mut R,
__binrw_generated_var_endian: Endian,
__binrw_generated_var_arguments: Self::Args<'_>,
) -> BinResult<Self>
fn read_options<R: Read + Seek>( __binrw_generated_var_reader: &mut R, __binrw_generated_var_endian: Endian, __binrw_generated_var_arguments: Self::Args<'_>, ) -> BinResult<Self>
Source§fn read<R>(reader: &mut R) -> Result<Self, Error>
fn read<R>(reader: &mut R) -> Result<Self, Error>
Read
Self from the reader using default arguments. Read moreSource§fn read_be<R>(reader: &mut R) -> Result<Self, Error>
fn read_be<R>(reader: &mut R) -> Result<Self, Error>
Read
Self from the reader using default arguments and assuming
big-endian byte order. Read moreSource§fn read_le<R>(reader: &mut R) -> Result<Self, Error>
fn read_le<R>(reader: &mut R) -> Result<Self, Error>
Read
Self from the reader using default arguments and assuming
little-endian byte order. Read moreSource§fn read_ne<R>(reader: &mut R) -> Result<Self, Error>
fn read_ne<R>(reader: &mut R) -> Result<Self, Error>
Read
T from the reader assuming native-endian byte order. Read moreSource§fn read_args<R>(reader: &mut R, args: Self::Args<'_>) -> Result<Self, Error>
fn read_args<R>(reader: &mut R, args: Self::Args<'_>) -> Result<Self, Error>
Read
Self from the reader using the given arguments. Read moreSource§fn read_be_args<R>(reader: &mut R, args: Self::Args<'_>) -> Result<Self, Error>
fn read_be_args<R>(reader: &mut R, args: Self::Args<'_>) -> Result<Self, Error>
Read
Self from the reader, assuming big-endian byte order, using the
given arguments. Read moreSource§impl BinWrite for EncryptedHeader
impl BinWrite for EncryptedHeader
Source§fn write_options<W: Write + Seek>(
&self,
__binrw_generated_var_writer: &mut W,
__binrw_generated_var_endian: Endian,
__binrw_generated_var_arguments: Self::Args<'_>,
) -> BinResult<()>
fn write_options<W: Write + Seek>( &self, __binrw_generated_var_writer: &mut W, __binrw_generated_var_endian: Endian, __binrw_generated_var_arguments: Self::Args<'_>, ) -> BinResult<()>
Source§fn write<W>(&self, writer: &mut W) -> Result<(), Error>
fn write<W>(&self, writer: &mut W) -> Result<(), Error>
Write
Self to the writer using default arguments. Read moreSource§fn write_be<W>(&self, writer: &mut W) -> Result<(), Error>
fn write_be<W>(&self, writer: &mut W) -> Result<(), Error>
Write
Self to the writer assuming big-endian byte order. Read moreSource§fn write_le<W>(&self, writer: &mut W) -> Result<(), Error>
fn write_le<W>(&self, writer: &mut W) -> Result<(), Error>
Write
Self to the writer assuming little-endian byte order. Read moreSource§fn write_ne<W>(&self, writer: &mut W) -> Result<(), Error>
fn write_ne<W>(&self, writer: &mut W) -> Result<(), Error>
Write
Self to the writer assuming native-endian byte order. Read moreSource§fn write_args<W>(
&self,
writer: &mut W,
args: Self::Args<'_>,
) -> Result<(), Error>
fn write_args<W>( &self, writer: &mut W, args: Self::Args<'_>, ) -> Result<(), Error>
Write
Self to the writer using the given arguments. Read moreSource§fn write_be_args<W>(
&self,
writer: &mut W,
args: Self::Args<'_>,
) -> Result<(), Error>
fn write_be_args<W>( &self, writer: &mut W, args: Self::Args<'_>, ) -> Result<(), Error>
Write
Self to the writer, assuming big-endian byte order, using the
given arguments. Read moreSource§impl Debug for EncryptedHeader
impl Debug for EncryptedHeader
Source§impl PartialEq for EncryptedHeader
impl PartialEq for EncryptedHeader
Source§impl ReadEndian for EncryptedHeader
impl ReadEndian for EncryptedHeader
Source§const ENDIAN: EndianKind
const ENDIAN: EndianKind
The endianness of the type.
Source§impl ReadMagic for EncryptedHeader
impl ReadMagic for EncryptedHeader
Source§impl WriteEndian for EncryptedHeader
impl WriteEndian for EncryptedHeader
Source§const ENDIAN: EndianKind
const ENDIAN: EndianKind
The endianness of the type.
Source§impl WriteMagic for EncryptedHeader
impl WriteMagic for EncryptedHeader
impl Eq for EncryptedHeader
impl StructuralPartialEq for EncryptedHeader
Auto Trait Implementations§
impl Freeze for EncryptedHeader
impl RefUnwindSafe for EncryptedHeader
impl Send for EncryptedHeader
impl Sync for EncryptedHeader
impl Unpin for EncryptedHeader
impl UnwindSafe for EncryptedHeader
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