SNMP++  3.3.4
AuthMD5 Class Reference

Authentication module using MD5. More...

#include <auth_priv.h>

Inheritance diagram for AuthMD5:
Collaboration diagram for AuthMD5:

Public Member Functions

int password_to_key (const unsigned char *password, const unsigned int password_len, const unsigned char *engine_id, const unsigned int engine_id_len, unsigned char *key, unsigned int *key_len)
 Generate the localized key for the given password and engine id. More...
 
int hash (const unsigned char *data, const unsigned int data_len, unsigned char *digest) const
 Generate a hash value for the given data. More...
 
int auth_out_msg (const unsigned char *key, unsigned char *msg, const int msg_len, unsigned char *auth_par_ptr)
 Authenticate an outgoing message. More...
 
int auth_inc_msg (const unsigned char *key, unsigned char *msg, const int msg_len, unsigned char *auth_par_ptr, const int auth_par_len)
 Authenticate an incoming message. More...
 
int get_id () const
 Get the unique id of the authentication protocol. More...
 
const char * get_id_string () const
 Get the unique identifier string of the authentication protocol. More...
 
int get_auth_params_len () const
 Get the maximum length that is needed for the msgAuthenticationParameters field. More...
 
int get_hash_len () const
 Get length of a hash output. More...
 
- Public Member Functions inherited from Auth
virtual ~Auth ()
 
virtual void set_salt (pp_uint64 *new_salt)
 Set the pointer to the salt that should be used. More...
 

Additional Inherited Members

- Protected Attributes inherited from Auth
pp_uint64salt
 

Detailed Description

Authentication module using MD5.

See Also
Auth

Definition at line 583 of file auth_priv.h.

Member Function Documentation

int AuthMD5::auth_inc_msg ( const unsigned char *  key,
unsigned char *  msg,
const int  msg_len,
unsigned char *  auth_par_ptr,
const int  auth_par_len 
)
virtual

Authenticate an incoming message.

This method checks if the value in the authentication parameters field of the message is valid.

The following procedure is used to verify the authenitcation value

  • copy the authentication value to a temp buffer
  • zero the auth field
  • recalculate the authenthication value
  • compare the two authentcation values
  • write back the received authentication value if values differ
Parameters
key- pointer to the (fixed length) key
msg- pointer to the whole message
msg_len- the length of the message
auth_par_ptr- pointer to the auth field inside the msg buffer
auth_par_len- Length of the received auth field
Returns
SNMPv3_USM_OK if the msg is valid, SNMPv3_USM_AUTHENTICATION_FAILURE if not and SNMPv3_USM_ERROR for unexpected errors.

Implements Auth.

int AuthMD5::auth_out_msg ( const unsigned char *  key,
unsigned char *  msg,
const int  msg_len,
unsigned char *  auth_par_ptr 
)
virtual

Authenticate an outgoing message.

This method fills the authentication parameters field of the given message. The param auth_par_ptr is pointing inside the message buffer and must be zeroed before the authentication value is computed.

Parameters
key- pointer to the (fixed length) key
msg- pointer to the whole message
msg_len- the length of the message
auth_par_ptr- pointer to the auth field inside the msg buffer
Returns
SNMPv3_USM_OK on success and SNMPv3_USM_ERROR for unexpected errors.

Implements Auth.

int AuthMD5::get_auth_params_len ( ) const
inlinevirtual

Get the maximum length that is needed for the msgAuthenticationParameters field.

Implements Auth.

Definition at line 613 of file auth_priv.h.

int AuthMD5::get_hash_len ( ) const
inlinevirtual

Get length of a hash output.

Implements Auth.

Definition at line 615 of file auth_priv.h.

References SNMPv3_AP_OUTPUT_LENGTH_MD5.

int AuthMD5::get_id ( ) const
inlinevirtual

Get the unique id of the authentication protocol.

Implements Auth.

Definition at line 609 of file auth_priv.h.

References SNMP_AUTHPROTOCOL_HMACMD5.

const char* AuthMD5::get_id_string ( ) const
inlinevirtual

Get the unique identifier string of the authentication protocol.

Implements Auth.

Definition at line 611 of file auth_priv.h.

int AuthMD5::hash ( const unsigned char *  data,
const unsigned int  data_len,
unsigned char *  digest 
) const
virtual

Generate a hash value for the given data.

Parameters
data- the data
data_len- the length of the data
digest- pointer to the generated digest
Returns
SNMPv3_USM_OK on success

Implements Auth.

int AuthMD5::password_to_key ( const unsigned char *  password,
const unsigned int  password_len,
const unsigned char *  engine_id,
const unsigned int  engine_id_len,
unsigned char *  key,
unsigned int *  key_len 
)
virtual

Generate the localized key for the given password and engine id.

Parameters
password- the password
password_len- the length of the password
engine_id- pointer to snmpEngineID
engine_id_len- length of snmpEngineID
key- pointer to an empty buffer that will be filled with generated key
key_len- IN: length of the buffer OUT: length of the key
Returns
SNMPv3_USM_OK on success

Implements Auth.


The documentation for this class was generated from the following file: