12#ifndef __PACKET_PER_H__
13#define __PACKET_PER_H__
15#include "ws_symbol_export.h"
28#define ASN1_NO_EXTENSIONS 0
29#define ASN1_EXTENSION_ROOT ASN1_EXT_ROOT
30#define ASN1_NOT_EXTENSION_ROOT ASN1_EXT_EXT
33#define ASN1_NOT_OPTIONAL 0
34#define ASN1_OPTIONAL ASN1_OPT
58WS_DLL_PUBLIC uint32_t dissect_per_IA5String(
tvbuff_t *tvb, uint32_t offset,
asn1_ctx_t *actx,
proto_tree *tree,
int hf_index,
int min_len,
int max_len,
bool has_extension,
tvbuff_t **value_tvb);
60WS_DLL_PUBLIC uint32_t dissect_per_NumericString(
tvbuff_t *tvb, uint32_t offset,
asn1_ctx_t *actx,
proto_tree *tree,
int hf_index,
int min_len,
int max_len,
bool has_extension,
tvbuff_t **value_tvb);
62WS_DLL_PUBLIC uint32_t dissect_per_PrintableString(
tvbuff_t *tvb, uint32_t offset,
asn1_ctx_t *actx,
proto_tree *tree,
int hf_index,
int min_len,
int max_len,
bool has_extension,
tvbuff_t **value_tvb);
64WS_DLL_PUBLIC uint32_t dissect_per_VisibleString(
tvbuff_t *tvb, uint32_t offset,
asn1_ctx_t *actx,
proto_tree *tree,
int hf_index,
int min_len,
int max_len,
bool has_extension,
tvbuff_t **value_tvb);
66WS_DLL_PUBLIC uint32_t dissect_per_BMPString(
tvbuff_t *tvb, uint32_t offset,
asn1_ctx_t *actx,
proto_tree *tree,
int hf_index,
int min_len,
int max_len,
bool has_extension);
68extern uint32_t dissect_per_UTF8String(
tvbuff_t *tvb, uint32_t offset,
asn1_ctx_t *actx,
proto_tree *tree,
int hf_index,
int min_len,
int max_len,
bool has_extension);
72WS_DLL_PUBLIC uint32_t dissect_per_constrained_sequence_of(
tvbuff_t *tvb, uint32_t offset,
asn1_ctx_t *actx,
proto_tree *parent_tree,
int hf_index,
int ett_index,
const per_sequence_t *seq,
int min_len,
int max_len,
bool has_extension);
74WS_DLL_PUBLIC uint32_t dissect_per_constrained_set_of(
tvbuff_t *tvb, uint32_t offset,
asn1_ctx_t *actx,
proto_tree *parent_tree,
int hf_index,
int ett_index,
const per_sequence_t *seq,
int min_len,
int max_len,
bool has_extension);
79WS_DLL_PUBLIC uint32_t dissect_per_object_identifier_str(
tvbuff_t *tvb, uint32_t offset,
asn1_ctx_t *actx,
proto_tree *tree,
int hf_index,
const char **value_stringx);
82WS_DLL_PUBLIC uint32_t dissect_per_relative_oid_str(
tvbuff_t *tvb, uint32_t offset,
asn1_ctx_t *actx,
proto_tree *tree,
int hf_index,
const char **value_stringx);
84WS_DLL_PUBLIC uint32_t dissect_per_boolean(
tvbuff_t *tvb, uint32_t offset,
asn1_ctx_t *actx,
proto_tree *tree,
int hf_index,
bool *bool_val);
86WS_DLL_PUBLIC uint32_t dissect_per_integer(
tvbuff_t *tvb, uint32_t offset,
asn1_ctx_t *actx,
proto_tree *tree,
int hf_index, int32_t *value);
88WS_DLL_PUBLIC uint32_t dissect_per_constrained_integer(
tvbuff_t *tvb, uint32_t offset,
asn1_ctx_t *actx,
proto_tree *tree,
int hf_index, uint32_t min, uint32_t max, uint32_t *value,
bool has_extension);
90WS_DLL_PUBLIC uint32_t dissect_per_constrained_integer_64b(
tvbuff_t *tvb, uint32_t offset,
asn1_ctx_t *actx,
proto_tree *tree,
int hf_index, uint64_t min, uint64_t max, uint64_t *value,
bool has_extension);
99WS_DLL_PUBLIC uint32_t dissect_per_octet_string(
tvbuff_t *tvb, uint32_t offset,
asn1_ctx_t *actx,
proto_tree *tree,
int hf_index,
int min_len,
int max_len,
bool has_extension,
tvbuff_t **value_tvb);
100WS_DLL_PUBLIC uint32_t dissect_per_octet_string_containing_pdu_new(
tvbuff_t *tvb, uint32_t offset,
asn1_ctx_t *actx,
proto_tree *tree,
int hf_index,
int min_len,
int max_len,
bool has_extension, dissector_t type_cb);
102WS_DLL_PUBLIC uint32_t dissect_per_bit_string(
tvbuff_t *tvb, uint32_t offset,
asn1_ctx_t *actx,
proto_tree *tree,
int hf_index,
int min_len,
int max_len,
bool has_extension,
int *
const *named_bits,
int num_named_bits,
tvbuff_t **value_tvb,
int *len);
104WS_DLL_PUBLIC uint32_t dissect_per_bit_string_containing_pdu_new(
tvbuff_t *tvb, uint32_t offset,
asn1_ctx_t *actx,
proto_tree *tree,
int hf_index,
int min_len,
int max_len,
bool has_extension, dissector_t type_cb);
106WS_DLL_PUBLIC uint32_t dissect_per_restricted_character_string(
tvbuff_t *tvb, uint32_t offset,
asn1_ctx_t *actx,
proto_tree *tree,
int hf_index,
int min_len,
int max_len,
bool has_extension,
const char *alphabet,
int alphabet_length,
tvbuff_t **value_tvb);
108WS_DLL_PUBLIC uint32_t dissect_per_enumerated(
tvbuff_t *tvb, uint32_t offset,
asn1_ctx_t *actx,
proto_tree *tree,
int hf_index, uint32_t root_num, uint32_t *value,
bool has_extension, uint32_t ext_num, uint32_t *value_map);
110WS_DLL_PUBLIC uint32_t dissect_per_open_type(
tvbuff_t *tvb, uint32_t offset,
asn1_ctx_t *actx,
proto_tree *tree,
int hf_index, per_type_fn type_cb);
111WS_DLL_PUBLIC uint32_t dissect_per_open_type_pdu_new(
tvbuff_t *tvb, uint32_t offset,
asn1_ctx_t *actx,
proto_tree *tree,
int hf_index, dissector_t type_cb);
113WS_DLL_PUBLIC uint32_t dissect_per_external_type(
tvbuff_t *tvb, uint32_t offset,
asn1_ctx_t *actx,
proto_tree *tree,
int hf_index, per_type_fn type_cb);
115extern uint32_t dissect_per_size_constrained_type(
tvbuff_t *tvb, uint32_t offset,
asn1_ctx_t *actx,
proto_tree *tree,
int hf_index, per_type_fn type_cb,
const char *name,
int min_len,
int max_len,
bool has_extension);
116extern bool get_size_constraint_from_stack(
asn1_ctx_t *actx,
const char *name,
int *pmin_len,
int *pmax_len,
bool *phas_extension);
118extern uint32_t dissect_per_length_determinant(
tvbuff_t *tvb, uint32_t offset,
asn1_ctx_t *actx _U_,
proto_tree *tree,
int hf_index, uint32_t *length,
bool *is_fragmented);
121WS_DLL_PUBLIC
void register_per_oid_dissector(
const char *oid, dissector_t dissector,
int proto,
const char *name);
Definition packet_info.h:43
Definition packet-per.h:36
Definition packet-per.h:43
Definition tvbuff-int.h:35