/*移植自net-snmp的api接口*/
int asn_check_packet(uchar *pkt, size_t len);
uchar *asn_parse_int(uchar *data, size_t *datalength, uchar *type, long *intp,
size_t intsize);
uchar *asn_build_int(uchar *data, size_t *datalength, uchar type, long *intsize,
size_t);
uchar *asn_parse_unsigned_int(uchar *data, size_t *datalength, uchar *type,
ulong *intp, size_t intsize);
uchar *asn_build_unsigned_int(uchar *data, size_t *datalength, uchar type,
ulong *intp, size_t intsize);
uchar *asn_parse_string(uchar *data, size_t *datalength, uchar *type,
uchar *string, size_t *strlength);
uchar *asn_build_string(uchar *data, size_t *datalength, uchar type,
const uchar *string, size_t strlength);
uchar *asn_parse_header(uchar *data, size_t *datalength, uchar *type);
uchar *asn_parse_sequence(uchar *data, size_t *datalength, uchar *type, uchar expected_type, /* must be this type */
const char *estr); /* error message prefix */
uchar *asn_build_header(uchar *data, size_t *datalength, uchar type, size_t length);
uchar *asn_build_sequence(uchar *data, size_t *datalength, uchar type, size_t length);
uchar *asn_parse_length(uchar *data, ulong *length);
uchar *asn_build_length(uchar *data, size_t *datalength, size_t length);
uchar *asn_parse_objid(uchar *data, size_t *datalength, uchar *type, ulong *objid,
size_t *objidlength);
uchar *asn_build_objid(uchar *data, size_t *datalength, uchar type, ulong *objid,
size_t objidlength);
uchar *asn_parse_null(uchar *data, size_t *datalength, uchar *type);
uchar *asn_build_null(uchar *data, size_t *datalength, uchar type);
uchar *asn_parse_bitstring(uchar *data, size_t *datalength, uchar *type,
uchar *string, size_t *strlength);
uchar *asn_build_bitstring(uchar *data, size_t *datalength, uchar type,
uchar *string, size_t strlength);
uchar *asn_parse_unsigned_int64(uchar *data, size_t *datalength, uchar *type,
struct counter64 *cp, size_t countersize);
uchar *asn_build_unsigned_int64(uchar *data, size_t *datalength, uchar type,
struct counter64 *cp, size_t countersize);
uchar *asn_parse_signed_int64(uchar *data, size_t *datalength, uchar *type,
struct counter64 *cp, size_t countersize);
uchar *asn_build_signed_int64(uchar *data, size_t *datalength, uchar type,
struct counter64 *cp, size_t countersize);
uchar *asn_build_float(uchar *data, size_t *datalength, uchar type, float *,
size_t);
uchar *asn_parse_float(uchar *data, size_t *datalength, uchar *type, float *floatp,
size_t floatsize);
uchar *asn_build_double(uchar *data, size_t *datalength, uchar type, double *doublep,
size_t doublesize);
uchar *asn_parse_double(uchar *data, size_t *datalength, uchar *type,
double *doublep, size_t doublesize);
int asn_check_packet(uchar *pkt, size_t len);
uchar *asn_parse_int(uchar *data, size_t *datalength, uchar *type, long *intp,
size_t intsize);
uchar *asn_build_int(uchar *data, size_t *datalength, uchar type, long *intsize,
size_t);
uchar *asn_parse_unsigned_int(uchar *data, size_t *datalength, uchar *type,
ulong *intp, size_t intsize);
uchar *asn_build_unsigned_int(uchar *data, size_t *datalength, uchar type,
ulong *intp, size_t intsize);
uchar *asn_parse_string(uchar *data, size_t *datalength, uchar *type,
uchar *string, size_t *strlength);
uchar *asn_build_string(uchar *data, size_t *datalength, uchar type,
const uchar *string, size_t strlength);
uchar *asn_parse_header(uchar *data, size_t *datalength, uchar *type);
uchar *asn_parse_sequence(uchar *data, size_t *datalength, uchar *type, uchar expected_type, /* must be this type */
const char *estr); /* error message prefix */
uchar *asn_build_header(uchar *data, size_t *datalength, uchar type, size_t length);
uchar *asn_build_sequence(uchar *data, size_t *datalength, uchar type, size_t length);
uchar *asn_parse_length(uchar *data, ulong *length);
uchar *asn_build_length(uchar *data, size_t *datalength, size_t length);
uchar *asn_parse_objid(uchar *data, size_t *datalength, uchar *type, ulong *objid,
size_t *objidlength);
uchar *asn_build_objid(uchar *data, size_t *datalength, uchar type, ulong *objid,
size_t objidlength);
uchar *asn_parse_null(uchar *data, size_t *datalength, uchar *type);
uchar *asn_build_null(uchar *data, size_t *datalength, uchar type);
uchar *asn_parse_bitstring(uchar *data, size_t *datalength, uchar *type,
uchar *string, size_t *strlength);
uchar *asn_build_bitstring(uchar *data, size_t *datalength, uchar type,
uchar *string, size_t strlength);
uchar *asn_parse_unsigned_int64(uchar *data, size_t *datalength, uchar *type,
struct counter64 *cp, size_t countersize);
uchar *asn_build_unsigned_int64(uchar *data, size_t *datalength, uchar type,
struct counter64 *cp, size_t countersize);
uchar *asn_parse_signed_int64(uchar *data, size_t *datalength, uchar *type,
struct counter64 *cp, size_t countersize);
uchar *asn_build_signed_int64(uchar *data, size_t *datalength, uchar type,
struct counter64 *cp, size_t countersize);
uchar *asn_build_float(uchar *data, size_t *datalength, uchar type, float *,
size_t);
uchar *asn_parse_float(uchar *data, size_t *datalength, uchar *type, float *floatp,
size_t floatsize);
uchar *asn_build_double(uchar *data, size_t *datalength, uchar type, double *doublep,
size_t doublesize);
uchar *asn_parse_double(uchar *data, size_t *datalength, uchar *type,
double *doublep, size_t doublesize);
本文介绍了一组移植自net-snmp项目的API接口,这些接口主要用于ASN.1数据类型的解析和构建,包括整数、字符串、对象标识符等多种类型的数据处理函数。对于从事网络管理和协议开发的技术人员来说,这些API提供了底层数据交互的支持。

904

被折叠的 条评论
为什么被折叠?



