|
Wireshark 4.7.0
The Wireshark network protocol analyzer
|
Central context object threaded through all ASN.1 dissection calls. More...
#include <asn1.h>
Public Attributes | ||
| uint32_t | signature | |
| asn1_enc_e | encoding | |
| bool | aligned | |
| packet_info * | pinfo | |
| proto_item * | created_item | |
| struct _asn1_stack_frame_t * | stack | |
| void * | value_ptr | |
| void * | private_data | |
| struct { | ||
| int hf_index | ||
| bool data_value_descr_present | ||
| bool direct_ref_present | ||
| bool indirect_ref_present | ||
| tvbuff_t * data_value_descriptor | ||
| const char * direct_reference | ||
| int32_t indirect_reference | ||
| int encoding | ||
| tvbuff_t * single_asn1_type | ||
| tvbuff_t * octet_aligned | ||
| tvbuff_t * arbitrary | ||
| union { | ||
| struct { | ||
| unsigned(* ber_callback )(bool imp_tag, tvbuff_t *tvb, unsigned offset, struct _asn1_ctx_t *actx, proto_tree *tree, int hf_index) | ||
| BER callback to dissect the contained EXTERNAL value. More... | ||
| } ber | ||
| struct { | ||
| unsigned(* type_cb )(tvbuff_t *tvb, uint32_t offset, struct _asn1_ctx_t *actx, proto_tree *tree, int hf_index) | ||
| PER callback to dissect the contained EXTERNAL value. More... | ||
| } per | ||
| } u | ||
| } | external | |
| Decoding state for ASN.1 EXTERNAL type values. | ||
| struct { | ||
| proto_tree * tree | ||
| proto_tree * top_tree | ||
| void * tree_ctx | ||
| } | subtree | |
| Protocol subtree pointers for building nested dissection trees. | ||
| struct { | ||
| int hf_index | ||
| bool data_value_descr_present | ||
| tvbuff_t * data_value_descriptor | ||
| int identification | ||
| int32_t presentation_context_id | ||
| const char * abstract_syntax | ||
| const char * transfer_syntax | ||
| tvbuff_t * data_value | ||
| union { | ||
| struct { | ||
| int(* ber_callback )(bool imp_tag, tvbuff_t *tvb, int offset, struct _asn1_ctx_t *actx, proto_tree *tree, int hf_index) | ||
| BER callback to dissect the contained EMBEDDED PDV value. More... | ||
| } ber | ||
| struct { | ||
| int(* type_cb )(tvbuff_t *tvb, int offset, struct _asn1_ctx_t *actx, proto_tree *tree, int hf_index) | ||
| PER callback to dissect the contained EMBEDDED PDV value. More... | ||
| } per | ||
| } u | ||
| } | embedded_pdv | |
| Decoding state for ASN.1 EMBEDDED PDV type values. | ||
| struct _rose_ctx_t * | rose_ctx | |
Central context object threaded through all ASN.1 dissection calls.
Carries encoding parameters, packet metadata, the type-resolution stack, and per-PDU working state for EXTERNAL and EMBEDDED PDV types.
| const char* _asn1_ctx_t::abstract_syntax |
Abstract syntax OID string (when identification == 0 or 1), or NULL.
| bool _asn1_ctx_t::aligned |
True if PER encoding is byte-aligned (relevant when encoding == ASN1_ENC_PER).
| struct { ... } _asn1_ctx_t::ber |
BER-specific dissection callback.
| struct { ... } _asn1_ctx_t::ber |
BER-specific dissection callback.
| int(* _asn1_ctx_t::ber_callback) (bool imp_tag, tvbuff_t *tvb, int offset, struct _asn1_ctx_t *actx, proto_tree *tree, int hf_index) |
BER callback to dissect the contained EMBEDDED PDV value.
| imp_tag | True if the tag is implicitly encoded. |
| tvb | Buffer containing the value. |
| offset | Byte offset into tvb. |
| actx | The enclosing ASN.1 context. |
| tree | Protocol tree to populate. |
| hf_index | Field index for the value item. |
| unsigned(* _asn1_ctx_t::ber_callback) (bool imp_tag, tvbuff_t *tvb, unsigned offset, struct _asn1_ctx_t *actx, proto_tree *tree, int hf_index) |
BER callback to dissect the contained EXTERNAL value.
| imp_tag | True if the tag is implicitly encoded. |
| tvb | Buffer containing the value. |
| offset | Byte offset into tvb. |
| actx | The enclosing ASN.1 context. |
| tree | Protocol tree to populate. |
| hf_index | Field index for the value item. |
| proto_item* _asn1_ctx_t::created_item |
The most recently created protocol tree item, available for post-hoc annotation.
| bool _asn1_ctx_t::data_value_descr_present |
True if the data-value-descriptor field is present.
| tvbuff_t* _asn1_ctx_t::data_value_descriptor |
Buffer containing the data-value-descriptor string, or NULL.
| bool _asn1_ctx_t::direct_ref_present |
True if the direct-reference OID is present.
| const char* _asn1_ctx_t::direct_reference |
Direct-reference OID string, or NULL.
| struct { ... } _asn1_ctx_t::embedded_pdv |
Decoding state for ASN.1 EMBEDDED PDV type values.
State for the currently decoded EMBEDDED PDV type instance.
| asn1_enc_e _asn1_ctx_t::encoding |
Transfer syntax in use for this PDU.
| int _asn1_ctx_t::encoding |
Encoding of the contained value: 0 = single-ASN1-type, 1 = octet-aligned, 2 = arbitrary.
| struct { ... } _asn1_ctx_t::external |
Decoding state for ASN.1 EXTERNAL type values.
State for the currently decoded EXTERNAL type instance.
| int _asn1_ctx_t::hf_index |
Protocol-tree field index for the EXTERNAL value.
Protocol-tree field index for the EMBEDDED PDV value.
| int _asn1_ctx_t::identification |
Identification choice in use: 0 = syntaxes, 1 = syntax, 2 = presentation-context-id, 3 = context-negotiation, 4 = transfer-syntax, 5 = fixed.
| bool _asn1_ctx_t::indirect_ref_present |
True if the indirect-reference integer is present.
| int32_t _asn1_ctx_t::indirect_reference |
Indirect-reference presentation-context ID.
| struct { ... } _asn1_ctx_t::per |
PER-specific dissection callback.
| struct { ... } _asn1_ctx_t::per |
PER-specific dissection callback.
| packet_info* _asn1_ctx_t::pinfo |
Wireshark packet metadata for the current frame.
| int32_t _asn1_ctx_t::presentation_context_id |
Presentation context ID (when identification == 2 or 3).
| void* _asn1_ctx_t::private_data |
Opaque pointer reserved for per-dissector private state.
| struct _rose_ctx_t* _asn1_ctx_t::rose_ctx |
Optional ROSE (Remote Operations Service Element) context, or NULL.
| uint32_t _asn1_ctx_t::signature |
Must equal ASN1_CTX_SIGNATURE; guards against stale pointers.
| struct _asn1_stack_frame_t* _asn1_ctx_t::stack |
Top of the parameterized type resolution stack.
| proto_tree* _asn1_ctx_t::top_tree |
Root protocol tree for the current PDU.
| const char* _asn1_ctx_t::transfer_syntax |
Transfer syntax OID string (when identification == 0, 4), or NULL.
| proto_tree* _asn1_ctx_t::tree |
Current working subtree for item insertion.
| void* _asn1_ctx_t::tree_ctx |
Opaque per-tree context pointer.
| int(* _asn1_ctx_t::type_cb) (tvbuff_t *tvb, int offset, struct _asn1_ctx_t *actx, proto_tree *tree, int hf_index) |
| unsigned(* _asn1_ctx_t::type_cb) (tvbuff_t *tvb, uint32_t offset, struct _asn1_ctx_t *actx, proto_tree *tree, int hf_index) |
| union { ... } _asn1_ctx_t::u |
Encoding-specific dissection callback.
| union { ... } _asn1_ctx_t::u |
Encoding-specific dissection callback.
| void* _asn1_ctx_t::value_ptr |
Generic pointer to the most recently decoded value; type depends on context.