SNMP++  3.3.4
usm_v3.h File Reference
#include "snmp_pp/config_snmp_pp.h"
#include "snmp_pp/smi.h"
#include "snmp_pp/octet.h"
#include "snmp_pp/address.h"

Go to the source code of this file.

Classes

struct  UsmUserTableEntry
 
struct  UsmUser
 
struct  UsmUserNameTableEntry
 
class  USM
 This is the class for the User Based Security Model. More...
 

Macros

#define MAXUINT32   4294967295u
 
#define MAXLEN_USMUSERNAME   32
 
#define MAXLEN_USMSECURITYNAME   MAXLEN_USMUSERNAME
 
#define SNMPv3_AUTHFLAG   0x01
 
#define SNMPv3_PRIVFLAG   0x02
 
#define SNMPv3_REPORTABLEFLAG   0x04
 
#define NOKEY   0
 
#define AUTHKEY   1
 
#define PRIVKEY   2
 
#define OWNAUTHKEY   3
 
#define OWNPRIVKEY   4
 
#define oidUsmStats   "1.3.6.1.6.3.15.1.1"
 
#define oidUsmStatsUnsupportedSecLevels   "1.3.6.1.6.3.15.1.1.1.0"
 
#define oidUsmStatsNotInTimeWindows   "1.3.6.1.6.3.15.1.1.2.0"
 
#define oidUsmStatsUnknownUserNames   "1.3.6.1.6.3.15.1.1.3.0"
 
#define oidUsmStatsUnknownEngineIDs   "1.3.6.1.6.3.15.1.1.4.0"
 
#define oidUsmStatsWrongDigests   "1.3.6.1.6.3.15.1.1.5.0"
 
#define oidUsmStatsDecryptionErrors   "1.3.6.1.6.3.15.1.1.6.0"
 
#define oidUsmUserTable   "1.3.6.1.6.3.15.1.2.2"
 
#define oidUsmUserEntry   "1.3.6.1.6.3.15.1.2.2.1"
 
#define oidUsmAuthProtocolBase   "1.3.6.1.6.3.10.1.1"
 
#define oidUsmNoAuthProtocol   "1.3.6.1.6.3.10.1.1.1"
 
#define oidUsmHMACMD5AuthProtocol   "1.3.6.1.6.3.10.1.1.2"
 
#define oidUsmHMACSHAAuthProtocol   "1.3.6.1.6.3.10.1.1.3"
 
#define oidUsmPrivProtocolBase   "1.3.6.1.6.3.10.1.2"
 
#define oidUsmNoPrivProtocol   "1.3.6.1.6.3.10.1.2.1"
 
#define oidUsmDESPrivProtocol   "1.3.6.1.6.3.10.1.2.2"
 
#define oidUsmIDEAPrivProtocol   "1.3.6.1.6.3.10.1.2.9"
 
#define oidUsmAES128PrivProtocol   "1.3.6.1.6.3.10.1.2.4"
 
#define oidUsmAES192PrivProtocol   "1.3.6.1.6.3.10.1.2.20"
 
#define oidUsmAES256PrivProtocol   "1.3.6.1.6.3.10.1.2.21"
 
#define oidUsm3DESEDEPrivProtocol   "1.3.6.1.6.3.10.1.2.3"
 
#define USM_KeyUpdate   1
 
#define USM_PasswordUpdate   2
 
#define USM_PasswordKeyUpdate   3
 
#define USM_PasswordAllKeyUpdate   4
 
#define SecurityLevel_noAuthNoPriv   SNMP_SECURITY_LEVEL_NOAUTH_NOPRIV
 
#define SecurityLevel_authNoPriv   SNMP_SECURITY_LEVEL_AUTH_NOPRIV
 
#define SecurityLevel_authPriv   SNMP_SECURITY_LEVEL_AUTH_PRIV
 
#define SNMPv3_usmNoAuthProtocol   SNMP_AUTHPROTOCOL_NONE
 
#define SNMPv3_usmHMACMD5AuthProtocol   SNMP_AUTHPROTOCOL_HMACMD5
 
#define SNMPv3_usmHMACSHAAuthProtocol   SNMP_AUTHPROTOCOL_HMACSHA
 
