36 #ifdef SNMP_PP_NAMESPACE 40 #ifndef EIGHTBIT_SUBIDS 41 typedef unsigned long oid;
42 #define MAX_SUBID 0xFFFFFFFF 44 typedef unsigned char oid;
45 #define MAX_SUBID 0xFF 48 #define MAX_OID_LEN 128 51 #define ASN_BOOLEAN (0x01) 53 #define ASN_INTEGER (0x02) 55 #define ASN_BIT_STR (0x03) 56 #define ASN_OCTET_STR (0x04) 58 #define ASN_NULL (0x05) 60 #define ASN_OBJECT_ID (0x06) 62 #define ASN_SEQUENCE (0x10) 64 #define ASN_SET (0x11) 66 #define ASN_UNIVERSAL (0x00) 68 #ifndef ASN_APPLICATION 69 #define ASN_APPLICATION (0x40) 72 #define ASN_CONTEXT (0x80) 75 #define ASN_PRIVATE (0xC0) 78 #define ASN_PRIMITIVE (0x00) 80 #ifndef ASN_CONSTRUCTOR 81 #define ASN_CONSTRUCTOR (0x20) 83 #define ASN_LONG_LEN (0x80) 84 #define ASN_EXTENSION_ID (0x1F) 85 #define ASN_BIT8 (0x80) 87 #define IS_CONSTRUCTOR(byte) ((byte) & ASN_CONSTRUCTOR) 88 #define IS_EXTENSION_ID(byte) (((byte) & ASN_EXTENSION_ID) == ASN_EXTENSION_ID) 90 #define ASN_UNI_PRIM (ASN_UNIVERSAL | ASN_PRIMITIVE) 91 #define ASN_SEQ_CON (ASN_SEQUENCE | ASN_CONSTRUCTOR) 93 #define ASN_MAX_NAME_LEN 128 94 #define SNMP_VERSION_1 0 95 #define SNMP_VERSION_2C 1 96 #define SNMP_VERSION_2STERN 2 97 #define SNMP_VERSION_3 3 100 #define SMI_IPADDRESS (ASN_APPLICATION | 0) 101 #define SMI_COUNTER (ASN_APPLICATION | 1) 102 #define SMI_GAUGE (ASN_APPLICATION | 2) 103 #define SMI_TIMETICKS (ASN_APPLICATION | 3) 104 #define SMI_OPAQUE (ASN_APPLICATION | 4) 105 #define SMI_NSAP (ASN_APPLICATION | 5) 106 #define SMI_COUNTER64 (ASN_APPLICATION | 6) 107 #define SMI_UINTEGER (ASN_APPLICATION | 7) 109 #define GET_REQ_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x0) 110 #define GETNEXT_REQ_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x1) 111 #define GET_RSP_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x2) 112 #define SET_REQ_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x3) 113 #define TRP_REQ_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x4) 115 #define GETBULK_REQ_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x5) 116 #define INFORM_REQ_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x6) 117 #define TRP2_REQ_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x7) 118 #define REPORT_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x8) 120 #define SNMP_NOSUCHOBJECT (ASN_CONTEXT | ASN_PRIMITIVE | 0x0) 121 #define SNMP_NOSUCHINSTANCE (ASN_CONTEXT | ASN_PRIMITIVE | 0x1) 122 #define SNMP_ENDOFMIBVIEW (ASN_CONTEXT | ASN_PRIMITIVE | 0x2) 126 #define ASNERROR(string) debugprintf(3, "ASN parse error (%s)\n", string ) 128 #define ASNERROR(string) 188 {
return asn_parse_int(data, datalength, type, (
long*)intp); }
194 unsigned long *intp);
202 const unsigned char type,
206 const unsigned char type,
207 const unsigned long *intp)
208 {
return asn_build_int(data, datalength, type, (
const long*)intp); }
213 unsigned long *intp);
217 unsigned char *
string,
221 const unsigned char type,
222 const unsigned char *
string,
223 const int strlength);
226 unsigned char *type);
229 unsigned char type,
int length);
237 unsigned long *length);
244 oid *objid,
int *objidlength);
248 oid *objid,
int objidlength);
253 unsigned char *type);
260 unsigned char *
string,
265 unsigned char *
string,
283 unsigned char *packet,
286 const unsigned char* community,
const int community_len);
289 oid *name,
int name_length,
293 unsigned char *data,
int data_length,
294 unsigned char *community_name,
int &community_len,
298 unsigned char *buf,
int *buf_len);
301 unsigned char *buf,
int *buf_len,
302 unsigned char *vb_buf,
int vb_buf_len);
305 oid * var_name,
int *var_name_len,
306 unsigned char var_val_type,
308 unsigned char *var_val,
312 oid *var_name,
int *var_name_len,
313 unsigned char *var_val_type,
315 unsigned char **var_val,
319 unsigned char *&data,
int &length);
322 unsigned char *&data,
int &data_len);
351 unsigned char msgFlags,
381 long *msg_id,
long *msg_max_size,
382 unsigned char *msg_flags,
383 long *msg_security_model);
408 unsigned char *scoped_pdu,
int *scoped_pdu_len,
409 unsigned char *context_engine_id,
int *context_engine_id_len,
410 unsigned char *context_name,
int *context_name_len );
435 unsigned char *outBuf,
int *max_len,
436 unsigned char *contextEngineID,
long contextEngineIDLength,
437 unsigned char *contextName,
long contextNameLength,
438 unsigned char *data,
long dataLength);
441 #ifdef SNMP_PP_NAMESPACE 445 #endif // _SNMP_ASN1_H_ DLLOPT unsigned char * asn_build_null(unsigned char *data, int *datalength, unsigned char type)
DLLOPT unsigned char * asn_build_unsigned_int64(unsigned char *data, int *datalength, unsigned char type, struct counter64 *cp)
DLLOPT unsigned char * build_data_pdu(struct snmp_pdu *pdu, unsigned char *buf, int *buf_len, unsigned char *vb_buf, int vb_buf_len)
DLLOPT unsigned char * asn_build_unsigned_int(unsigned char *data, int *datalength, unsigned char type, unsigned long *intp)
DLLOPT struct snmp_pdu * snmp_pdu_create(int command)
DLLOPT unsigned char * asn1_parse_scoped_pdu(unsigned char *scoped_pdu, int *scoped_pdu_len, unsigned char *context_engine_id, int *context_engine_id_len, unsigned char *context_name, int *context_name_len)
Parse the ScopedPDU and return the encoded values.
DLLOPT unsigned char * asn_build_header(unsigned char *data, int *datalength, unsigned char type, int length)
DLLOPT unsigned char * asn_parse_unsigned_int64(unsigned char *data, int *datalength, unsigned char *type, struct counter64 *cp)
DLLOPT unsigned char * asn_build_length(unsigned char *data, int *datalength, int length)
DLLOPT unsigned char * asn_parse_unsigned_int(unsigned char *data, int *datalength, unsigned char *type, unsigned long *intp)
DLLOPT unsigned char * asn_parse_null(unsigned char *data, int *datalength, unsigned char *type)
DLLOPT void asn_build_subid(unsigned long subid, unsigned char *&bp)
snmp_version
The SNMP version to use is passed with this enum.
DLLOPT unsigned char * snmp_build_var_op(unsigned char *data, oid *var_name, int *var_name_len, unsigned char var_val_type, int var_val_len, unsigned char *var_val, int *listlength)
DLLOPT int snmp_parse_vb(struct snmp_pdu *pdu, unsigned char *&data, int &data_len)
DLLOPT unsigned char * build_vb(struct snmp_pdu *pdu, unsigned char *buf, int *buf_len)
DLLOPT unsigned char * asn_parse_bitstring(unsigned char *data, int *datalength, unsigned char *type, unsigned char *string, int *strlength)
DLLOPT unsigned char * asn_build_int(unsigned char *data, int *datalength, const unsigned char type, const long *intp)
DLLOPT unsigned char * asn_build_bitstring(unsigned char *data, int *datalength, unsigned char type, unsigned char *string, int strlength)
DLLOPT void clear_pdu(struct snmp_pdu *pdu, bool clear_all=false)
DLLOPT unsigned char * asn_build_sequence(unsigned char *data, int *datalength, unsigned char type, int length)
DLLOPT unsigned char * asn_parse_length(unsigned char *data, unsigned long *length)
DLLOPT unsigned char * asn_build_string(unsigned char *data, int *datalength, const unsigned char type, const unsigned char *string, const int strlength)
struct variable_list * variables
struct counter64 * counter64
DLLOPT unsigned char * asn_parse_int(unsigned char *data, int *datalength, unsigned char *type, long *intp)
DLLOPT unsigned char * asn_parse_string(unsigned char *data, int *datalength, unsigned char *type, unsigned char *string, int *strlength)
struct variable_list * next_variable
unsigned long maxsize_scopedpdu
DLLOPT void snmp_free_pdu(struct snmp_pdu *pdu)
DLLOPT unsigned char * asn1_build_header_data(unsigned char *outBuf, int *maxLength, long msgID, long maxMessageSize, unsigned char msgFlags, long securityModel)
Encode the given values for the HeaderData into the buffer.
DLLOPT unsigned char * asn_parse_header(unsigned char *data, int *datalength, unsigned char *type)
unsigned char * bitstring
DLLOPT void snmp_add_var(struct snmp_pdu *pdu, oid *name, int name_length, SmiVALUE *smival)
DLLOPT int snmp_parse(struct snmp_pdu *pdu, unsigned char *data, int data_length, unsigned char *community_name, int &community_len, snmp_version &version)
struct sockaddr_in ipaddr
DLLOPT unsigned char * asn1_parse_header_data(unsigned char *buf, int *buf_len, long *msg_id, long *msg_max_size, unsigned char *msg_flags, long *msg_security_model)
Parse the filled HeaderData of a SNMPv3 message and return the encoded values.
DLLOPT int snmp_build(struct snmp_pdu *pdu, unsigned char *packet, int *out_length, const long version, const unsigned char *community, const int community_len)
DLLOPT unsigned char * asn1_build_scoped_pdu(unsigned char *outBuf, int *max_len, unsigned char *contextEngineID, long contextEngineIDLength, unsigned char *contextName, long contextNameLength, unsigned char *data, long dataLength)
Encode the given values for the scopedPDU into the buffer.
DLLOPT unsigned char * snmp_parse_var_op(unsigned char *data, oid *var_name, int *var_name_len, unsigned char *var_val_type, int *var_val_len, unsigned char **var_val, int *listlength)
DLLOPT unsigned char * asn_parse_objid(unsigned char *data, int *datalength, unsigned char *type, oid *objid, int *objidlength)
DLLOPT int snmp_parse_data_pdu(struct snmp_pdu *pdu, unsigned char *&data, int &length)
DLLOPT unsigned char * asn_build_objid(unsigned char *data, int *datalength, unsigned char type, oid *objid, int objidlength)