SNMP++  3.3.4
Priv Class Referenceabstract

Abstract class for priv modules. More...

#include <auth_priv.h>

Inheritance diagram for Priv:

Public Member Functions

virtual ~Priv ()
 
virtual int encrypt (const unsigned char *key, const unsigned int key_len, const unsigned char *buffer, const unsigned int buffer_len, unsigned char *out_buffer, unsigned int *out_buffer_len, unsigned char *privacy_params, unsigned int *privacy_params_len, const unsigned long engine_boots, const unsigned long engine_time)=0
 Encrypt the buffer with the given key. More...
 
virtual int decrypt (const unsigned char *key, const unsigned int key_len, const unsigned char *buffer, const unsigned int buffer_len, unsigned char *out_buffer, unsigned int *out_buffer_len, const unsigned char *privacy_params, const unsigned int privacy_params_len, const unsigned long engine_boots, const unsigned long engine_time)=0
 Decrypt the buffer with the given key. More...
 
virtual int extend_short_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, const unsigned int max_key_len, Auth *auth)=0
 Extend a localized key that is too short. More...
 
virtual int get_id () const =0
 Get the uniqhe id of the privacy protocol. More...
 
virtual const char * get_id_string () const =0
 Get the unique identifier string of the privacy protocol. More...
 
virtual void set_salt (pp_uint64 *new_salt)
 Set the pointer to the salt that should be used. More...
 
virtual int get_priv_params_len () const =0
 Get the maximum length that is needed for the msgPrivacyParameters field. More...
 
virtual int get_min_key_len () const =0
 Get the minimum key length needed for encryption and decryption. More...
 
virtual void fix_key_len (unsigned int &key_len) const =0
 Decrease a too long length to the right value. More...
 

Protected Attributes

pp_uint64salt
 

Detailed Description

Abstract class for priv modules.

This class has to be subclassed to add new privacy protocols.

Definition at line 191 of file auth_priv.h.

Constructor & Destructor Documentation

virtual Priv::~Priv ( )
inlinevirtual

Definition at line 194 of file auth_priv.h.

Member Function Documentation

virtual int Priv::decrypt ( const unsigned char *  key,
const unsigned int  key_len,
const unsigned char *  buffer,
const unsigned int  buffer_len,
unsigned char *  out_buffer,
unsigned int *  out_buffer_len,
const unsigned char *  privacy_params,
const unsigned int  privacy_params_len,
const unsigned long  engine_boots,
const unsigned long  engine_time 
)
pure virtual

Decrypt the buffer with the given key.

This method needs the privacy parameters field for the given message.

Parameters
key- pointer to the (fixed length) dencryption key
key_len- length of encryption key
buffer- pointer to the encrypted buffer
buffer_len- length of the buffer
out_buffer- pointer to the buffer for the decryptet data
out_buffer_len- Input: Length of the output buffer. Output: Bytes written
privacy_params- Buffer, where the privacy parameters are read from.
privacy_params_len- Length of the privacy parameters buffer
engine_boots- The engine boots value for the message
engine_time- The engine time value for the message
Returns
SNMPv3_USM_OK on success

Implemented in PrivDES.

virtual int Priv::encrypt ( const unsigned char *  key,
const unsigned int  key_len,
const unsigned char *  buffer,
const unsigned int  buffer_len,
unsigned char *  out_buffer,
unsigned int *  out_buffer_len,
unsigned char *  privacy_params,
unsigned int *  privacy_params_len,
const unsigned long  engine_boots,
const unsigned long  engine_time 
)
pure virtual

Encrypt the buffer with the given key.

This method fills the privacy parameters field of the given message.

Parameters
key- pointer to the encryption key
key_len- length of encryption key
buffer- pointer to the unencrypted buffer
buffer_len- length of the buffer
out_buffer- pointer to the buffer for the encryptet data
out_buffer_len- Input: Length of the output buffer. Output: Bytes written
privacy_params- Buffer, where the privacy parameters are written to.
privacy_params_len- Length of the privacy parameters buffer
engine_boots- The engine boots value for the message
engine_time- The engine time value for the message
Returns
SNMPv3_USM_OK on success

Implemented in PrivDES.

virtual int Priv::extend_short_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,
const unsigned int  max_key_len,
Auth auth 
)
pure virtual

Extend a localized key that is too short.

Some privacy protocols require a key that is longer than the key generated by the pasword to key algorithm of the authentication protocol. This function extends a short key to the required length.

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 the short key that was generated using Auth::password_to_key() function
key_len- IN: length of the short key OUT: length of the extended key
max_key_len- Length of the key buffer
auth- Pointer of the authentication protocol that should be used
Returns
SNMPv3_USM_OK on success

Implemented in PrivDES.

virtual void Priv::fix_key_len ( unsigned int &  key_len) const
pure virtual

Decrease a too long length to the right value.

Implemented in PrivDES.

virtual int Priv::get_id ( ) const
pure virtual

Get the uniqhe id of the privacy protocol.

Implemented in PrivDES.

virtual const char* Priv::get_id_string ( ) const
pure virtual

Get the unique identifier string of the privacy protocol.

Implemented in PrivDES.

virtual int Priv::get_min_key_len ( ) const
pure virtual

Get the minimum key length needed for encryption and decryption.

Implemented in PrivDES.

virtual int Priv::get_priv_params_len ( ) const
pure virtual

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

Implemented in PrivDES.

virtual void Priv::set_salt ( pp_uint64 new_salt)
inlinevirtual

Set the pointer to the salt that should be used.

Definition at line 305 of file auth_priv.h.

Member Data Documentation

pp_uint64* Priv::salt
protected

Definition at line 324 of file auth_priv.h.


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