SNMP++  3.3.11
AuthSHABase Class Referenceabstract

Base class for SHA authentication modules. More...

#include <auth_priv.h>

Inheritance diagram for AuthSHABase:
Collaboration diagram for AuthSHABase:

Classes

class  Hasher
 

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...
 
- Public Member Functions inherited from Auth
virtual ~Auth ()
 
virtual int get_id () const =0
 Get the unique id of the authentication protocol. More...
 
virtual const char * get_id_string () const =0
 Get the unique identifier string of the authentication protocol. More...
 
virtual void set_salt (pp_uint64 *new_salt)
 Set the pointer to the salt that should be used. More...
 
virtual int get_auth_params_len () const =0
 Get the maximum length that is needed for the msgAuthenticationParameters field. More...
 
virtual int get_hash_len () const =0
 Get length of a hash output. More...
 

Protected Member Functions

virtual Hasherget_hasher () const =0
 

Additional Inherited Members

- Protected Attributes inherited from Auth
pp_uint64salt
 

Detailed Description

Base class for SHA authentication modules.

Provides support for usmHMACSHAAuthProtocol, usmHMAC128SHA224AuthProtocol, usmHMAC192SHA256AuthProtocol, usmHMAC256SHA384AuthProtocol and usmHMAC384SHA512AuthProtocol.

See also
Auth

Definition at line 870 of file auth_priv.h.

Member Function Documentation

◆ auth_inc_msg()

int AuthSHABase::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.

◆ auth_out_msg()

int AuthSHABase::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.

◆ get_hasher()

virtual Hasher* AuthSHABase::get_hasher ( ) const
protectedpure virtual

◆ hash()

int AuthSHABase::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.

◆ password_to_key()

int AuthSHABase::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: