[][src]Struct snmp_usm::AuthKey

pub struct AuthKey<'a, D> { /* fields omitted */ }

Authentication key used to check data integrity and data origin.

It is constructed from a Localizedkey and parameterized to use various authentication protocols.

Implementations

impl<'a, D: 'a> AuthKey<'a, D>[src]

pub fn new(localized_key: LocalizedKey<'a, D>) -> Self[src]

Constructs a new AuthKey using a localized key.

Examples

use snmp_usm::{AuthKey, LocalizedSha1Key};

let localized_key = LocalizedSha1Key::new(passwd, engine_id);
let auth_key = AuthKey::new(localized_key);

impl<'a, D: 'a> AuthKey<'a, D> where
    D: Digest
[src]

pub fn auth_in_msg(
    &self,
    msg: &mut [u8],
    local_engine_id: &[u8],
    local_engine_boots: u32,
    local_engine_time: u32
) -> SecurityResult<()>
[src]

Authenticates an incoming SNMP message.

The timeliness check is always preformed when authentication is requested. If the authentication and the timeliness validation succeed, a security subsystem would update its local notion of engine boots, engine time and latest received engine time for the corresponding SNMP engine ID.

Arguments

  • msg - The SNMP message to authenticate
  • local_engine_id - The authoritative engine ID
  • local_engine_boots - The local notion of the authoritative engine boots
  • local_engine_time - The local notion of the authoritative engine time

Errors

If the message is not properly formed a result with MalformedMsg error is returned.

A MalformedSecurityParams error result is returned if the security parameters are not properly formed.

If the message could not be authenticated because the authentication parameters don't match the digest, a result with WrongAuthParams error is returned.

If the timeliness validation fails a result with NotInTimeWindow is returned. Timeliness validation will fail if local_engine_boots or local_engine_time is less than 0.

Examples

use snmp_usm::{LocalizedKey, Sha1AuthKey};

let localized_key = LocalizedKey::new(b"password", b"engine_id");
let key = Sha1AuthKey::new(localized_key);
key.auth_in_msg(&mut in_msg, &engine_id, engine_boots, engine_time);

pub fn auth_out_msg(&self, msg: &mut [u8]) -> SecurityResult<()>[src]

Authenticates an outgoing SNMP message.

Errors

If the message is not properly formed a result with MalformedMsg error is returned.

If the security parameters are not properly formed a result with MalformedSecurityParams error is returned.

Examples

use snmp_usm::{LocalizedKey, Sha1AuthKey};

let localized_key = LocalizedKey::new(b"password", b"engine_id");
let key = Sha1AuthKey::new(localized_key);
key.auth_out_msg(&mut out_msg)?;

Trait Implementations

impl<'a, D: Clone> Clone for AuthKey<'a, D>[src]

impl<'a, D: Debug> Debug for AuthKey<'a, D>[src]

impl<'a, D: Eq> Eq for AuthKey<'a, D>[src]

impl<'a, D: Hash> Hash for AuthKey<'a, D>[src]

impl<'a, D: PartialEq> PartialEq<AuthKey<'a, D>> for AuthKey<'a, D>[src]

impl<'a, D> StructuralEq for AuthKey<'a, D>[src]

impl<'a, D> StructuralPartialEq for AuthKey<'a, D>[src]

Auto Trait Implementations

impl<'a, D> RefUnwindSafe for AuthKey<'a, D> where
    D: RefUnwindSafe

impl<'a, D> Send for AuthKey<'a, D> where
    D: Sync

impl<'a, D> Sync for AuthKey<'a, D> where
    D: Sync

impl<'a, D> Unpin for AuthKey<'a, D>

impl<'a, D> UnwindSafe for AuthKey<'a, D> where
    D: RefUnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.