pub struct CryptoFrame {
pub session_id: [u8; 16],
pub packet_id: u32,
pub chunk_index: u16,
pub total_chunks: u16,
pub payload: Vec<u8>,
}Available on crate feature
std only.Expand description
A single chunk of a fragmented logical packet.
(session_id, packet_id) is the reassembly key. It is an opaque demux key, not a
security boundary: a chunk’s authenticity is established later by the inner AEAD, not
here. In the production PhantomUDP path the assembler is fed session_id =
the rotating 8-byte outer ConnId zero-extended to 16 bytes (see phantom_udp::datagram),
which is cleartext and guessable — hence the insert-if-absent (M-7) and anti-DoS bounds
in FragmentAssembler::process_chunk.
Fields§
§session_id: [u8; 16]§packet_id: u32§chunk_index: u16§total_chunks: u16§payload: Vec<u8>Trait Implementations§
Source§impl BorshDeserialize for CryptoFrame
impl BorshDeserialize for CryptoFrame
fn deserialize_reader<__R: Read>(reader: &mut __R) -> Result<Self, Error>
Source§fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
Deserializes this instance from a given slice of bytes.
Updates the buffer to point at the remaining bytes.
Source§fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_slice(v: &[u8]) -> Result<Self, Error>
Deserialize this instance from a slice of bytes.
fn try_from_reader<R>(reader: &mut R) -> Result<Self, Error>where
R: Read,
Source§impl BorshSerialize for CryptoFrame
impl BorshSerialize for CryptoFrame
Source§impl Clone for CryptoFrame
impl Clone for CryptoFrame
Source§fn clone(&self) -> CryptoFrame
fn clone(&self) -> CryptoFrame
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 moreAuto Trait Implementations§
impl Freeze for CryptoFrame
impl RefUnwindSafe for CryptoFrame
impl Send for CryptoFrame
impl Sync for CryptoFrame
impl Unpin for CryptoFrame
impl UnsafeUnpin for CryptoFrame
impl UnwindSafe for CryptoFrame
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