pub struct AuthKey<'a, D> { /* private fields */ }Expand description
Authentication key used to check data integrity and data origin.
It is constructed from a Localizedkey and parameterized to use various authentication protocols.
Implementations§
Source§impl<'a, D: 'a> AuthKey<'a, D>
impl<'a, D: 'a> AuthKey<'a, D>
Sourcepub fn new(localized_key: LocalizedKey<'a, D>) -> Self
pub fn new(localized_key: LocalizedKey<'a, D>) -> Self
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);Source§impl<'a, D> AuthKey<'a, D>where
D: Digest + 'a,
impl<'a, D> AuthKey<'a, D>where
D: Digest + 'a,
Sourcepub fn auth_in_msg(
&self,
msg: &mut [u8],
local_engine_id: &[u8],
local_engine_boots: u32,
local_engine_time: u32,
) -> SecurityResult<()>
pub fn auth_in_msg( &self, msg: &mut [u8], local_engine_id: &[u8], local_engine_boots: u32, local_engine_time: u32, ) -> SecurityResult<()>
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 authenticatelocal_engine_id- The authoritative engine IDlocal_engine_boots- The local notion of the authoritative engine bootslocal_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);Sourcepub fn auth_out_msg(&self, msg: &mut [u8]) -> SecurityResult<()>
pub fn auth_out_msg(&self, msg: &mut [u8]) -> SecurityResult<()>
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)?;