#define SNMPv3_usmNoPrivProtocol   SNMP_PRIVPROTOCOL_NONE
 
#define SNMPv3_usmDESPrivProtocol   SNMP_PRIVPROTOCOL_DES
 
#define SNMPv3_usmIDEAPrivProtocol   SNMP_PRIVPROTOCOL_IDEA
 
#define SNMPv3_usmAES128PrivProtocol   SNMP_PRIVPROTOCOL_AES128
 
#define SNMPv3_usmAES192PrivProtocol   SNMP_PRIVPROTOCOL_AES192
 
#define SNMPv3_usmAES256PrivProtocol   SNMP_PRIVPROTOCOL_AES256
 
SecurityLevels

When sending a SNMPv3 message, one of these security levels can be set on the Pdu object.

#define SNMP_SECURITY_LEVEL_NOAUTH_NOPRIV   1
 noAuthNoPriv More...
 
#define SNMP_SECURITY_LEVEL_AUTH_NOPRIV   2
 authNoPriv More...
 
#define SNMP_SECURITY_LEVEL_AUTH_PRIV   3
 authPriv More...
 
AuthProtocols

Each user of the USM must use one authentication protocol (which may be none.

#define SNMP_AUTHPROTOCOL_NONE   1
 None. More...
 
#define SNMP_AUTHPROTOCOL_HMACMD5   2
 HMAC-MD5. More...
 
#define SNMP_AUTHPROTOCOL_HMACSHA   3
 HMAC-SHA. More...
 
PrivProtocols

Each user of the USM must use one privacy protocol (which may be none.

#define SNMP_PRIVPROTOCOL_NONE   1
 None. More...
 
#define SNMP_PRIVPROTOCOL_DES   2
 DES. More...
 
#define SNMP_PRIVPROTOCOL_AES128   4
 AES128 (RFC 3826) More...
 
#define SNMP_PRIVPROTOCOL_IDEA   9
 IDEA (non standard) More...
 
#define SNMP_PRIVPROTOCOL_AES192   20
 AES192 (non standard) More...
 
#define SNMP_PRIVPROTOCOL_AES256   21
 AES256 (non standard) More...
 
#define SNMP_PRIVPROTOCOL_3DESEDE   3
 3DES (expired draft standard) More...
 
USM-ErrorCodes

Each method of the class USM may return one of the following error codes.

#define SNMPv3_USM_OK   1400
 
#define SNMPv3_USM_ERROR   1401
 
#define SNMPv3_USM_ERROR_CONFIGFILE   1402
 
#define SNMPv3_USM_UNSUPPORTED_SECURITY_LEVEL   1403
 
#define SNMPv3_USM_UNKNOWN_SECURITY_NAME   1404
 
#define SNMPv3_USM_ENCRYPTION_ERROR   1405
 
#define SNMPv3_USM_DECRYPTION_ERROR   1406
 
#define SNMPv3_USM_AUTHENTICATION_ERROR   1407
 
#define SNMPv3_USM_AUTHENTICATION_FAILURE   1408
 
#define SNMPv3_USM_PARSE_ERROR   1409
 
#define SNMPv3_USM_UNKNOWN_ENGINEID   1410
 
#define SNMPv3_USM_NOT_IN_TIME_WINDOW   1411
 
#define SNMPv3_USM_UNSUPPORTED_AUTHPROTOCOL   1412
 
#define SNMPv3_USM_UNSUPPORTED_PRIVPROTOCOL   1413
 
#define SNMPv3_USM_ADDRESS_ERROR   1414
 
#define SNMPv3_USM_FILECREATE_ERROR   1415
 
#define SNMPv3_USM_FILEOPEN_ERROR   1416
 
#define SNMPv3_USM_FILERENAME_ERROR   1417
 
#define SNMPv3_USM_FILEDELETE_ERROR   1418
 
#define SNMPv3_USM_FILEWRITE_ERROR   1419
 
#define SNMPv3_USM_FILEREAD_ERROR   1420
 
Statistics on error codes.
#define SNMPv3_USM_MAX_ERROR   SNMPv3_USM_FILEREAD_ERROR
 
#define SNMPv3_USM_MIN_ERROR   SNMPv3_USM_OK
 
#define SNMPv3_USM_ERRORCOUNT   SNMPv3_USM_MAX_ERROR - SNMPv3_USM_MIN_ERROR
 

Typedefs

typedef void(* usm_add_user_callback )(const OctetStr &engine_id, const OctetStr &usm_user_name, const OctetStr &usm_user_security_name, const int auth_protocol, const OctetStr &auth_key, const int priv_protocol, const OctetStr &priv_key)
 

Macro Definition Documentation

#define AUTHKEY   1

Definition at line 57 of file usm_v3.h.

#define MAXLEN_USMSECURITYNAME   MAXLEN_USMUSERNAME

Definition at line 50 of file usm_v3.h.

#define MAXLEN_USMUSERNAME   32

Definition at line 49 of file usm_v3.h.

#define MAXUINT32   4294967295u

Definition at line 45 of file usm_v3.h.

#define NOKEY   0

Definition at line 56 of file usm_v3.h.

#define oidUsm3DESEDEPrivProtocol   "1.3.6.1.6.3.10.1.2.3"

Definition at line 159 of file usm_v3.h.

#define oidUsmAES128PrivProtocol   "1.3.6.1.6.3.10.1.2.4"

Definition at line 156 of file usm_v3.h.

#define oidUsmAES192PrivProtocol   "1.3.6.1.6.3.10.1.2.20"

Definition at line 157 of file usm_v3.h.

#define oidUsmAES256PrivProtocol   "1.3.6.1.6.3.10.1.2.21"

Definition at line 158 of file usm_v3.h.

#define oidUsmAuthProtocolBase   "1.3.6.1.6.3.10.1.1"

Definition at line 147 of file usm_v3.h.

#define oidUsmDESPrivProtocol   "1.3.6.1.6.3.10.1.2.2"

Definition at line 154 of file usm_v3.h.

#define oidUsmHMACMD5AuthProtocol   "1.3.6.1.6.3.10.1.1.2"

Definition at line 149 of file usm_v3.h.

#define oidUsmHMACSHAAuthProtocol   "1.3.6.1.6.3.10.1.1.3"

Definition at line 150 of file usm_v3.h.

#define oidUsmIDEAPrivProtocol   "1.3.6.1.6.3.10.1.2.9"

Definition at line 155 of file usm_v3.h.

#define oidUsmNoAuthProtocol   "1.3.6.1.6.3.10.1.1.1"

Definition at line 148 of file usm_v3.h.

#define oidUsmNoPrivProtocol   "1.3.6.1.6.3.10.1.2.1"

Definition at line 153 of file usm_v3.h.

#define oidUsmPrivProtocolBase   "1.3.6.1.6.3.10.1.2"

Definition at line 152 of file usm_v3.h.

#define oidUsmStats   "1.3.6.1.6.3.15.1.1"

Definition at line 136 of file usm_v3.h.

#define oidUsmStatsDecryptionErrors   "1.3.6.1.6.3.15.1.1.6.0"

Definition at line 142 of file usm_v3.h.

#define oidUsmStatsNotInTimeWindows   "1.3.6.1.6.3.15.1.1.2.0"

Definition at line 138 of file usm_v3.h.

#define oidUsmStatsUnknownEngineIDs   "1.3.6.1.6.3.15.1.1.4.0"

Definition at line 140 of file usm_v3.h.

#define oidUsmStatsUnknownUserNames   "1.3.6.1.6.3.15.1.1.3.0"

Definition at line 139 of file usm_v3.h.

#define oidUsmStatsUnsupportedSecLevels   "1.3.6.1.6.3.15.1.1.1.0"

Definition at line 137 of file usm_v3.h.

#define oidUsmStatsWrongDigests   "1.3.6.1.6.3.15.1.1.5.0"

Definition at line 141 of file usm_v3.h.

#define oidUsmUserEntry   "1.3.6.1.6.3.15.1.2.2.1"

Definition at line 145 of file usm_v3.h.

#define oidUsmUserTable   "1.3.6.1.6.3.15.1.2.2"

Definition at line 144 of file usm_v3.h.

#define OWNAUTHKEY   3

Definition at line 59 of file usm_v3.h.

#define OWNPRIVKEY   4

Definition at line 60 of file usm_v3.h.

#define PRIVKEY   2

Definition at line 58 of file usm_v3.h.

#define SecurityLevel_authNoPriv   SNMP_SECURITY_LEVEL_AUTH_NOPRIV

Definition at line 1100 of file usm_v3.h.

#define SecurityLevel_authPriv   SNMP_SECURITY_LEVEL_AUTH_PRIV

Definition at line 1101 of file usm_v3.h.

#define SecurityLevel_noAuthNoPriv   SNMP_SECURITY_LEVEL_NOAUTH_NOPRIV

Definition at line 1099 of file usm_v3.h.

#define SNMP_AUTHPROTOCOL_HMACMD5   2

HMAC-MD5.

Definition at line 80 of file usm_v3.h.

Referenced by AuthMD5::get_id().

#define SNMP_AUTHPROTOCOL_HMACSHA   3

HMAC-SHA.

Definition at line 81 of file usm_v3.h.

Referenced by AuthSHA::get_id().

#define SNMP_AUTHPROTOCOL_NONE   1

None.

Definition at line 79 of file usm_v3.h.

#define SNMP_PRIVPROTOCOL_3DESEDE   3

3DES (expired draft standard)

Definition at line 97 of file usm_v3.h.

#define SNMP_PRIVPROTOCOL_AES128   4

AES128 (RFC 3826)

Definition at line 92 of file usm_v3.h.

#define SNMP_PRIVPROTOCOL_AES192   20

AES192 (non standard)

Definition at line 95 of file usm_v3.h.

#define SNMP_PRIVPROTOCOL_AES256   21

AES256 (non standard)

Definition at line 96 of file usm_v3.h.

#define SNMP_PRIVPROTOCOL_DES   2

DES.

Definition at line 91 of file usm_v3.h.

Referenced by PrivDES::get_id().

#define SNMP_PRIVPROTOCOL_IDEA   9

IDEA (non standard)

Definition at line 94 of file usm_v3.h.

#define SNMP_PRIVPROTOCOL_NONE   1

None.

Definition at line 90 of file usm_v3.h.

#define SNMP_SECURITY_LEVEL_AUTH_NOPRIV   2

authNoPriv

Definition at line 69 of file usm_v3.h.

#define SNMP_SECURITY_LEVEL_AUTH_PRIV   3

authPriv

Definition at line 70 of file usm_v3.h.

#define SNMP_SECURITY_LEVEL_NOAUTH_NOPRIV   1

noAuthNoPriv

Definition at line 68 of file usm_v3.h.

#define SNMPv3_AUTHFLAG   0x01

Definition at line 52 of file usm_v3.h.

#define SNMPv3_PRIVFLAG   0x02

Definition at line 53 of file usm_v3.h.

#define SNMPv3_REPORTABLEFLAG   0x04

Definition at line 54 of file usm_v3.h.

#define SNMPv3_USM_ADDRESS_ERROR   1414

Definition at line 120 of file usm_v3.h.

#define SNMPv3_USM_AUTHENTICATION_ERROR   1407

Definition at line 113 of file usm_v3.h.

#define SNMPv3_USM_AUTHENTICATION_FAILURE   1408

Definition at line 114 of file usm_v3.h.

#define SNMPv3_USM_DECRYPTION_ERROR   1406

Definition at line 112 of file usm_v3.h.

#define SNMPv3_USM_ENCRYPTION_ERROR   1405

Definition at line 111 of file usm_v3.h.

#define SNMPv3_USM_ERROR   1401

Definition at line 107 of file usm_v3.h.

Referenced by PrivDES::extend_short_key().

#define SNMPv3_USM_ERROR_CONFIGFILE   1402

Definition at line 108 of file usm_v3.h.

#define SNMPv3_USM_ERRORCOUNT   SNMPv3_USM_MAX_ERROR - SNMPv3_USM_MIN_ERROR

Definition at line 133 of file usm_v3.h.

#define SNMPv3_USM_FILECREATE_ERROR   1415

Definition at line 121 of file usm_v3.h.

#define SNMPv3_USM_FILEDELETE_ERROR   1418

Definition at line 124 of file usm_v3.h.

#define SNMPv3_USM_FILEOPEN_ERROR   1416

Definition at line 122 of file usm_v3.h.

#define SNMPv3_USM_FILEREAD_ERROR   1420

Definition at line 126 of file usm_v3.h.

#define SNMPv3_USM_FILERENAME_ERROR   1417

Definition at line 123 of file usm_v3.h.

#define SNMPv3_USM_FILEWRITE_ERROR   1419

Definition at line 125 of file usm_v3.h.

#define SNMPv3_USM_MAX_ERROR   SNMPv3_USM_FILEREAD_ERROR

Definition at line 131 of file usm_v3.h.

#define SNMPv3_USM_MIN_ERROR   SNMPv3_USM_OK

Definition at line 132 of file usm_v3.h.

#define SNMPv3_USM_NOT_IN_TIME_WINDOW   1411

Definition at line 117 of file usm_v3.h.

#define SNMPv3_USM_OK   1400

Definition at line 106 of file usm_v3.h.

#define SNMPv3_USM_PARSE_ERROR   1409

Definition at line 115 of file usm_v3.h.

#define SNMPv3_USM_UNKNOWN_ENGINEID   1410

Definition at line 116 of file usm_v3.h.

#define SNMPv3_USM_UNKNOWN_SECURITY_NAME   1404

Definition at line 110 of file usm_v3.h.

#define SNMPv3_USM_UNSUPPORTED_AUTHPROTOCOL   1412

Definition at line 118 of file usm_v3.h.

#define SNMPv3_USM_UNSUPPORTED_PRIVPROTOCOL   1413

Definition at line 119 of file usm_v3.h.

#define SNMPv3_USM_UNSUPPORTED_SECURITY_LEVEL   1403

Definition at line 109 of file usm_v3.h.

#define SNMPv3_usmAES128PrivProtocol   SNMP_PRIVPROTOCOL_AES128

Definition at line 1110 of file usm_v3.h.

#define SNMPv3_usmAES192PrivProtocol   SNMP_PRIVPROTOCOL_AES192

Definition at line 1111 of file usm_v3.h.

#define SNMPv3_usmAES256PrivProtocol   SNMP_PRIVPROTOCOL_AES256

Definition at line 1112 of file usm_v3.h.

#define SNMPv3_usmDESPrivProtocol   SNMP_PRIVPROTOCOL_DES

Definition at line 1108 of file usm_v3.h.

#define SNMPv3_usmHMACMD5AuthProtocol   SNMP_AUTHPROTOCOL_HMACMD5

Definition at line 1104 of file usm_v3.h.

#define SNMPv3_usmHMACSHAAuthProtocol   SNMP_AUTHPROTOCOL_HMACSHA

Definition at line 1105 of file usm_v3.h.

#define SNMPv3_usmIDEAPrivProtocol   SNMP_PRIVPROTOCOL_IDEA

Definition at line 1109 of file usm_v3.h.

#define SNMPv3_usmNoAuthProtocol   SNMP_AUTHPROTOCOL_NONE

Definition at line 1103 of file usm_v3.h.

#define SNMPv3_usmNoPrivProtocol   SNMP_PRIVPROTOCOL_NONE

Definition at line 1107 of file usm_v3.h.

#define USM_KeyUpdate   1

Definition at line 162 of file usm_v3.h.

#define USM_PasswordAllKeyUpdate   4

Definition at line 165 of file usm_v3.h.

#define USM_PasswordKeyUpdate   3

Definition at line 164 of file usm_v3.h.

#define USM_PasswordUpdate   2

Definition at line 163 of file usm_v3.h.

Typedef Documentation

typedef void(* usm_add_user_callback)(const OctetStr &engine_id, const OctetStr &usm_user_name, const OctetStr &usm_user_security_name, const int auth_protocol, const OctetStr &auth_key, const int priv_protocol, const OctetStr &priv_key)

Definition at line 202 of file usm_v3.h.