pub enum Wpa<C = ()>
where C: CredentialData,
{ Wpa1 { credentials: <C::Personal as PersonalData>::Wpa1, }, Wpa2 { cipher: Option<Wpa2Cipher>, authentication: Authentication<<C::Personal as PersonalData>::Wpa2, <C::Enterprise as EnterpriseData>::Wpa2>, }, Wpa3 { cipher: Option<Wpa3Cipher>, authentication: Authentication<<C::Personal as PersonalData>::Wpa3, <C::Enterprise as EnterpriseData>::Wpa3>, }, }
Expand description

General description of WPA and its authentication.

This type is typically used via the WpaAuthenticator and WpaDescriptor type definitions, which represent WPA authenticators and descriptors, respectively. It is not generally necessary to interact with this type directly.

This type constructor describes the configuration of a WPA security protocol and additionally contains authentication (credential) data defined by its type parameter. For authenticators, this data represents credentials, such as a PSK or passphrase. For descriptors, this data is the unit type (), and so no authentication data is available. See the data module and CredentialData trait for more.

Variants§

§

Wpa1

Fields

§credentials: <C::Personal as PersonalData>::Wpa1
§

Wpa2

Fields

§authentication: Authentication<<C::Personal as PersonalData>::Wpa2, <C::Enterprise as EnterpriseData>::Wpa2>
§

Wpa3

Fields

§authentication: Authentication<<C::Personal as PersonalData>::Wpa3, <C::Enterprise as EnterpriseData>::Wpa3>

Implementations§

source§

impl<C> Wpa<C>
where C: CredentialData,

source

pub fn into_descriptor(self) -> Wpa<()>

Converts a Wpa into a descriptor with no payload (the unit type ()). Any payload (i.e., credentials) are dropped.

source

pub fn cipher(&self) -> Option<Cipher>

Gets the configured cipher.

This function coalesces the ciphers supported by various versions of WPA and returns the generalized Cipher type.

Note that WPA1 is not configurable in this way and always uses TKIP (and so this function will always return Some(Cipher::TKIP) for WPA1). For other versions of WPA, the configured cipher may not be known and this function returns None in that case. Importantly, this does not mean that no cipher is used, but rather that the specific cipher is unspecified or unknown.

source§

impl Wpa

source§

impl Wpa<AuthenticatorData>

source

pub fn into_credentials(self) -> Credentials

Converts a WPA authenticator into its credentials.

The output of this function is general and describes all versions of WPA. This means it cannot be used to determine which version of WPA has been specified. Note that WPA1 specifies its credentials as WPA1 Personal via Authentication::Personal even though WPA1 has no Enterprise suite.

source

pub fn to_credentials(&self) -> Credentials

Trait Implementations§

source§

impl<C> Clone for Wpa<C>
where C: CredentialData,

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<C> Debug for Wpa<C>
where C: CredentialData,

source§

fn fmt(&self, __f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<Wpa<AuthenticatorData>> for SecurityAuthenticator

source§

fn from(authenticator: WpaAuthenticator) -> Self

Converts to this type from the input type.
source§

impl<C> From<Wpa<C>> for Protocol
where C: CredentialData,

source§

fn from(wpa: Wpa<C>) -> Self

Converts to this type from the input type.
source§

impl From<Wpa> for SecurityDescriptor

source§

fn from(descriptor: WpaDescriptor) -> Self

Converts to this type from the input type.
source§

impl<C> PartialEq for Wpa<C>
where C: CredentialData,

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<C> Copy for Wpa<C>
where C: CredentialData, <C::Personal as PersonalData>::Wpa1: Copy, <C::Personal as PersonalData>::Wpa2: Copy, <C::Personal as PersonalData>::Wpa3: Copy, <C::Enterprise as EnterpriseData>::Wpa2: Copy, <C::Enterprise as EnterpriseData>::Wpa3: Copy,

source§

impl<C> Eq for Wpa<C>
where C: CredentialData,

Auto Trait Implementations§

§

impl<C> Freeze for Wpa<C>
where <<C as CredentialData>::Personal as PersonalData>::Wpa1: Freeze, <<C as CredentialData>::Personal as PersonalData>::Wpa2: Freeze, <<C as CredentialData>::Enterprise as EnterpriseData>::Wpa2: Freeze, <<C as CredentialData>::Personal as PersonalData>::Wpa3: Freeze, <<C as CredentialData>::Enterprise as EnterpriseData>::Wpa3: Freeze,

§

impl<C> RefUnwindSafe for Wpa<C>
where <<C as CredentialData>::Personal as PersonalData>::Wpa1: RefUnwindSafe, <<C as CredentialData>::Personal as PersonalData>::Wpa2: RefUnwindSafe, <<C as CredentialData>::Enterprise as EnterpriseData>::Wpa2: RefUnwindSafe, <<C as CredentialData>::Personal as PersonalData>::Wpa3: RefUnwindSafe, <<C as CredentialData>::Enterprise as EnterpriseData>::Wpa3: RefUnwindSafe,

§

impl<C> Send for Wpa<C>
where <<C as CredentialData>::Personal as PersonalData>::Wpa1: Send, <<C as CredentialData>::Personal as PersonalData>::Wpa2: Send, <<C as CredentialData>::Enterprise as EnterpriseData>::Wpa2: Send, <<C as CredentialData>::Personal as PersonalData>::Wpa3: Send, <<C as CredentialData>::Enterprise as EnterpriseData>::Wpa3: Send,

§

impl<C> Sync for Wpa<C>
where <<C as CredentialData>::Personal as PersonalData>::Wpa1: Sync, <<C as CredentialData>::Personal as PersonalData>::Wpa2: Sync, <<C as CredentialData>::Enterprise as EnterpriseData>::Wpa2: Sync, <<C as CredentialData>::Personal as PersonalData>::Wpa3: Sync, <<C as CredentialData>::Enterprise as EnterpriseData>::Wpa3: Sync,

§

impl<C> Unpin for Wpa<C>
where <<C as CredentialData>::Personal as PersonalData>::Wpa1: Unpin, <<C as CredentialData>::Personal as PersonalData>::Wpa2: Unpin, <<C as CredentialData>::Enterprise as EnterpriseData>::Wpa2: Unpin, <<C as CredentialData>::Personal as PersonalData>::Wpa3: Unpin, <<C as CredentialData>::Enterprise as EnterpriseData>::Wpa3: Unpin,

§

impl<C> UnwindSafe for Wpa<C>
where <<C as CredentialData>::Personal as PersonalData>::Wpa1: UnwindSafe, <<C as CredentialData>::Personal as PersonalData>::Wpa2: UnwindSafe, <<C as CredentialData>::Enterprise as EnterpriseData>::Wpa2: UnwindSafe, <<C as CredentialData>::Personal as PersonalData>::Wpa3: UnwindSafe, <<C as CredentialData>::Enterprise as EnterpriseData>::Wpa3: UnwindSafe,

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
§

impl<T> Encode<Ambiguous1> for T

§

unsafe fn encode( self, _encoder: &mut Encoder<'_>, _offset: usize, _depth: Depth ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
§

impl<T> Encode<Ambiguous2> for T

§

unsafe fn encode( self, _encoder: &mut Encoder<'_>, _offset: usize, _depth: Depth ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> OptionalField for T
where T: ?Sized,

source§

const PRESENT: Presence<Self> = _

source§

const ABSENT: Presence<Self> = _

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

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

§

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>,

§

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.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more