📄 asn1.h
字号:
int length);DLLOPT unsigned char *asn_parse_length( unsigned char *data, unsigned long *length);DLLOPT unsigned char *asn_build_length( unsigned char *data, int *datalength, int length);DLLOPT unsigned char *asn_parse_objid( unsigned char *data, int *datalength, unsigned char *type, oid *objid, int *objidlength);DLLOPT unsigned char *asn_build_objid( unsigned char *data, int *datalength, unsigned char type, oid *objid, int objidlength);DLLOPT unsigned char *asn_parse_null(unsigned char *data, int *datalength, unsigned char *type);DLLOPT unsigned char *asn_build_null( unsigned char *data,int *datalength, unsigned char type);DLLOPT unsigned char *asn_parse_bitstring( unsigned char *data, int *datalength, unsigned char *type, unsigned char *string, int *strlength);DLLOPT unsigned char *asn_build_bitstring( unsigned char *data, int *datalength, unsigned char type, unsigned char *string, int strlength);DLLOPT unsigned char *asn_parse_unsigned_int64( unsigned char *data, int *datalength, unsigned char *type, struct counter64 *cp, int countersize);DLLOPT unsigned char *asn_build_unsigned_int64( unsigned char *data, int *datalength, unsigned char type, struct counter64 *cp, int countersize);DLLOPT struct snmp_pdu *snmp_pdu_create( int command);DLLOPT void snmp_free_pdu( struct snmp_pdu *pdu);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 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);DLLOPT unsigned char *build_vb(struct snmp_pdu *pdu, unsigned char *buf, int *buf_len);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 *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 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 int snmp_parse_data_pdu(struct snmp_pdu *pdu, unsigned char *&data, int &length); DLLOPT int snmp_parse_vb(struct snmp_pdu *pdu, unsigned char *&data, int &data_len);DLLOPT void clear_pdu(struct snmp_pdu *pdu, bool clear_all = false);/** * Encode the given values for the HeaderData into the buffer. * <pre> * HeaderData ::= SEQUENCE { * msgID INTEGER (0..2147483647), * msgMaxSize INTEGER (484..2147483647), * msgFlags OCTET STRING (SIZE(1)), * msgSecurityModel INTEGER (0..2147483647) * } * </pre> * @param outBuf - The buffer * @param maxLength - IN: length of the buffer * OUT: free bytes left in the buffer * @param msgID - The message ID * @param maxMessageSize - The maximum size of a SNMPv3 message * @param msgFlags - The message Flags * @param securityModel - The security model * * @return - Pointer to the first free byte in the buffer or * NULL if an error occured */DLLOPT unsigned char *asn1_build_header_data(unsigned char *outBuf, int *maxLength, long msgID, long maxMessageSize, unsigned char msgFlags, long securityModel);/** * Parse the filled HeaderData of a SNMPv3 message and return * the encoded values. * <pre> * HeaderData ::= SEQUENCE { * msgID INTEGER (0..2147483647), * msgMaxSize INTEGER (484..2147483647), * msgFlags OCTET STRING (SIZE(1)), * msgSecurityModel INTEGER (0..2147483647) * } * </pre> * * @param buf - The buffer to parse * @param buf_len - IN: The length of the buffer * OUT: The number of bytes after this object * int the buffer * @param msg_id - OUT: The message id * @param msg_max_size - OUT: THe maximum message size of the sender * @param msg_flags - OUT: The message flags * @param msg_security_model - OUT: The security model used to build this * message * * @return - Returns a pointer to the first byte past the end of * the object HeaderData (i.e. the start of the next object). * Returns NULL on any error. */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 ScopedPDU and return the encoded values. * <pre> * ScopedPDU ::= SEQUENCE { * contextEngineID OCTET STRING, * contextName OCTET STRING, * data ANY -- e.g., PDUs as defined in RFC 1905 * } * </pre> * * @param scoped_pdu - The buffer to parse * @param scoped_pdu_len - IN: The length of the buffer * OUT: The number of bytes after this object * int the buffer * @param context_engine_id - OUT: The parsed contextEngineID * @param context_engine_id_len - OUT: The length of the contextEngineID * @param context_name - OUT: The parsed contextName * @param context_name_len - OUT: The length of the contextName * * @return - Pointer to the data object of the scopedPDU or * NULL on any error. */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 );/** * Encode the given values for the scopedPDU into the buffer. * <pre> * ScopedPDU ::= SEQUENCE { * contextEngineID OCTET STRING * contextName OCTET STRING * data ANY -- PDU * } * </pre> * param outBuf - The buffer * param max_len - IN: length of the buffer * OUT: free bytes left in the buffer * param contextEngineID - The contextEngineID * param contextEngineIDLength - The length of the contextEngineID * param contextName - The contextName * param contextNameLength - The length of the contextName * param data - The already encoded data * param dataLength - The length of the data * * @return - Pointer to the first free byte in the buffer or * NULL if an error occured */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);#ifdef SNMP_PP_NAMESPACE}; // end of namespace Snmp_pp#endif #endif // _ASN1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -