Struct SecurityContext

Source
pub struct SecurityContext<'a> { /* private fields */ }
Expand description

Provides a complete security context to handle packets.

To properly handle all security features of a Silkroad Online packet, you may need all three elements: SilkroadEncryption, MessageCounter, and Checksum. However, it is possible for either the SilkroadEncryption to be absent and/or both MessageCounter and Checksum to be absent. Thus, MessageCounter and Checksum are tied together. This struct does not really provide much in and of itself, but it is handy as it might be used in different layers in the stack to refer to.

Implementations§

Source§

impl<'a> SecurityContext<'a>

Source

pub fn new( encryption: Option<&'a SilkroadEncryption>, security_bytes: Option<&'a SecurityBytes>, ) -> SecurityContext<'a>

Source

pub fn encryption(&self) -> Option<&SilkroadEncryption>

Provide the established encryption, if present.

Source

pub fn checkers(&self) -> Option<&SecurityBytes>

Provide the security bytes/checkers, if present.

Trait Implementations§

Source§

impl<'a> Default for SecurityContext<'a>

Source§

fn default() -> SecurityContext<'a>

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for SecurityContext<'a>

§

impl<'a> RefUnwindSafe for SecurityContext<'a>

§

impl<'a> Send for SecurityContext<'a>

§

impl<'a> Sync for SecurityContext<'a>

§

impl<'a> Unpin for SecurityContext<'a>

§

impl<'a> UnwindSafe for SecurityContext<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V