1 /* Do not modify this file. Changes will be overwritten. */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler */
4 /* ../../tools/asn2wrs.py -b -p x509if -c ./x509if.cnf -s ./packet-x509if-template -D . -O ../../epan/dissectors InformationFramework.asn ServiceAdministration.asn */
6 /* Input file: packet-x509if-template.c */
8 #line 1 "../../asn1/x509if/packet-x509if-template.c"
10 * Routines for X.509 Information Framework packet dissection
11 * Ronnie Sahlberg 2004
15 * Wireshark - Network traffic analyzer
16 * By Gerald Combs <gerald@wireshark.org>
17 * Copyright 1998 Gerald Combs
19 * This program is free software; you can redistribute it and/or
20 * modify it under the terms of the GNU General Public License
21 * as published by the Free Software Foundation; either version 2
22 * of the License, or (at your option) any later version.
24 * This program is distributed in the hope that it will be useful,
25 * but WITHOUT ANY WARRANTY; without even the implied warranty of
26 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27 * GNU General Public License for more details.
29 * You should have received a copy of the GNU General Public License
30 * along with this program; if not, write to the Free Software
31 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
37 #include <epan/packet.h>
38 #include <epan/oids.h>
39 #include <epan/asn1.h>
40 #include <epan/wmem/wmem.h>
42 #include "packet-ber.h"
43 #include "packet-dap.h"
44 #include "packet-x509if.h"
45 #include "packet-x509sat.h"
46 #include <epan/strutil.h>
47 #include <epan/dissectors/packet-frame.h>
49 #define PNAME "X.509 Information Framework"
50 #define PSNAME "X509IF"
51 #define PFNAME "x509if"
53 /* Initialize the protocol and registered fields */
54 static int proto_x509if
= -1;
55 static int hf_x509if_object_identifier_id
= -1;
56 static int hf_x509if_any_string
= -1;
58 /*--- Included file: packet-x509if-hf.c ---*/
59 #line 1 "../../asn1/x509if/packet-x509if-hf.c"
60 static int hf_x509if_DistinguishedName_PDU
= -1; /* DistinguishedName */
61 static int hf_x509if_SubtreeSpecification_PDU
= -1; /* SubtreeSpecification */
62 static int hf_x509if_HierarchyLevel_PDU
= -1; /* HierarchyLevel */
63 static int hf_x509if_HierarchyBelow_PDU
= -1; /* HierarchyBelow */
64 static int hf_x509if_type
= -1; /* T_type */
65 static int hf_x509if_values
= -1; /* T_values */
66 static int hf_x509if_values_item
= -1; /* T_values_item */
67 static int hf_x509if_valuesWithContext
= -1; /* T_valuesWithContext */
68 static int hf_x509if_valuesWithContext_item
= -1; /* T_valuesWithContext_item */
69 static int hf_x509if_value
= -1; /* T_value */
70 static int hf_x509if_contextList
= -1; /* SET_SIZE_1_MAX_OF_Context */
71 static int hf_x509if_contextList_item
= -1; /* Context */
72 static int hf_x509if_contextType
= -1; /* T_contextType */
73 static int hf_x509if_contextValues
= -1; /* T_contextValues */
74 static int hf_x509if_contextValues_item
= -1; /* T_contextValues_item */
75 static int hf_x509if_fallback
= -1; /* BOOLEAN */
76 static int hf_x509if_type_01
= -1; /* T_type_01 */
77 static int hf_x509if_assertion
= -1; /* T_assertion */
78 static int hf_x509if_assertedContexts
= -1; /* T_assertedContexts */
79 static int hf_x509if_allContexts
= -1; /* NULL */
80 static int hf_x509if_selectedContexts
= -1; /* SET_SIZE_1_MAX_OF_ContextAssertion */
81 static int hf_x509if_selectedContexts_item
= -1; /* ContextAssertion */
82 static int hf_x509if_ca_contextType
= -1; /* T_ca_contextType */
83 static int hf_x509if_ca_contextValues
= -1; /* T_ca_contextValues */
84 static int hf_x509if_ca_contextValues_item
= -1; /* T_ca_contextValues_item */
85 static int hf_x509if_type_02
= -1; /* OBJECT_IDENTIFIER */
86 static int hf_x509if_ata_assertedContexts
= -1; /* SEQUENCE_SIZE_1_MAX_OF_ContextAssertion */
87 static int hf_x509if_ata_assertedContexts_item
= -1; /* ContextAssertion */
88 static int hf_x509if_rdnSequence
= -1; /* RDNSequence */
89 static int hf_x509if_RDNSequence_item
= -1; /* RDNSequence_item */
90 static int hf_x509if_RelativeDistinguishedName_item
= -1; /* RelativeDistinguishedName_item */
91 static int hf_x509if_type_03
= -1; /* T_type_02 */
92 static int hf_x509if_atadv_value
= -1; /* T_atadv_value */
93 static int hf_x509if_primaryDistinguished
= -1; /* BOOLEAN */
94 static int hf_x509if_valueswithContext
= -1; /* T_valWithContext */
95 static int hf_x509if_valueswithContext_item
= -1; /* T_valWithContext_item */
96 static int hf_x509if_distingAttrValue
= -1; /* T_distingAttrValue */
97 static int hf_x509if_chopSpecificExclusions
= -1; /* T_chopSpecificExclusions */
98 static int hf_x509if_chopSpecificExclusions_item
= -1; /* T_chopSpecificExclusions_item */
99 static int hf_x509if_chopBefore
= -1; /* LocalName */
100 static int hf_x509if_chopAfter
= -1; /* LocalName */
101 static int hf_x509if_minimum
= -1; /* BaseDistance */
102 static int hf_x509if_maximum
= -1; /* BaseDistance */
103 static int hf_x509if_item
= -1; /* OBJECT_IDENTIFIER */
104 static int hf_x509if_refinement_and
= -1; /* SET_OF_Refinement */
105 static int hf_x509if_refinement_and_item
= -1; /* Refinement */
106 static int hf_x509if_refinement_or
= -1; /* SET_OF_Refinement */
107 static int hf_x509if_refinement_or_item
= -1; /* Refinement */
108 static int hf_x509if_refinement_not
= -1; /* Refinement */
109 static int hf_x509if_ruleIdentifier
= -1; /* RuleIdentifier */
110 static int hf_x509if_nameForm
= -1; /* OBJECT_IDENTIFIER */
111 static int hf_x509if_superiorStructureRules
= -1; /* SET_SIZE_1_MAX_OF_RuleIdentifier */
112 static int hf_x509if_superiorStructureRules_item
= -1; /* RuleIdentifier */
113 static int hf_x509if_structuralObjectClass
= -1; /* OBJECT_IDENTIFIER */
114 static int hf_x509if_auxiliaries
= -1; /* T_auxiliaries */
115 static int hf_x509if_auxiliaries_item
= -1; /* OBJECT_IDENTIFIER */
116 static int hf_x509if_mandatory
= -1; /* T_mandatory */
117 static int hf_x509if_mandatory_item
= -1; /* OBJECT_IDENTIFIER */
118 static int hf_x509if_optional
= -1; /* T_optional */
119 static int hf_x509if_optional_item
= -1; /* OBJECT_IDENTIFIER */
120 static int hf_x509if_precluded
= -1; /* T_precluded */
121 static int hf_x509if_precluded_item
= -1; /* OBJECT_IDENTIFIER */
122 static int hf_x509if_attributeType
= -1; /* OBJECT_IDENTIFIER */
123 static int hf_x509if_mandatoryContexts
= -1; /* T_mandatoryContexts */
124 static int hf_x509if_mandatoryContexts_item
= -1; /* OBJECT_IDENTIFIER */
125 static int hf_x509if_optionalContexts
= -1; /* T_optionalContexts */
126 static int hf_x509if_optionalContexts_item
= -1; /* OBJECT_IDENTIFIER */
127 static int hf_x509if_id
= -1; /* INTEGER */
128 static int hf_x509if_dmdId
= -1; /* OBJECT_IDENTIFIER */
129 static int hf_x509if_attributeType_01
= -1; /* T_attributeType */
130 static int hf_x509if_includeSubtypes
= -1; /* BOOLEAN */
131 static int hf_x509if_ra_selectedValues
= -1; /* T_ra_selectedValues */
132 static int hf_x509if_ra_selectedValues_item
= -1; /* T_ra_selectedValues_item */
133 static int hf_x509if_defaultValues
= -1; /* T_defaultValues */
134 static int hf_x509if_defaultValues_item
= -1; /* T_defaultValues_item */
135 static int hf_x509if_entryType
= -1; /* T_entryType */
136 static int hf_x509if_ra_values
= -1; /* T_ra_values */
137 static int hf_x509if_ra_values_item
= -1; /* T_ra_values_item */
138 static int hf_x509if_contexts
= -1; /* SEQUENCE_SIZE_0_MAX_OF_ContextProfile */
139 static int hf_x509if_contexts_item
= -1; /* ContextProfile */
140 static int hf_x509if_contextCombination
= -1; /* ContextCombination */
141 static int hf_x509if_matchingUse
= -1; /* SEQUENCE_SIZE_1_MAX_OF_MatchingUse */
142 static int hf_x509if_matchingUse_item
= -1; /* MatchingUse */
143 static int hf_x509if_contextType_01
= -1; /* T_contextType_01 */
144 static int hf_x509if_contextValue
= -1; /* T_contextValue */
145 static int hf_x509if_contextValue_item
= -1; /* T_contextValue_item */
146 static int hf_x509if_context
= -1; /* OBJECT_IDENTIFIER */
147 static int hf_x509if_contextcombination_and
= -1; /* SEQUENCE_OF_ContextCombination */
148 static int hf_x509if_contextcombination_and_item
= -1; /* ContextCombination */
149 static int hf_x509if_contextcombination_or
= -1; /* SEQUENCE_OF_ContextCombination */
150 static int hf_x509if_contextcombination_or_item
= -1; /* ContextCombination */
151 static int hf_x509if_contextcombination_not
= -1; /* ContextCombination */
152 static int hf_x509if_restrictionType
= -1; /* T_restrictionType */
153 static int hf_x509if_restrictionValue
= -1; /* T_restrictionValue */
154 static int hf_x509if_attribute
= -1; /* AttributeType */
155 static int hf_x509if_and
= -1; /* SEQUENCE_OF_AttributeCombination */
156 static int hf_x509if_and_item
= -1; /* AttributeCombination */
157 static int hf_x509if_or
= -1; /* SEQUENCE_OF_AttributeCombination */
158 static int hf_x509if_or_item
= -1; /* AttributeCombination */
159 static int hf_x509if_not
= -1; /* AttributeCombination */
160 static int hf_x509if_attributeType_02
= -1; /* T_attributeType_01 */
161 static int hf_x509if_outputValues
= -1; /* T_outputValues */
162 static int hf_x509if_selectedValues
= -1; /* T_selectedValues */
163 static int hf_x509if_selectedValues_item
= -1; /* T_selectedValues_item */
164 static int hf_x509if_matchedValuesOnly
= -1; /* NULL */
165 static int hf_x509if_contexts_01
= -1; /* SEQUENCE_SIZE_1_MAX_OF_ContextProfile */
166 static int hf_x509if_serviceControls
= -1; /* ServiceControlOptions */
167 static int hf_x509if_searchOptions
= -1; /* SearchControlOptions */
168 static int hf_x509if_hierarchyOptions
= -1; /* HierarchySelections */
169 static int hf_x509if_default
= -1; /* INTEGER */
170 static int hf_x509if_max
= -1; /* INTEGER */
171 static int hf_x509if_basic
= -1; /* MRMapping */
172 static int hf_x509if_tightenings
= -1; /* SEQUENCE_SIZE_1_MAX_OF_MRMapping */
173 static int hf_x509if_tightenings_item
= -1; /* MRMapping */
174 static int hf_x509if_relaxations
= -1; /* SEQUENCE_SIZE_1_MAX_OF_MRMapping */
175 static int hf_x509if_relaxations_item
= -1; /* MRMapping */
176 static int hf_x509if_maximum_relaxation
= -1; /* INTEGER */
177 static int hf_x509if_minimum_relaxation
= -1; /* INTEGER */
178 static int hf_x509if_mapping
= -1; /* SEQUENCE_SIZE_1_MAX_OF_Mapping */
179 static int hf_x509if_mapping_item
= -1; /* Mapping */
180 static int hf_x509if_substitution
= -1; /* SEQUENCE_SIZE_1_MAX_OF_MRSubstitution */
181 static int hf_x509if_substitution_item
= -1; /* MRSubstitution */
182 static int hf_x509if_mappingFunction
= -1; /* OBJECT_IDENTIFIER */
183 static int hf_x509if_level
= -1; /* INTEGER */
184 static int hf_x509if_oldMatchingRule
= -1; /* OBJECT_IDENTIFIER */
185 static int hf_x509if_newMatchingRule
= -1; /* OBJECT_IDENTIFIER */
186 static int hf_x509if_base
= -1; /* LocalName */
187 static int hf_x509if_specificExclusions
= -1; /* T_specificExclusions */
188 static int hf_x509if_specificExclusions_item
= -1; /* T_specificExclusions_item */
189 static int hf_x509if_specificationFilter
= -1; /* Refinement */
190 static int hf_x509if_serviceType
= -1; /* OBJECT_IDENTIFIER */
191 static int hf_x509if_userClass
= -1; /* INTEGER */
192 static int hf_x509if_inputAttributeTypes
= -1; /* SEQUENCE_SIZE_0_MAX_OF_RequestAttribute */
193 static int hf_x509if_inputAttributeTypes_item
= -1; /* RequestAttribute */
194 static int hf_x509if_attributeCombination
= -1; /* AttributeCombination */
195 static int hf_x509if_outputAttributeTypes
= -1; /* SEQUENCE_SIZE_1_MAX_OF_ResultAttribute */
196 static int hf_x509if_outputAttributeTypes_item
= -1; /* ResultAttribute */
197 static int hf_x509if_defaultControls
= -1; /* ControlOptions */
198 static int hf_x509if_mandatoryControls
= -1; /* ControlOptions */
199 static int hf_x509if_searchRuleControls
= -1; /* ControlOptions */
200 static int hf_x509if_familyGrouping
= -1; /* FamilyGrouping */
201 static int hf_x509if_familyReturn
= -1; /* FamilyReturn */
202 static int hf_x509if_relaxation
= -1; /* RelaxationPolicy */
203 static int hf_x509if_additionalControl
= -1; /* SEQUENCE_SIZE_1_MAX_OF_AttributeType */
204 static int hf_x509if_additionalControl_item
= -1; /* AttributeType */
205 static int hf_x509if_allowedSubset
= -1; /* AllowedSubset */
206 static int hf_x509if_imposedSubset
= -1; /* ImposedSubset */
207 static int hf_x509if_entryLimit
= -1; /* EntryLimit */
208 static int hf_x509if_name
= -1; /* SET_SIZE_1_MAX_OF_DirectoryString */
209 static int hf_x509if_name_item
= -1; /* DirectoryString */
210 static int hf_x509if_description
= -1; /* DirectoryString */
212 static int hf_x509if_AllowedSubset_baseObject
= -1;
213 static int hf_x509if_AllowedSubset_oneLevel
= -1;
214 static int hf_x509if_AllowedSubset_wholeSubtree
= -1;
216 /*--- End of included file: packet-x509if-hf.c ---*/
217 #line 50 "../../asn1/x509if/packet-x509if-template.c"
219 /* Initialize the subtree pointers */
221 /*--- Included file: packet-x509if-ett.c ---*/
222 #line 1 "../../asn1/x509if/packet-x509if-ett.c"
223 static gint ett_x509if_Attribute
= -1;
224 static gint ett_x509if_T_values
= -1;
225 static gint ett_x509if_T_valuesWithContext
= -1;
226 static gint ett_x509if_T_valuesWithContext_item
= -1;
227 static gint ett_x509if_SET_SIZE_1_MAX_OF_Context
= -1;
228 static gint ett_x509if_Context
= -1;
229 static gint ett_x509if_T_contextValues
= -1;
230 static gint ett_x509if_AttributeValueAssertion
= -1;
231 static gint ett_x509if_T_assertedContexts
= -1;
232 static gint ett_x509if_SET_SIZE_1_MAX_OF_ContextAssertion
= -1;
233 static gint ett_x509if_ContextAssertion
= -1;
234 static gint ett_x509if_T_ca_contextValues
= -1;
235 static gint ett_x509if_AttributeTypeAssertion
= -1;
236 static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextAssertion
= -1;
237 static gint ett_x509if_Name
= -1;
238 static gint ett_x509if_RDNSequence
= -1;
239 static gint ett_x509if_RelativeDistinguishedName
= -1;
240 static gint ett_x509if_AttributeTypeAndDistinguishedValue
= -1;
241 static gint ett_x509if_T_valWithContext
= -1;
242 static gint ett_x509if_T_valWithContext_item
= -1;
243 static gint ett_x509if_SubtreeSpecification
= -1;
244 static gint ett_x509if_ChopSpecification
= -1;
245 static gint ett_x509if_T_chopSpecificExclusions
= -1;
246 static gint ett_x509if_T_chopSpecificExclusions_item
= -1;
247 static gint ett_x509if_Refinement
= -1;
248 static gint ett_x509if_SET_OF_Refinement
= -1;
249 static gint ett_x509if_DITStructureRule
= -1;
250 static gint ett_x509if_SET_SIZE_1_MAX_OF_RuleIdentifier
= -1;
251 static gint ett_x509if_DITContentRule
= -1;
252 static gint ett_x509if_T_auxiliaries
= -1;
253 static gint ett_x509if_T_mandatory
= -1;
254 static gint ett_x509if_T_optional
= -1;
255 static gint ett_x509if_T_precluded
= -1;
256 static gint ett_x509if_DITContextUse
= -1;
257 static gint ett_x509if_T_mandatoryContexts
= -1;
258 static gint ett_x509if_T_optionalContexts
= -1;
259 static gint ett_x509if_SearchRuleDescription
= -1;
260 static gint ett_x509if_SearchRule
= -1;
261 static gint ett_x509if_SearchRuleId
= -1;
262 static gint ett_x509if_AllowedSubset
= -1;
263 static gint ett_x509if_RequestAttribute
= -1;
264 static gint ett_x509if_T_ra_selectedValues
= -1;
265 static gint ett_x509if_T_defaultValues
= -1;
266 static gint ett_x509if_T_defaultValues_item
= -1;
267 static gint ett_x509if_T_ra_values
= -1;
268 static gint ett_x509if_SEQUENCE_SIZE_0_MAX_OF_ContextProfile
= -1;
269 static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MatchingUse
= -1;
270 static gint ett_x509if_ContextProfile
= -1;
271 static gint ett_x509if_T_contextValue
= -1;
272 static gint ett_x509if_ContextCombination
= -1;
273 static gint ett_x509if_SEQUENCE_OF_ContextCombination
= -1;
274 static gint ett_x509if_MatchingUse
= -1;
275 static gint ett_x509if_AttributeCombination
= -1;
276 static gint ett_x509if_SEQUENCE_OF_AttributeCombination
= -1;
277 static gint ett_x509if_ResultAttribute
= -1;
278 static gint ett_x509if_T_outputValues
= -1;
279 static gint ett_x509if_T_selectedValues
= -1;
280 static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextProfile
= -1;
281 static gint ett_x509if_ControlOptions
= -1;
282 static gint ett_x509if_EntryLimit
= -1;
283 static gint ett_x509if_RelaxationPolicy
= -1;
284 static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MRMapping
= -1;
285 static gint ett_x509if_MRMapping
= -1;
286 static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_Mapping
= -1;
287 static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MRSubstitution
= -1;
288 static gint ett_x509if_Mapping
= -1;
289 static gint ett_x509if_MRSubstitution
= -1;
290 static gint ett_x509if_T_specificExclusions
= -1;
291 static gint ett_x509if_T_specificExclusions_item
= -1;
292 static gint ett_x509if_SEQUENCE_SIZE_0_MAX_OF_RequestAttribute
= -1;
293 static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ResultAttribute
= -1;
294 static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_AttributeType
= -1;
295 static gint ett_x509if_SET_SIZE_1_MAX_OF_DirectoryString
= -1;
297 /*--- End of included file: packet-x509if-ett.c ---*/
298 #line 53 "../../asn1/x509if/packet-x509if-template.c"
300 static proto_tree
*top_of_dn
= NULL
;
301 static proto_tree
*top_of_rdn
= NULL
;
303 static gboolean rdn_one_value
= FALSE
; /* have we seen one value in an RDN yet */
304 static gboolean dn_one_rdn
= FALSE
; /* have we seen one RDN in a DN yet */
305 static gboolean doing_attr
= FALSE
;
307 #define MAX_RDN_STR_LEN 64
308 #define MAX_DN_STR_LEN (20 * MAX_RDN_STR_LEN)
310 static char *last_dn
= NULL
;
311 static char *last_rdn
= NULL
;
313 static int ava_hf_index
;
314 #define MAX_FMT_VALS 32
315 static value_string fmt_vals
[MAX_FMT_VALS
];
316 #define MAX_AVA_STR_LEN 64
317 static char *last_ava
= NULL
;
320 x509if_frame_end(void)
325 rdn_one_value
= FALSE
;
335 /*--- Included file: packet-x509if-fn.c ---*/
336 #line 1 "../../asn1/x509if/packet-x509if-fn.c"
337 /*--- Cyclic dependencies ---*/
339 /* Refinement -> Refinement/and -> Refinement */
340 /* Refinement -> Refinement */
341 int dissect_x509if_Refinement(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
);
343 /* ContextCombination -> ContextCombination/and -> ContextCombination */
344 /* ContextCombination -> ContextCombination */
345 int dissect_x509if_ContextCombination(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
);
347 /* AttributeCombination -> AttributeCombination/and -> AttributeCombination */
348 /* AttributeCombination -> AttributeCombination */
349 int dissect_x509if_AttributeCombination(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
);
355 dissect_x509if_T_type(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
356 offset
= dissect_ber_object_identifier_str(implicit_tag
, actx
, tree
, tvb
, offset
, hf_x509if_object_identifier_id
, &actx
->external
.direct_reference
);
364 dissect_x509if_T_values_item(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
365 #line 315 "../../asn1/x509if/x509if.cnf"
366 offset
=call_ber_oid_callback(actx
->external
.direct_reference
, tvb
, offset
, actx
->pinfo
, tree
, NULL
);
374 static const ber_sequence_t T_values_set_of
[1] = {
375 { &hf_x509if_values_item
, BER_CLASS_ANY
, 0, BER_FLAGS_NOOWNTAG
, dissect_x509if_T_values_item
},
379 dissect_x509if_T_values(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
380 offset
= dissect_ber_set_of(implicit_tag
, actx
, tree
, tvb
, offset
,
381 T_values_set_of
, hf_index
, ett_x509if_T_values
);
389 dissect_x509if_T_value(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
390 #line 285 "../../asn1/x509if/x509if.cnf"
391 offset
=call_ber_oid_callback("unknown", tvb
, offset
, actx
->pinfo
, tree
, NULL
);
401 dissect_x509if_T_contextType(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
402 offset
= dissect_ber_object_identifier_str(implicit_tag
, actx
, tree
, tvb
, offset
, hf_x509if_object_identifier_id
, &actx
->external
.direct_reference
);
410 dissect_x509if_T_contextValues_item(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
411 #line 297 "../../asn1/x509if/x509if.cnf"
412 offset
=call_ber_oid_callback(actx
->external
.direct_reference
, tvb
, offset
, actx
->pinfo
, tree
, NULL
);
420 static const ber_sequence_t T_contextValues_set_of
[1] = {
421 { &hf_x509if_contextValues_item
, BER_CLASS_ANY
, 0, BER_FLAGS_NOOWNTAG
, dissect_x509if_T_contextValues_item
},
425 dissect_x509if_T_contextValues(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
426 offset
= dissect_ber_set_of(implicit_tag
, actx
, tree
, tvb
, offset
,
427 T_contextValues_set_of
, hf_index
, ett_x509if_T_contextValues
);
435 dissect_x509if_BOOLEAN(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
436 offset
= dissect_ber_boolean(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
, NULL
);
442 static const ber_sequence_t Context_sequence
[] = {
443 { &hf_x509if_contextType
, BER_CLASS_UNI
, BER_UNI_TAG_OID
, BER_FLAGS_NOOWNTAG
, dissect_x509if_T_contextType
},
444 { &hf_x509if_contextValues
, BER_CLASS_UNI
, BER_UNI_TAG_SET
, BER_FLAGS_NOOWNTAG
, dissect_x509if_T_contextValues
},
445 { &hf_x509if_fallback
, BER_CLASS_UNI
, BER_UNI_TAG_BOOLEAN
, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOOWNTAG
, dissect_x509if_BOOLEAN
},
446 { NULL
, 0, 0, 0, NULL
}
450 dissect_x509if_Context(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
451 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
452 Context_sequence
, hf_index
, ett_x509if_Context
);
458 static const ber_sequence_t SET_SIZE_1_MAX_OF_Context_set_of
[1] = {
459 { &hf_x509if_contextList_item
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_NOOWNTAG
, dissect_x509if_Context
},
463 dissect_x509if_SET_SIZE_1_MAX_OF_Context(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
464 offset
= dissect_ber_set_of(implicit_tag
, actx
, tree
, tvb
, offset
,
465 SET_SIZE_1_MAX_OF_Context_set_of
, hf_index
, ett_x509if_SET_SIZE_1_MAX_OF_Context
);
471 static const ber_sequence_t T_valuesWithContext_item_sequence
[] = {
472 { &hf_x509if_value
, BER_CLASS_ANY
, 0, BER_FLAGS_NOOWNTAG
, dissect_x509if_T_value
},
473 { &hf_x509if_contextList
, BER_CLASS_UNI
, BER_UNI_TAG_SET
, BER_FLAGS_NOOWNTAG
, dissect_x509if_SET_SIZE_1_MAX_OF_Context
},
474 { NULL
, 0, 0, 0, NULL
}
478 dissect_x509if_T_valuesWithContext_item(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
479 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
480 T_valuesWithContext_item_sequence
, hf_index
, ett_x509if_T_valuesWithContext_item
);
486 static const ber_sequence_t T_valuesWithContext_set_of
[1] = {
487 { &hf_x509if_valuesWithContext_item
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_NOOWNTAG
, dissect_x509if_T_valuesWithContext_item
},
491 dissect_x509if_T_valuesWithContext(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
492 offset
= dissect_ber_set_of(implicit_tag
, actx
, tree
, tvb
, offset
,
493 T_valuesWithContext_set_of
, hf_index
, ett_x509if_T_valuesWithContext
);
499 static const ber_sequence_t Attribute_sequence
[] = {
500 { &hf_x509if_type
, BER_CLASS_UNI
, BER_UNI_TAG_OID
, BER_FLAGS_NOOWNTAG
, dissect_x509if_T_type
},
501 { &hf_x509if_values
, BER_CLASS_UNI
, BER_UNI_TAG_SET
, BER_FLAGS_NOOWNTAG
, dissect_x509if_T_values
},
502 { &hf_x509if_valuesWithContext
, BER_CLASS_UNI
, BER_UNI_TAG_SET
, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOOWNTAG
, dissect_x509if_T_valuesWithContext
},
503 { NULL
, 0, 0, 0, NULL
}
507 dissect_x509if_Attribute(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
508 #line 417 "../../asn1/x509if/x509if.cnf"
510 register_frame_end_routine (actx
->pinfo
, x509if_frame_end
);
512 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
513 Attribute_sequence
, hf_index
, ett_x509if_Attribute
);
523 dissect_x509if_AttributeType(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
524 offset
= dissect_ber_object_identifier_str(implicit_tag
, actx
, tree
, tvb
, offset
, hf_x509if_object_identifier_id
, &actx
->external
.direct_reference
);
532 dissect_x509if_AttributeValue(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
533 #line 303 "../../asn1/x509if/x509if.cnf"
534 offset
=call_ber_oid_callback(actx
->external
.direct_reference
, tvb
, offset
, actx
->pinfo
, tree
, NULL
);
544 dissect_x509if_T_type_01(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
545 offset
= dissect_ber_object_identifier_str(implicit_tag
, actx
, tree
, tvb
, offset
, hf_x509if_object_identifier_id
, &actx
->external
.direct_reference
);
553 dissect_x509if_T_assertion(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
554 #line 309 "../../asn1/x509if/x509if.cnf"
555 offset
=call_ber_oid_callback(actx
->external
.direct_reference
, tvb
, offset
, actx
->pinfo
, tree
, NULL
);
565 dissect_x509if_NULL(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
566 offset
= dissect_ber_null(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
);
574 dissect_x509if_T_ca_contextType(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
575 offset
= dissect_ber_object_identifier_str(implicit_tag
, actx
, tree
, tvb
, offset
, hf_x509if_object_identifier_id
, &actx
->external
.direct_reference
);
583 dissect_x509if_T_ca_contextValues_item(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
584 #line 186 "../../asn1/x509if/x509if.cnf"
585 offset
=call_ber_oid_callback(actx
->external
.direct_reference
, tvb
, offset
, actx
->pinfo
, tree
, NULL
);
593 static const ber_sequence_t T_ca_contextValues_set_of
[1] = {
594 { &hf_x509if_ca_contextValues_item
, BER_CLASS_ANY
, 0, BER_FLAGS_NOOWNTAG
, dissect_x509if_T_ca_contextValues_item
},
598 dissect_x509if_T_ca_contextValues(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
599 offset
= dissect_ber_set_of(implicit_tag
, actx
, tree
, tvb
, offset
,
600 T_ca_contextValues_set_of
, hf_index
, ett_x509if_T_ca_contextValues
);
606 static const ber_sequence_t ContextAssertion_sequence
[] = {
607 { &hf_x509if_ca_contextType
, BER_CLASS_UNI
, BER_UNI_TAG_OID
, BER_FLAGS_NOOWNTAG
, dissect_x509if_T_ca_contextType
},
608 { &hf_x509if_ca_contextValues
, BER_CLASS_UNI
, BER_UNI_TAG_SET
, BER_FLAGS_NOOWNTAG
, dissect_x509if_T_ca_contextValues
},
609 { NULL
, 0, 0, 0, NULL
}
613 dissect_x509if_ContextAssertion(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
614 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
615 ContextAssertion_sequence
, hf_index
, ett_x509if_ContextAssertion
);
621 static const ber_sequence_t SET_SIZE_1_MAX_OF_ContextAssertion_set_of
[1] = {
622 { &hf_x509if_selectedContexts_item
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_NOOWNTAG
, dissect_x509if_ContextAssertion
},
626 dissect_x509if_SET_SIZE_1_MAX_OF_ContextAssertion(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
627 offset
= dissect_ber_set_of(implicit_tag
, actx
, tree
, tvb
, offset
,
628 SET_SIZE_1_MAX_OF_ContextAssertion_set_of
, hf_index
, ett_x509if_SET_SIZE_1_MAX_OF_ContextAssertion
);
634 static const value_string x509if_T_assertedContexts_vals
[] = {
635 { 0, "allContexts" },
636 { 1, "selectedContexts" },
640 static const ber_choice_t T_assertedContexts_choice
[] = {
641 { 0, &hf_x509if_allContexts
, BER_CLASS_CON
, 0, 0, dissect_x509if_NULL
},
642 { 1, &hf_x509if_selectedContexts
, BER_CLASS_CON
, 1, 0, dissect_x509if_SET_SIZE_1_MAX_OF_ContextAssertion
},
643 { 0, NULL
, 0, 0, 0, NULL
}
647 dissect_x509if_T_assertedContexts(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
648 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
649 T_assertedContexts_choice
, hf_index
, ett_x509if_T_assertedContexts
,
656 static const ber_sequence_t AttributeValueAssertion_sequence
[] = {
657 { &hf_x509if_type_01
, BER_CLASS_UNI
, BER_UNI_TAG_OID
, BER_FLAGS_NOOWNTAG
, dissect_x509if_T_type_01
},
658 { &hf_x509if_assertion
, BER_CLASS_ANY
, 0, BER_FLAGS_NOOWNTAG
, dissect_x509if_T_assertion
},
659 { &hf_x509if_assertedContexts
, BER_CLASS_ANY
/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOOWNTAG
|BER_FLAGS_NOTCHKTAG
, dissect_x509if_T_assertedContexts
},
660 { NULL
, 0, 0, 0, NULL
}
664 dissect_x509if_AttributeValueAssertion(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
665 #line 407 "../../asn1/x509if/x509if.cnf"
667 ava_hf_index
= hf_index
;
668 last_ava
= (char *)wmem_alloc(wmem_packet_scope(), MAX_AVA_STR_LEN
); *last_ava
= '\0';
669 register_frame_end_routine (actx
->pinfo
, x509if_frame_end
);
671 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
672 AttributeValueAssertion_sequence
, hf_index
, ett_x509if_AttributeValueAssertion
);
685 dissect_x509if_OBJECT_IDENTIFIER(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
686 offset
= dissect_ber_object_identifier(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
, NULL
);
692 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_ContextAssertion_sequence_of
[1] = {
693 { &hf_x509if_ata_assertedContexts_item
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_NOOWNTAG
, dissect_x509if_ContextAssertion
},
697 dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextAssertion(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
698 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
699 SEQUENCE_SIZE_1_MAX_OF_ContextAssertion_sequence_of
, hf_index
, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextAssertion
);
705 static const ber_sequence_t AttributeTypeAssertion_sequence
[] = {
706 { &hf_x509if_type_02
, BER_CLASS_UNI
, BER_UNI_TAG_OID
, BER_FLAGS_NOOWNTAG
, dissect_x509if_OBJECT_IDENTIFIER
},
707 { &hf_x509if_ata_assertedContexts
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOOWNTAG
, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextAssertion
},
708 { NULL
, 0, 0, 0, NULL
}
712 dissect_x509if_AttributeTypeAssertion(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
713 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
714 AttributeTypeAssertion_sequence
, hf_index
, ett_x509if_AttributeTypeAssertion
);
722 dissect_x509if_T_type_02(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
723 #line 192 "../../asn1/x509if/x509if.cnf"
727 offset
= dissect_ber_object_identifier_str(implicit_tag
, actx
, tree
, tvb
, offset
, hf_x509if_object_identifier_id
, &actx
->external
.direct_reference
);
730 if(actx
->external
.direct_reference
) {
731 /* see if we can find a nice name */
732 name
= oid_resolved_from_string(actx
->external
.direct_reference
);
733 if(!name
) name
= actx
->external
.direct_reference
;
735 if(last_rdn
) { /* append it to the RDN */
736 g_strlcat(last_rdn
, name
, MAX_RDN_STR_LEN
);
737 g_strlcat(last_rdn
, "=", MAX_RDN_STR_LEN
);
739 /* append it to the tree */
740 proto_item_append_text(tree
, " (%s=", name
);
741 } else if(doing_attr
) {
742 /* append it to the parent item */
743 proto_item_append_text(tree
, " (%s)", name
);
746 if((fmt
= val_to_str(hf_index
, fmt_vals
, "")) && *fmt
) {
747 /* we have a format */
748 last_ava
= (char *)wmem_alloc(wmem_packet_scope(), MAX_AVA_STR_LEN
); *last_ava
= '\0';
749 register_frame_end_routine (actx
->pinfo
, x509if_frame_end
);
751 g_snprintf(last_ava
, MAX_AVA_STR_LEN
, "%s %s", name
, fmt
);
753 proto_item_append_text(tree
, " %s", last_ava
);
766 dissect_x509if_T_atadv_value(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
767 #line 226 "../../asn1/x509if/x509if.cnf"
768 int old_offset
= offset
;
772 const char *name
= NULL
;
773 const char *orig_oid
= actx
->external
.direct_reference
;
775 offset
=call_ber_oid_callback(actx
->external
.direct_reference
, tvb
, offset
, actx
->pinfo
, tree
, NULL
);
777 /* in dissecting the value we may have overridden the OID of the value - which is
778 a problem if there are multiple values */
779 actx
->external
.direct_reference
= orig_oid
;
781 /* try and dissect as a string */
782 dissect_ber_octet_string(FALSE
, actx
, NULL
, tvb
, old_offset
, hf_x509if_any_string
, &out_tvb
);
784 /* should also try and dissect as an OID and integer */
785 /* of course, if I can look up the syntax .... */
788 /* it was a string - format it */
789 value
= tvb_format_text(out_tvb
, 0, tvb_length(out_tvb
));
792 g_strlcat(last_rdn
, value
, MAX_RDN_STR_LEN
);
794 /* append it to the tree*/
795 proto_item_append_text(tree
, "%s)", value
);
798 if((fmt
= val_to_str(ava_hf_index
, fmt_vals
, "")) && *fmt
) {
799 /* we have a format */
802 last_ava
= (char *)wmem_alloc(wmem_packet_scope(), MAX_AVA_STR_LEN
);
805 if(!(name
= oid_resolved_from_string(actx
->external
.direct_reference
)))
806 name
= actx
->external
.direct_reference
;
807 g_snprintf(last_ava
, MAX_AVA_STR_LEN
, "%s %s %s", name
, fmt
, value
);
809 proto_item_append_text(tree
, " %s", last_ava
);
822 dissect_x509if_T_distingAttrValue(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
823 #line 330 "../../asn1/x509if/x509if.cnf"
824 offset
=call_ber_oid_callback(actx
->external
.direct_reference
, tvb
, offset
, actx
->pinfo
, tree
, NULL
);
832 static const ber_sequence_t T_valWithContext_item_sequence
[] = {
833 { &hf_x509if_distingAttrValue
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
, dissect_x509if_T_distingAttrValue
},
834 { &hf_x509if_contextList
, BER_CLASS_UNI
, BER_UNI_TAG_SET
, BER_FLAGS_NOOWNTAG
, dissect_x509if_SET_SIZE_1_MAX_OF_Context
},
835 { NULL
, 0, 0, 0, NULL
}
839 dissect_x509if_T_valWithContext_item(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
840 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
841 T_valWithContext_item_sequence
, hf_index
, ett_x509if_T_valWithContext_item
);
847 static const ber_sequence_t T_valWithContext_set_of
[1] = {
848 { &hf_x509if_valueswithContext_item
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_NOOWNTAG
, dissect_x509if_T_valWithContext_item
},
852 dissect_x509if_T_valWithContext(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
853 offset
= dissect_ber_set_of(implicit_tag
, actx
, tree
, tvb
, offset
,
854 T_valWithContext_set_of
, hf_index
, ett_x509if_T_valWithContext
);
860 static const ber_sequence_t AttributeTypeAndDistinguishedValue_sequence
[] = {
861 { &hf_x509if_type_03
, BER_CLASS_UNI
, BER_UNI_TAG_OID
, BER_FLAGS_NOOWNTAG
, dissect_x509if_T_type_02
},
862 { &hf_x509if_atadv_value
, BER_CLASS_ANY
, 0, BER_FLAGS_NOOWNTAG
, dissect_x509if_T_atadv_value
},
863 { &hf_x509if_primaryDistinguished
, BER_CLASS_UNI
, BER_UNI_TAG_BOOLEAN
, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOOWNTAG
, dissect_x509if_BOOLEAN
},
864 { &hf_x509if_valueswithContext
, BER_CLASS_UNI
, BER_UNI_TAG_SET
, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOOWNTAG
, dissect_x509if_T_valWithContext
},
865 { NULL
, 0, 0, 0, NULL
}
869 dissect_x509if_AttributeTypeAndDistinguishedValue(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
870 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
871 AttributeTypeAndDistinguishedValue_sequence
, hf_index
, ett_x509if_AttributeTypeAndDistinguishedValue
);
879 dissect_x509if_RelativeDistinguishedName_item(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
880 #line 360 "../../asn1/x509if/x509if.cnf"
887 /* this is an additional value - delimit */
888 g_strlcat(last_rdn
, "+", MAX_RDN_STR_LEN
);
891 offset
= dissect_x509if_AttributeTypeAndDistinguishedValue(implicit_tag
, tvb
, offset
, actx
, tree
, hf_index
);
894 rdn_one_value
= TRUE
;
902 static const ber_sequence_t RelativeDistinguishedName_set_of
[1] = {
903 { &hf_x509if_RelativeDistinguishedName_item
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_NOOWNTAG
, dissect_x509if_RelativeDistinguishedName_item
},
907 dissect_x509if_RelativeDistinguishedName(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
908 #line 333 "../../asn1/x509if/x509if.cnf"
911 rdn_one_value
= FALSE
;
913 last_rdn
= (char *)wmem_alloc(wmem_packet_scope(), MAX_DN_STR_LEN
); *last_rdn
= '\0';
914 register_frame_end_routine (actx
->pinfo
, x509if_frame_end
);
916 offset
= dissect_ber_set_of(implicit_tag
, actx
, tree
, tvb
, offset
,
917 RelativeDistinguishedName_set_of
, hf_index
, ett_x509if_RelativeDistinguishedName
);
920 /* we've finished - close the bracket */
921 proto_item_append_text(top_of_rdn
, " (%s)", last_rdn
);
923 /* now append this to the DN */
926 temp_dn
= (char *)wmem_alloc(wmem_packet_scope(), MAX_DN_STR_LEN
); /* is there a better way to use ep_alloc here ? */
927 g_snprintf(temp_dn
, MAX_DN_STR_LEN
, "%s,%s", last_rdn
, last_dn
);
929 g_strlcat(last_dn
, temp_dn
, MAX_DN_STR_LEN
);
931 g_strlcat(last_dn
, last_rdn
, MAX_DN_STR_LEN
);
935 last_rdn
= NULL
; /* it will get freed when the next packet is dissected */
945 dissect_x509if_RDNSequence_item(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
946 #line 396 "../../asn1/x509if/x509if.cnf"
949 /* this is the first element - record the top */
953 offset
= dissect_x509if_RelativeDistinguishedName(implicit_tag
, tvb
, offset
, actx
, tree
, hf_index
);
964 static const ber_sequence_t RDNSequence_sequence_of
[1] = {
965 { &hf_x509if_RDNSequence_item
, BER_CLASS_UNI
, BER_UNI_TAG_SET
, BER_FLAGS_NOOWNTAG
, dissect_x509if_RDNSequence_item
},
969 dissect_x509if_RDNSequence(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
970 #line 375 "../../asn1/x509if/x509if.cnf"
973 dn_one_rdn
= FALSE
; /* reset */
974 last_dn
= (char *)wmem_alloc(wmem_packet_scope(), MAX_DN_STR_LEN
); *last_dn
= '\0';
976 register_frame_end_routine (actx
->pinfo
, x509if_frame_end
);
979 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
980 RDNSequence_sequence_of
, hf_index
, ett_x509if_RDNSequence
);
983 /* we've finished - append the dn */
984 proto_item_append_text(top_of_dn
, " (%s)", last_dn
);
986 /* see if we should append this to the col info */
987 if((fmt
= val_to_str(hf_index
, fmt_vals
, "")) && *fmt
) {
988 /* we have a format */
989 col_append_fstr(actx
->pinfo
->cinfo
, COL_INFO
, " %s%s", fmt
, last_dn
);
999 const value_string x509if_Name_vals
[] = {
1000 { 0, "rdnSequence" },
1004 static const ber_choice_t Name_choice
[] = {
1005 { 0, &hf_x509if_rdnSequence
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_NOOWNTAG
, dissect_x509if_RDNSequence
},
1006 { 0, NULL
, 0, 0, 0, NULL
}
1010 dissect_x509if_Name(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1011 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
1012 Name_choice
, hf_index
, ett_x509if_Name
,
1021 dissect_x509if_DistinguishedName(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1022 offset
= dissect_x509if_RDNSequence(implicit_tag
, tvb
, offset
, actx
, tree
, hf_index
);
1030 dissect_x509if_LocalName(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1031 offset
= dissect_x509if_RDNSequence(implicit_tag
, tvb
, offset
, actx
, tree
, hf_index
);
1037 static const value_string x509if_T_specificExclusions_item_vals
[] = {
1038 { 0, "chopBefore" },
1043 static const ber_choice_t T_specificExclusions_item_choice
[] = {
1044 { 0, &hf_x509if_chopBefore
, BER_CLASS_CON
, 0, 0, dissect_x509if_LocalName
},
1045 { 1, &hf_x509if_chopAfter
, BER_CLASS_CON
, 1, 0, dissect_x509if_LocalName
},
1046 { 0, NULL
, 0, 0, 0, NULL
}
1050 dissect_x509if_T_specificExclusions_item(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1051 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
1052 T_specificExclusions_item_choice
, hf_index
, ett_x509if_T_specificExclusions_item
,
1059 static const ber_sequence_t T_specificExclusions_set_of
[1] = {
1060 { &hf_x509if_specificExclusions_item
, BER_CLASS_ANY
/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG
|BER_FLAGS_NOTCHKTAG
, dissect_x509if_T_specificExclusions_item
},
1064 dissect_x509if_T_specificExclusions(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1065 offset
= dissect_ber_set_of(implicit_tag
, actx
, tree
, tvb
, offset
,
1066 T_specificExclusions_set_of
, hf_index
, ett_x509if_T_specificExclusions
);
1074 dissect_x509if_BaseDistance(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1075 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
1082 static const ber_sequence_t SET_OF_Refinement_set_of
[1] = {
1083 { &hf_x509if_refinement_and_item
, BER_CLASS_ANY
/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG
|BER_FLAGS_NOTCHKTAG
, dissect_x509if_Refinement
},
1087 dissect_x509if_SET_OF_Refinement(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1088 offset
= dissect_ber_set_of(implicit_tag
, actx
, tree
, tvb
, offset
,
1089 SET_OF_Refinement_set_of
, hf_index
, ett_x509if_SET_OF_Refinement
);
1095 const value_string x509if_Refinement_vals
[] = {
1103 static const ber_choice_t Refinement_choice
[] = {
1104 { 0, &hf_x509if_item
, BER_CLASS_CON
, 0, 0, dissect_x509if_OBJECT_IDENTIFIER
},
1105 { 1, &hf_x509if_refinement_and
, BER_CLASS_CON
, 1, 0, dissect_x509if_SET_OF_Refinement
},
1106 { 2, &hf_x509if_refinement_or
, BER_CLASS_CON
, 2, 0, dissect_x509if_SET_OF_Refinement
},
1107 { 3, &hf_x509if_refinement_not
, BER_CLASS_CON
, 3, 0, dissect_x509if_Refinement
},
1108 { 0, NULL
, 0, 0, 0, NULL
}
1112 dissect_x509if_Refinement(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1113 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
1114 Refinement_choice
, hf_index
, ett_x509if_Refinement
,
1121 static const ber_sequence_t SubtreeSpecification_sequence
[] = {
1122 { &hf_x509if_base
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
, dissect_x509if_LocalName
},
1123 { &hf_x509if_specificExclusions
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
, dissect_x509if_T_specificExclusions
},
1124 { &hf_x509if_minimum
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
, dissect_x509if_BaseDistance
},
1125 { &hf_x509if_maximum
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
, dissect_x509if_BaseDistance
},
1126 { &hf_x509if_specificationFilter
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOTCHKTAG
, dissect_x509if_Refinement
},
1127 { NULL
, 0, 0, 0, NULL
}
1131 dissect_x509if_SubtreeSpecification(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1132 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1133 SubtreeSpecification_sequence
, hf_index
, ett_x509if_SubtreeSpecification
);
1139 static const value_string x509if_T_chopSpecificExclusions_item_vals
[] = {
1140 { 0, "chopBefore" },
1145 static const ber_choice_t T_chopSpecificExclusions_item_choice
[] = {
1146 { 0, &hf_x509if_chopBefore
, BER_CLASS_CON
, 0, 0, dissect_x509if_LocalName
},
1147 { 1, &hf_x509if_chopAfter
, BER_CLASS_CON
, 1, 0, dissect_x509if_LocalName
},
1148 { 0, NULL
, 0, 0, 0, NULL
}
1152 dissect_x509if_T_chopSpecificExclusions_item(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1153 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
1154 T_chopSpecificExclusions_item_choice
, hf_index
, ett_x509if_T_chopSpecificExclusions_item
,
1161 static const ber_sequence_t T_chopSpecificExclusions_set_of
[1] = {
1162 { &hf_x509if_chopSpecificExclusions_item
, BER_CLASS_ANY
/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG
|BER_FLAGS_NOTCHKTAG
, dissect_x509if_T_chopSpecificExclusions_item
},
1166 dissect_x509if_T_chopSpecificExclusions(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1167 offset
= dissect_ber_set_of(implicit_tag
, actx
, tree
, tvb
, offset
,
1168 T_chopSpecificExclusions_set_of
, hf_index
, ett_x509if_T_chopSpecificExclusions
);
1174 static const ber_sequence_t ChopSpecification_sequence
[] = {
1175 { &hf_x509if_chopSpecificExclusions
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
, dissect_x509if_T_chopSpecificExclusions
},
1176 { &hf_x509if_minimum
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
, dissect_x509if_BaseDistance
},
1177 { &hf_x509if_maximum
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
, dissect_x509if_BaseDistance
},
1178 { NULL
, 0, 0, 0, NULL
}
1182 dissect_x509if_ChopSpecification(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1183 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1184 ChopSpecification_sequence
, hf_index
, ett_x509if_ChopSpecification
);
1190 const value_string x509if_AttributeUsage_vals
[] = {
1191 { 0, "userApplications" },
1192 { 1, "directoryOperation" },
1193 { 2, "distributedOperation" },
1194 { 3, "dSAOperation" },
1200 dissect_x509if_AttributeUsage(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1201 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
1210 dissect_x509if_RuleIdentifier(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1211 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
1218 static const ber_sequence_t SET_SIZE_1_MAX_OF_RuleIdentifier_set_of
[1] = {
1219 { &hf_x509if_superiorStructureRules_item
, BER_CLASS_UNI
, BER_UNI_TAG_INTEGER
, BER_FLAGS_NOOWNTAG
, dissect_x509if_RuleIdentifier
},
1223 dissect_x509if_SET_SIZE_1_MAX_OF_RuleIdentifier(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1224 offset
= dissect_ber_set_of(implicit_tag
, actx
, tree
, tvb
, offset
,
1225 SET_SIZE_1_MAX_OF_RuleIdentifier_set_of
, hf_index
, ett_x509if_SET_SIZE_1_MAX_OF_RuleIdentifier
);
1231 static const ber_sequence_t DITStructureRule_sequence
[] = {
1232 { &hf_x509if_ruleIdentifier
, BER_CLASS_UNI
, BER_UNI_TAG_INTEGER
, BER_FLAGS_NOOWNTAG
, dissect_x509if_RuleIdentifier
},
1233 { &hf_x509if_nameForm
, BER_CLASS_UNI
, BER_UNI_TAG_OID
, BER_FLAGS_NOOWNTAG
, dissect_x509if_OBJECT_IDENTIFIER
},
1234 { &hf_x509if_superiorStructureRules
, BER_CLASS_UNI
, BER_UNI_TAG_SET
, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOOWNTAG
, dissect_x509if_SET_SIZE_1_MAX_OF_RuleIdentifier
},
1235 { NULL
, 0, 0, 0, NULL
}
1239 dissect_x509if_DITStructureRule(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1240 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1241 DITStructureRule_sequence
, hf_index
, ett_x509if_DITStructureRule
);
1247 static const ber_sequence_t T_auxiliaries_set_of
[1] = {
1248 { &hf_x509if_auxiliaries_item
, BER_CLASS_UNI
, BER_UNI_TAG_OID
, BER_FLAGS_NOOWNTAG
, dissect_x509if_OBJECT_IDENTIFIER
},
1252 dissect_x509if_T_auxiliaries(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1253 offset
= dissect_ber_set_of(implicit_tag
, actx
, tree
, tvb
, offset
,
1254 T_auxiliaries_set_of
, hf_index
, ett_x509if_T_auxiliaries
);
1260 static const ber_sequence_t T_mandatory_set_of
[1] = {
1261 { &hf_x509if_mandatory_item
, BER_CLASS_UNI
, BER_UNI_TAG_OID
, BER_FLAGS_NOOWNTAG
, dissect_x509if_OBJECT_IDENTIFIER
},
1265 dissect_x509if_T_mandatory(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1266 offset
= dissect_ber_set_of(implicit_tag
, actx
, tree
, tvb
, offset
,
1267 T_mandatory_set_of
, hf_index
, ett_x509if_T_mandatory
);
1273 static const ber_sequence_t T_optional_set_of
[1] = {
1274 { &hf_x509if_optional_item
, BER_CLASS_UNI
, BER_UNI_TAG_OID
, BER_FLAGS_NOOWNTAG
, dissect_x509if_OBJECT_IDENTIFIER
},
1278 dissect_x509if_T_optional(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1279 offset
= dissect_ber_set_of(implicit_tag
, actx
, tree
, tvb
, offset
,
1280 T_optional_set_of
, hf_index
, ett_x509if_T_optional
);
1286 static const ber_sequence_t T_precluded_set_of
[1] = {
1287 { &hf_x509if_precluded_item
, BER_CLASS_UNI
, BER_UNI_TAG_OID
, BER_FLAGS_NOOWNTAG
, dissect_x509if_OBJECT_IDENTIFIER
},
1291 dissect_x509if_T_precluded(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1292 offset
= dissect_ber_set_of(implicit_tag
, actx
, tree
, tvb
, offset
,
1293 T_precluded_set_of
, hf_index
, ett_x509if_T_precluded
);
1299 static const ber_sequence_t DITContentRule_sequence
[] = {
1300 { &hf_x509if_structuralObjectClass
, BER_CLASS_UNI
, BER_UNI_TAG_OID
, BER_FLAGS_NOOWNTAG
, dissect_x509if_OBJECT_IDENTIFIER
},
1301 { &hf_x509if_auxiliaries
, BER_CLASS_UNI
, BER_UNI_TAG_SET
, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOOWNTAG
, dissect_x509if_T_auxiliaries
},
1302 { &hf_x509if_mandatory
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
, dissect_x509if_T_mandatory
},
1303 { &hf_x509if_optional
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
, dissect_x509if_T_optional
},
1304 { &hf_x509if_precluded
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
, dissect_x509if_T_precluded
},
1305 { NULL
, 0, 0, 0, NULL
}
1309 dissect_x509if_DITContentRule(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1310 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1311 DITContentRule_sequence
, hf_index
, ett_x509if_DITContentRule
);
1317 static const ber_sequence_t T_mandatoryContexts_set_of
[1] = {
1318 { &hf_x509if_mandatoryContexts_item
, BER_CLASS_UNI
, BER_UNI_TAG_OID
, BER_FLAGS_NOOWNTAG
, dissect_x509if_OBJECT_IDENTIFIER
},
1322 dissect_x509if_T_mandatoryContexts(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1323 offset
= dissect_ber_set_of(implicit_tag
, actx
, tree
, tvb
, offset
,
1324 T_mandatoryContexts_set_of
, hf_index
, ett_x509if_T_mandatoryContexts
);
1330 static const ber_sequence_t T_optionalContexts_set_of
[1] = {
1331 { &hf_x509if_optionalContexts_item
, BER_CLASS_UNI
, BER_UNI_TAG_OID
, BER_FLAGS_NOOWNTAG
, dissect_x509if_OBJECT_IDENTIFIER
},
1335 dissect_x509if_T_optionalContexts(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1336 offset
= dissect_ber_set_of(implicit_tag
, actx
, tree
, tvb
, offset
,
1337 T_optionalContexts_set_of
, hf_index
, ett_x509if_T_optionalContexts
);
1343 static const ber_sequence_t DITContextUse_sequence
[] = {
1344 { &hf_x509if_attributeType
, BER_CLASS_UNI
, BER_UNI_TAG_OID
, BER_FLAGS_NOOWNTAG
, dissect_x509if_OBJECT_IDENTIFIER
},
1345 { &hf_x509if_mandatoryContexts
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
, dissect_x509if_T_mandatoryContexts
},
1346 { &hf_x509if_optionalContexts
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
, dissect_x509if_T_optionalContexts
},
1347 { NULL
, 0, 0, 0, NULL
}
1351 dissect_x509if_DITContextUse(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1352 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1353 DITContextUse_sequence
, hf_index
, ett_x509if_DITContextUse
);
1361 dissect_x509if_INTEGER(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1362 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
1371 dissect_x509if_T_attributeType(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1372 offset
= dissect_ber_object_identifier_str(implicit_tag
, actx
, tree
, tvb
, offset
, hf_x509if_object_identifier_id
, &actx
->external
.direct_reference
);
1380 dissect_x509if_T_ra_selectedValues_item(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1381 #line 276 "../../asn1/x509if/x509if.cnf"
1382 offset
=call_ber_oid_callback(actx
->external
.direct_reference
, tvb
, offset
, actx
->pinfo
, tree
, NULL
);
1390 static const ber_sequence_t T_ra_selectedValues_sequence_of
[1] = {
1391 { &hf_x509if_ra_selectedValues_item
, BER_CLASS_ANY
, 0, BER_FLAGS_NOOWNTAG
, dissect_x509if_T_ra_selectedValues_item
},
1395 dissect_x509if_T_ra_selectedValues(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1396 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
1397 T_ra_selectedValues_sequence_of
, hf_index
, ett_x509if_T_ra_selectedValues
);
1405 dissect_x509if_T_entryType(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1406 offset
= dissect_ber_object_identifier_str(implicit_tag
, actx
, tree
, tvb
, offset
, hf_x509if_object_identifier_id
, &actx
->external
.direct_reference
);
1414 dissect_x509if_T_ra_values_item(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1415 #line 282 "../../asn1/x509if/x509if.cnf"
1416 offset
=call_ber_oid_callback(actx
->external
.direct_reference
, tvb
, offset
, actx
->pinfo
, tree
, NULL
);
1424 static const ber_sequence_t T_ra_values_sequence_of
[1] = {
1425 { &hf_x509if_ra_values_item
, BER_CLASS_ANY
, 0, BER_FLAGS_NOOWNTAG
, dissect_x509if_T_ra_values_item
},
1429 dissect_x509if_T_ra_values(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1430 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
1431 T_ra_values_sequence_of
, hf_index
, ett_x509if_T_ra_values
);
1437 static const ber_sequence_t T_defaultValues_item_sequence
[] = {
1438 { &hf_x509if_entryType
, BER_CLASS_UNI
, BER_UNI_TAG_OID
, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOOWNTAG
, dissect_x509if_T_entryType
},
1439 { &hf_x509if_ra_values
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_NOOWNTAG
, dissect_x509if_T_ra_values
},
1440 { NULL
, 0, 0, 0, NULL
}
1444 dissect_x509if_T_defaultValues_item(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1445 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1446 T_defaultValues_item_sequence
, hf_index
, ett_x509if_T_defaultValues_item
);
1452 static const ber_sequence_t T_defaultValues_sequence_of
[1] = {
1453 { &hf_x509if_defaultValues_item
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_NOOWNTAG
, dissect_x509if_T_defaultValues_item
},
1457 dissect_x509if_T_defaultValues(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1458 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
1459 T_defaultValues_sequence_of
, hf_index
, ett_x509if_T_defaultValues
);
1467 dissect_x509if_T_contextType_01(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1468 offset
= dissect_ber_object_identifier_str(implicit_tag
, actx
, tree
, tvb
, offset
, hf_x509if_object_identifier_id
, &actx
->external
.direct_reference
);
1476 dissect_x509if_T_contextValue_item(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1477 #line 321 "../../asn1/x509if/x509if.cnf"
1478 offset
=call_ber_oid_callback(actx
->external
.direct_reference
, tvb
, offset
, actx
->pinfo
, tree
, NULL
);
1486 static const ber_sequence_t T_contextValue_sequence_of
[1] = {
1487 { &hf_x509if_contextValue_item
, BER_CLASS_ANY
, 0, BER_FLAGS_NOOWNTAG
, dissect_x509if_T_contextValue_item
},
1491 dissect_x509if_T_contextValue(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1492 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
1493 T_contextValue_sequence_of
, hf_index
, ett_x509if_T_contextValue
);
1499 static const ber_sequence_t ContextProfile_sequence
[] = {
1500 { &hf_x509if_contextType_01
, BER_CLASS_UNI
, BER_UNI_TAG_OID
, BER_FLAGS_NOOWNTAG
, dissect_x509if_T_contextType_01
},
1501 { &hf_x509if_contextValue
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOOWNTAG
, dissect_x509if_T_contextValue
},
1502 { NULL
, 0, 0, 0, NULL
}
1506 dissect_x509if_ContextProfile(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1507 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1508 ContextProfile_sequence
, hf_index
, ett_x509if_ContextProfile
);
1514 static const ber_sequence_t SEQUENCE_SIZE_0_MAX_OF_ContextProfile_sequence_of
[1] = {
1515 { &hf_x509if_contexts_item
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_NOOWNTAG
, dissect_x509if_ContextProfile
},
1519 dissect_x509if_SEQUENCE_SIZE_0_MAX_OF_ContextProfile(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1520 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
1521 SEQUENCE_SIZE_0_MAX_OF_ContextProfile_sequence_of
, hf_index
, ett_x509if_SEQUENCE_SIZE_0_MAX_OF_ContextProfile
);
1527 static const ber_sequence_t SEQUENCE_OF_ContextCombination_sequence_of
[1] = {
1528 { &hf_x509if_contextcombination_and_item
, BER_CLASS_ANY
/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG
|BER_FLAGS_NOTCHKTAG
, dissect_x509if_ContextCombination
},
1532 dissect_x509if_SEQUENCE_OF_ContextCombination(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1533 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
1534 SEQUENCE_OF_ContextCombination_sequence_of
, hf_index
, ett_x509if_SEQUENCE_OF_ContextCombination
);
1540 const value_string x509if_ContextCombination_vals
[] = {
1548 static const ber_choice_t ContextCombination_choice
[] = {
1549 { 0, &hf_x509if_context
, BER_CLASS_CON
, 0, 0, dissect_x509if_OBJECT_IDENTIFIER
},
1550 { 1, &hf_x509if_contextcombination_and
, BER_CLASS_CON
, 1, 0, dissect_x509if_SEQUENCE_OF_ContextCombination
},
1551 { 2, &hf_x509if_contextcombination_or
, BER_CLASS_CON
, 2, 0, dissect_x509if_SEQUENCE_OF_ContextCombination
},
1552 { 3, &hf_x509if_contextcombination_not
, BER_CLASS_CON
, 3, 0, dissect_x509if_ContextCombination
},
1553 { 0, NULL
, 0, 0, 0, NULL
}
1557 dissect_x509if_ContextCombination(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1558 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
1559 ContextCombination_choice
, hf_index
, ett_x509if_ContextCombination
,
1568 dissect_x509if_T_restrictionType(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1569 offset
= dissect_ber_object_identifier_str(implicit_tag
, actx
, tree
, tvb
, offset
, hf_x509if_object_identifier_id
, &actx
->external
.direct_reference
);
1577 dissect_x509if_T_restrictionValue(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1578 #line 327 "../../asn1/x509if/x509if.cnf"
1579 offset
=call_ber_oid_callback(actx
->external
.direct_reference
, tvb
, offset
, actx
->pinfo
, tree
, NULL
);
1587 static const ber_sequence_t MatchingUse_sequence
[] = {
1588 { &hf_x509if_restrictionType
, BER_CLASS_UNI
, BER_UNI_TAG_OID
, BER_FLAGS_NOOWNTAG
, dissect_x509if_T_restrictionType
},
1589 { &hf_x509if_restrictionValue
, BER_CLASS_ANY
, 0, BER_FLAGS_NOOWNTAG
, dissect_x509if_T_restrictionValue
},
1590 { NULL
, 0, 0, 0, NULL
}
1594 dissect_x509if_MatchingUse(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1595 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1596 MatchingUse_sequence
, hf_index
, ett_x509if_MatchingUse
);
1602 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_MatchingUse_sequence_of
[1] = {
1603 { &hf_x509if_matchingUse_item
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_NOOWNTAG
, dissect_x509if_MatchingUse
},
1607 dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_MatchingUse(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1608 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
1609 SEQUENCE_SIZE_1_MAX_OF_MatchingUse_sequence_of
, hf_index
, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MatchingUse
);
1615 static const ber_sequence_t RequestAttribute_sequence
[] = {
1616 { &hf_x509if_attributeType_01
, BER_CLASS_UNI
, BER_UNI_TAG_OID
, BER_FLAGS_NOOWNTAG
, dissect_x509if_T_attributeType
},
1617 { &hf_x509if_includeSubtypes
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
, dissect_x509if_BOOLEAN
},
1618 { &hf_x509if_ra_selectedValues
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
, dissect_x509if_T_ra_selectedValues
},
1619 { &hf_x509if_defaultValues
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
, dissect_x509if_T_defaultValues
},
1620 { &hf_x509if_contexts
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
, dissect_x509if_SEQUENCE_SIZE_0_MAX_OF_ContextProfile
},
1621 { &hf_x509if_contextCombination
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOTCHKTAG
, dissect_x509if_ContextCombination
},
1622 { &hf_x509if_matchingUse
, BER_CLASS_CON
, 5, BER_FLAGS_OPTIONAL
, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_MatchingUse
},
1623 { NULL
, 0, 0, 0, NULL
}
1627 dissect_x509if_RequestAttribute(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1628 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1629 RequestAttribute_sequence
, hf_index
, ett_x509if_RequestAttribute
);
1635 static const ber_sequence_t SEQUENCE_SIZE_0_MAX_OF_RequestAttribute_sequence_of
[1] = {
1636 { &hf_x509if_inputAttributeTypes_item
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_NOOWNTAG
, dissect_x509if_RequestAttribute
},
1640 dissect_x509if_SEQUENCE_SIZE_0_MAX_OF_RequestAttribute(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1641 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
1642 SEQUENCE_SIZE_0_MAX_OF_RequestAttribute_sequence_of
, hf_index
, ett_x509if_SEQUENCE_SIZE_0_MAX_OF_RequestAttribute
);
1648 static const ber_sequence_t SEQUENCE_OF_AttributeCombination_sequence_of
[1] = {
1649 { &hf_x509if_and_item
, BER_CLASS_ANY
/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG
|BER_FLAGS_NOTCHKTAG
, dissect_x509if_AttributeCombination
},
1653 dissect_x509if_SEQUENCE_OF_AttributeCombination(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1654 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
1655 SEQUENCE_OF_AttributeCombination_sequence_of
, hf_index
, ett_x509if_SEQUENCE_OF_AttributeCombination
);
1661 const value_string x509if_AttributeCombination_vals
[] = {
1669 static const ber_choice_t AttributeCombination_choice
[] = {
1670 { 0, &hf_x509if_attribute
, BER_CLASS_CON
, 0, 0, dissect_x509if_AttributeType
},
1671 { 1, &hf_x509if_and
, BER_CLASS_CON
, 1, 0, dissect_x509if_SEQUENCE_OF_AttributeCombination
},
1672 { 2, &hf_x509if_or
, BER_CLASS_CON
, 2, 0, dissect_x509if_SEQUENCE_OF_AttributeCombination
},
1673 { 3, &hf_x509if_not
, BER_CLASS_CON
, 3, 0, dissect_x509if_AttributeCombination
},
1674 { 0, NULL
, 0, 0, 0, NULL
}
1678 dissect_x509if_AttributeCombination(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1679 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
1680 AttributeCombination_choice
, hf_index
, ett_x509if_AttributeCombination
,
1689 dissect_x509if_T_attributeType_01(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1690 offset
= dissect_ber_object_identifier_str(implicit_tag
, actx
, tree
, tvb
, offset
, hf_x509if_object_identifier_id
, &actx
->external
.direct_reference
);
1698 dissect_x509if_T_selectedValues_item(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1699 #line 291 "../../asn1/x509if/x509if.cnf"
1700 offset
=call_ber_oid_callback(actx
->external
.direct_reference
, tvb
, offset
, actx
->pinfo
, tree
, NULL
);
1708 static const ber_sequence_t T_selectedValues_sequence_of
[1] = {
1709 { &hf_x509if_selectedValues_item
, BER_CLASS_ANY
, 0, BER_FLAGS_NOOWNTAG
, dissect_x509if_T_selectedValues_item
},
1713 dissect_x509if_T_selectedValues(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1714 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
1715 T_selectedValues_sequence_of
, hf_index
, ett_x509if_T_selectedValues
);
1721 static const value_string x509if_T_outputValues_vals
[] = {
1722 { 0, "selectedValues" },
1723 { 1, "matchedValuesOnly" },
1727 static const ber_choice_t T_outputValues_choice
[] = {
1728 { 0, &hf_x509if_selectedValues
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_NOOWNTAG
, dissect_x509if_T_selectedValues
},
1729 { 1, &hf_x509if_matchedValuesOnly
, BER_CLASS_UNI
, BER_UNI_TAG_NULL
, BER_FLAGS_NOOWNTAG
, dissect_x509if_NULL
},
1730 { 0, NULL
, 0, 0, 0, NULL
}
1734 dissect_x509if_T_outputValues(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1735 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
1736 T_outputValues_choice
, hf_index
, ett_x509if_T_outputValues
,
1743 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_ContextProfile_sequence_of
[1] = {
1744 { &hf_x509if_contexts_item
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_NOOWNTAG
, dissect_x509if_ContextProfile
},
1748 dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextProfile(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1749 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
1750 SEQUENCE_SIZE_1_MAX_OF_ContextProfile_sequence_of
, hf_index
, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextProfile
);
1756 static const ber_sequence_t ResultAttribute_sequence
[] = {
1757 { &hf_x509if_attributeType_02
, BER_CLASS_UNI
, BER_UNI_TAG_OID
, BER_FLAGS_NOOWNTAG
, dissect_x509if_T_attributeType_01
},
1758 { &hf_x509if_outputValues
, BER_CLASS_ANY
/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOOWNTAG
|BER_FLAGS_NOTCHKTAG
, dissect_x509if_T_outputValues
},
1759 { &hf_x509if_contexts_01
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextProfile
},
1760 { NULL
, 0, 0, 0, NULL
}
1764 dissect_x509if_ResultAttribute(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1765 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1766 ResultAttribute_sequence
, hf_index
, ett_x509if_ResultAttribute
);
1772 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_ResultAttribute_sequence_of
[1] = {
1773 { &hf_x509if_outputAttributeTypes_item
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_NOOWNTAG
, dissect_x509if_ResultAttribute
},
1777 dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_ResultAttribute(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1778 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
1779 SEQUENCE_SIZE_1_MAX_OF_ResultAttribute_sequence_of
, hf_index
, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ResultAttribute
);
1785 static const ber_sequence_t ControlOptions_sequence
[] = {
1786 { &hf_x509if_serviceControls
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
, dissect_dap_ServiceControlOptions
},
1787 { &hf_x509if_searchOptions
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
, dissect_dap_SearchControlOptions
},
1788 { &hf_x509if_hierarchyOptions
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
, dissect_dap_HierarchySelections
},
1789 { NULL
, 0, 0, 0, NULL
}
1793 dissect_x509if_ControlOptions(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1794 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1795 ControlOptions_sequence
, hf_index
, ett_x509if_ControlOptions
);
1801 static const ber_sequence_t Mapping_sequence
[] = {
1802 { &hf_x509if_mappingFunction
, BER_CLASS_UNI
, BER_UNI_TAG_OID
, BER_FLAGS_NOOWNTAG
, dissect_x509if_OBJECT_IDENTIFIER
},
1803 { &hf_x509if_level
, BER_CLASS_UNI
, BER_UNI_TAG_INTEGER
, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOOWNTAG
, dissect_x509if_INTEGER
},
1804 { NULL
, 0, 0, 0, NULL
}
1808 dissect_x509if_Mapping(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1809 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1810 Mapping_sequence
, hf_index
, ett_x509if_Mapping
);
1816 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_Mapping_sequence_of
[1] = {
1817 { &hf_x509if_mapping_item
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_NOOWNTAG
, dissect_x509if_Mapping
},
1821 dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_Mapping(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1822 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
1823 SEQUENCE_SIZE_1_MAX_OF_Mapping_sequence_of
, hf_index
, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_Mapping
);
1829 static const ber_sequence_t MRSubstitution_sequence
[] = {
1830 { &hf_x509if_attribute
, BER_CLASS_UNI
, BER_UNI_TAG_OID
, BER_FLAGS_NOOWNTAG
, dissect_x509if_AttributeType
},
1831 { &hf_x509if_oldMatchingRule
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
, dissect_x509if_OBJECT_IDENTIFIER
},
1832 { &hf_x509if_newMatchingRule
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
, dissect_x509if_OBJECT_IDENTIFIER
},
1833 { NULL
, 0, 0, 0, NULL
}
1837 dissect_x509if_MRSubstitution(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1838 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1839 MRSubstitution_sequence
, hf_index
, ett_x509if_MRSubstitution
);
1845 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_MRSubstitution_sequence_of
[1] = {
1846 { &hf_x509if_substitution_item
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_NOOWNTAG
, dissect_x509if_MRSubstitution
},
1850 dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_MRSubstitution(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1851 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
1852 SEQUENCE_SIZE_1_MAX_OF_MRSubstitution_sequence_of
, hf_index
, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MRSubstitution
);
1858 static const ber_sequence_t MRMapping_sequence
[] = {
1859 { &hf_x509if_mapping
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_Mapping
},
1860 { &hf_x509if_substitution
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_MRSubstitution
},
1861 { NULL
, 0, 0, 0, NULL
}
1865 dissect_x509if_MRMapping(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1866 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1867 MRMapping_sequence
, hf_index
, ett_x509if_MRMapping
);
1873 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_MRMapping_sequence_of
[1] = {
1874 { &hf_x509if_tightenings_item
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_NOOWNTAG
, dissect_x509if_MRMapping
},
1878 dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_MRMapping(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1879 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
1880 SEQUENCE_SIZE_1_MAX_OF_MRMapping_sequence_of
, hf_index
, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MRMapping
);
1886 static const ber_sequence_t RelaxationPolicy_sequence
[] = {
1887 { &hf_x509if_basic
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
, dissect_x509if_MRMapping
},
1888 { &hf_x509if_tightenings
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_MRMapping
},
1889 { &hf_x509if_relaxations
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_MRMapping
},
1890 { &hf_x509if_maximum_relaxation
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
, dissect_x509if_INTEGER
},
1891 { &hf_x509if_minimum_relaxation
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
, dissect_x509if_INTEGER
},
1892 { NULL
, 0, 0, 0, NULL
}
1896 dissect_x509if_RelaxationPolicy(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1897 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1898 RelaxationPolicy_sequence
, hf_index
, ett_x509if_RelaxationPolicy
);
1904 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_AttributeType_sequence_of
[1] = {
1905 { &hf_x509if_additionalControl_item
, BER_CLASS_UNI
, BER_UNI_TAG_OID
, BER_FLAGS_NOOWNTAG
, dissect_x509if_AttributeType
},
1909 dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_AttributeType(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1910 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
1911 SEQUENCE_SIZE_1_MAX_OF_AttributeType_sequence_of
, hf_index
, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_AttributeType
);
1917 static const asn_namedbit AllowedSubset_bits
[] = {
1918 { 0, &hf_x509if_AllowedSubset_baseObject
, -1, -1, "baseObject", NULL
},
1919 { 1, &hf_x509if_AllowedSubset_oneLevel
, -1, -1, "oneLevel", NULL
},
1920 { 2, &hf_x509if_AllowedSubset_wholeSubtree
, -1, -1, "wholeSubtree", NULL
},
1921 { 0, NULL
, 0, 0, NULL
, NULL
}
1925 dissect_x509if_AllowedSubset(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1926 offset
= dissect_ber_bitstring(implicit_tag
, actx
, tree
, tvb
, offset
,
1927 AllowedSubset_bits
, hf_index
, ett_x509if_AllowedSubset
,
1934 const value_string x509if_ImposedSubset_vals
[] = {
1935 { 0, "baseObject" },
1937 { 2, "wholeSubtree" },
1943 dissect_x509if_ImposedSubset(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1944 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
1951 static const ber_sequence_t EntryLimit_sequence
[] = {
1952 { &hf_x509if_default
, BER_CLASS_UNI
, BER_UNI_TAG_INTEGER
, BER_FLAGS_NOOWNTAG
, dissect_x509if_INTEGER
},
1953 { &hf_x509if_max
, BER_CLASS_UNI
, BER_UNI_TAG_INTEGER
, BER_FLAGS_NOOWNTAG
, dissect_x509if_INTEGER
},
1954 { NULL
, 0, 0, 0, NULL
}
1958 dissect_x509if_EntryLimit(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1959 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1960 EntryLimit_sequence
, hf_index
, ett_x509if_EntryLimit
);
1966 static const ber_sequence_t SET_SIZE_1_MAX_OF_DirectoryString_set_of
[1] = {
1967 { &hf_x509if_name_item
, BER_CLASS_ANY
/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG
, dissect_x509sat_DirectoryString
},
1971 dissect_x509if_SET_SIZE_1_MAX_OF_DirectoryString(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1972 offset
= dissect_ber_set_of(implicit_tag
, actx
, tree
, tvb
, offset
,
1973 SET_SIZE_1_MAX_OF_DirectoryString_set_of
, hf_index
, ett_x509if_SET_SIZE_1_MAX_OF_DirectoryString
);
1979 static const ber_sequence_t SearchRuleDescription_sequence
[] = {
1980 { &hf_x509if_id
, BER_CLASS_UNI
, BER_UNI_TAG_INTEGER
, BER_FLAGS_NOOWNTAG
, dissect_x509if_INTEGER
},
1981 { &hf_x509if_dmdId
, BER_CLASS_CON
, 0, 0, dissect_x509if_OBJECT_IDENTIFIER
},
1982 { &hf_x509if_serviceType
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
, dissect_x509if_OBJECT_IDENTIFIER
},
1983 { &hf_x509if_userClass
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
, dissect_x509if_INTEGER
},
1984 { &hf_x509if_inputAttributeTypes
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
, dissect_x509if_SEQUENCE_SIZE_0_MAX_OF_RequestAttribute
},
1985 { &hf_x509if_attributeCombination
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOTCHKTAG
, dissect_x509if_AttributeCombination
},
1986 { &hf_x509if_outputAttributeTypes
, BER_CLASS_CON
, 5, BER_FLAGS_OPTIONAL
, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_ResultAttribute
},
1987 { &hf_x509if_defaultControls
, BER_CLASS_CON
, 6, BER_FLAGS_OPTIONAL
, dissect_x509if_ControlOptions
},
1988 { &hf_x509if_mandatoryControls
, BER_CLASS_CON
, 7, BER_FLAGS_OPTIONAL
, dissect_x509if_ControlOptions
},
1989 { &hf_x509if_searchRuleControls
, BER_CLASS_CON
, 8, BER_FLAGS_OPTIONAL
, dissect_x509if_ControlOptions
},
1990 { &hf_x509if_familyGrouping
, BER_CLASS_CON
, 9, BER_FLAGS_OPTIONAL
, dissect_dap_FamilyGrouping
},
1991 { &hf_x509if_familyReturn
, BER_CLASS_CON
, 10, BER_FLAGS_OPTIONAL
, dissect_dap_FamilyReturn
},
1992 { &hf_x509if_relaxation
, BER_CLASS_CON
, 11, BER_FLAGS_OPTIONAL
, dissect_x509if_RelaxationPolicy
},
1993 { &hf_x509if_additionalControl
, BER_CLASS_CON
, 12, BER_FLAGS_OPTIONAL
, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_AttributeType
},
1994 { &hf_x509if_allowedSubset
, BER_CLASS_CON
, 13, BER_FLAGS_OPTIONAL
, dissect_x509if_AllowedSubset
},
1995 { &hf_x509if_imposedSubset
, BER_CLASS_CON
, 14, BER_FLAGS_OPTIONAL
, dissect_x509if_ImposedSubset
},
1996 { &hf_x509if_entryLimit
, BER_CLASS_CON
, 15, BER_FLAGS_OPTIONAL
, dissect_x509if_EntryLimit
},
1997 { &hf_x509if_name
, BER_CLASS_CON
, 28, BER_FLAGS_OPTIONAL
, dissect_x509if_SET_SIZE_1_MAX_OF_DirectoryString
},
1998 { &hf_x509if_description
, BER_CLASS_CON
, 29, BER_FLAGS_OPTIONAL
, dissect_x509sat_DirectoryString
},
1999 { NULL
, 0, 0, 0, NULL
}
2003 dissect_x509if_SearchRuleDescription(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2004 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
2005 SearchRuleDescription_sequence
, hf_index
, ett_x509if_SearchRuleDescription
);
2013 dissect_x509if_HierarchyLevel(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2014 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
2023 dissect_x509if_HierarchyBelow(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2024 offset
= dissect_ber_boolean(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
, NULL
);
2030 static const ber_sequence_t SearchRule_sequence
[] = {
2031 { &hf_x509if_id
, BER_CLASS_UNI
, BER_UNI_TAG_INTEGER
, BER_FLAGS_NOOWNTAG
, dissect_x509if_INTEGER
},
2032 { &hf_x509if_dmdId
, BER_CLASS_CON
, 0, 0, dissect_x509if_OBJECT_IDENTIFIER
},
2033 { &hf_x509if_serviceType
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
, dissect_x509if_OBJECT_IDENTIFIER
},
2034 { &hf_x509if_userClass
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
, dissect_x509if_INTEGER
},
2035 { &hf_x509if_inputAttributeTypes
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
, dissect_x509if_SEQUENCE_SIZE_0_MAX_OF_RequestAttribute
},
2036 { &hf_x509if_attributeCombination
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOTCHKTAG
, dissect_x509if_AttributeCombination
},
2037 { &hf_x509if_outputAttributeTypes
, BER_CLASS_CON
, 5, BER_FLAGS_OPTIONAL
, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_ResultAttribute
},
2038 { &hf_x509if_defaultControls
, BER_CLASS_CON
, 6, BER_FLAGS_OPTIONAL
, dissect_x509if_ControlOptions
},
2039 { &hf_x509if_mandatoryControls
, BER_CLASS_CON
, 7, BER_FLAGS_OPTIONAL
, dissect_x509if_ControlOptions
},
2040 { &hf_x509if_searchRuleControls
, BER_CLASS_CON
, 8, BER_FLAGS_OPTIONAL
, dissect_x509if_ControlOptions
},
2041 { &hf_x509if_familyGrouping
, BER_CLASS_CON
, 9, BER_FLAGS_OPTIONAL
, dissect_dap_FamilyGrouping
},
2042 { &hf_x509if_familyReturn
, BER_CLASS_CON
, 10, BER_FLAGS_OPTIONAL
, dissect_dap_FamilyReturn
},
2043 { &hf_x509if_relaxation
, BER_CLASS_CON
, 11, BER_FLAGS_OPTIONAL
, dissect_x509if_RelaxationPolicy
},
2044 { &hf_x509if_additionalControl
, BER_CLASS_CON
, 12, BER_FLAGS_OPTIONAL
, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_AttributeType
},
2045 { &hf_x509if_allowedSubset
, BER_CLASS_CON
, 13, BER_FLAGS_OPTIONAL
, dissect_x509if_AllowedSubset
},
2046 { &hf_x509if_imposedSubset
, BER_CLASS_CON
, 14, BER_FLAGS_OPTIONAL
, dissect_x509if_ImposedSubset
},
2047 { &hf_x509if_entryLimit
, BER_CLASS_CON
, 15, BER_FLAGS_OPTIONAL
, dissect_x509if_EntryLimit
},
2048 { NULL
, 0, 0, 0, NULL
}
2052 dissect_x509if_SearchRule(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2053 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
2054 SearchRule_sequence
, hf_index
, ett_x509if_SearchRule
);
2060 static const ber_sequence_t SearchRuleId_sequence
[] = {
2061 { &hf_x509if_id
, BER_CLASS_UNI
, BER_UNI_TAG_INTEGER
, BER_FLAGS_NOOWNTAG
, dissect_x509if_INTEGER
},
2062 { &hf_x509if_dmdId
, BER_CLASS_CON
, 0, 0, dissect_x509if_OBJECT_IDENTIFIER
},
2063 { NULL
, 0, 0, 0, NULL
}
2067 dissect_x509if_SearchRuleId(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2068 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
2069 SearchRuleId_sequence
, hf_index
, ett_x509if_SearchRuleId
);
2076 static void dissect_DistinguishedName_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
2077 asn1_ctx_t asn1_ctx
;
2078 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
2079 dissect_x509if_DistinguishedName(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_x509if_DistinguishedName_PDU
);
2081 static void dissect_SubtreeSpecification_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
2082 asn1_ctx_t asn1_ctx
;
2083 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
2084 dissect_x509if_SubtreeSpecification(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_x509if_SubtreeSpecification_PDU
);
2086 static void dissect_HierarchyLevel_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
2087 asn1_ctx_t asn1_ctx
;
2088 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
2089 dissect_x509if_HierarchyLevel(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_x509if_HierarchyLevel_PDU
);
2091 static void dissect_HierarchyBelow_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
2092 asn1_ctx_t asn1_ctx
;
2093 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
2094 dissect_x509if_HierarchyBelow(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_x509if_HierarchyBelow_PDU
);
2098 /*--- End of included file: packet-x509if-fn.c ---*/
2099 #line 89 "../../asn1/x509if/packet-x509if-template.c"
2101 const char * x509if_get_last_dn(void)
2106 gboolean
x509if_register_fmt(int hf_index
, const gchar
*fmt
)
2110 if(idx
< (MAX_FMT_VALS
- 1)) {
2112 fmt_vals
[idx
].value
= hf_index
;
2113 fmt_vals
[idx
].strptr
= fmt
;
2117 fmt_vals
[idx
].value
= 0;
2118 fmt_vals
[idx
].strptr
= NULL
;
2123 return FALSE
; /* couldn't register it */
2127 const char * x509if_get_last_ava(void)
2132 /*--- proto_register_x509if ----------------------------------------------*/
2133 void proto_register_x509if(void) {
2135 /* List of fields */
2136 static hf_register_info hf
[] = {
2137 { &hf_x509if_object_identifier_id
,
2138 { "Id", "x509if.id", FT_OID
, BASE_NONE
, NULL
, 0,
2139 "Object identifier Id", HFILL
}},
2140 { &hf_x509if_any_string
,
2141 { "AnyString", "x509if.any.String", FT_BYTES
, BASE_NONE
,
2142 NULL
, 0, "This is any String", HFILL
}},
2145 /*--- Included file: packet-x509if-hfarr.c ---*/
2146 #line 1 "../../asn1/x509if/packet-x509if-hfarr.c"
2147 { &hf_x509if_DistinguishedName_PDU
,
2148 { "DistinguishedName", "x509if.DistinguishedName",
2149 FT_UINT32
, BASE_DEC
, NULL
, 0,
2151 { &hf_x509if_SubtreeSpecification_PDU
,
2152 { "SubtreeSpecification", "x509if.SubtreeSpecification_element",
2153 FT_NONE
, BASE_NONE
, NULL
, 0,
2155 { &hf_x509if_HierarchyLevel_PDU
,
2156 { "HierarchyLevel", "x509if.HierarchyLevel",
2157 FT_INT32
, BASE_DEC
, NULL
, 0,
2159 { &hf_x509if_HierarchyBelow_PDU
,
2160 { "HierarchyBelow", "x509if.HierarchyBelow",
2161 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
2164 { "type", "x509if.type",
2165 FT_OID
, BASE_NONE
, NULL
, 0,
2167 { &hf_x509if_values
,
2168 { "values", "x509if.values",
2169 FT_UINT32
, BASE_DEC
, NULL
, 0,
2171 { &hf_x509if_values_item
,
2172 { "values item", "x509if.values_item_element",
2173 FT_NONE
, BASE_NONE
, NULL
, 0,
2175 { &hf_x509if_valuesWithContext
,
2176 { "valuesWithContext", "x509if.valuesWithContext",
2177 FT_UINT32
, BASE_DEC
, NULL
, 0,
2179 { &hf_x509if_valuesWithContext_item
,
2180 { "valuesWithContext item", "x509if.valuesWithContext_item_element",
2181 FT_NONE
, BASE_NONE
, NULL
, 0,
2182 "T_valuesWithContext_item", HFILL
}},
2184 { "value", "x509if.value_element",
2185 FT_NONE
, BASE_NONE
, NULL
, 0,
2187 { &hf_x509if_contextList
,
2188 { "contextList", "x509if.contextList",
2189 FT_UINT32
, BASE_DEC
, NULL
, 0,
2190 "SET_SIZE_1_MAX_OF_Context", HFILL
}},
2191 { &hf_x509if_contextList_item
,
2192 { "Context", "x509if.Context_element",
2193 FT_NONE
, BASE_NONE
, NULL
, 0,
2195 { &hf_x509if_contextType
,
2196 { "contextType", "x509if.contextType",
2197 FT_OID
, BASE_NONE
, NULL
, 0,
2199 { &hf_x509if_contextValues
,
2200 { "contextValues", "x509if.contextValues",
2201 FT_UINT32
, BASE_DEC
, NULL
, 0,
2203 { &hf_x509if_contextValues_item
,
2204 { "contextValues item", "x509if.contextValues_item_element",
2205 FT_NONE
, BASE_NONE
, NULL
, 0,
2207 { &hf_x509if_fallback
,
2208 { "fallback", "x509if.fallback",
2209 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
2210 "BOOLEAN", HFILL
}},
2211 { &hf_x509if_type_01
,
2212 { "type", "x509if.type",
2213 FT_OID
, BASE_NONE
, NULL
, 0,
2214 "T_type_01", HFILL
}},
2215 { &hf_x509if_assertion
,
2216 { "assertion", "x509if.assertion_element",
2217 FT_NONE
, BASE_NONE
, NULL
, 0,
2219 { &hf_x509if_assertedContexts
,
2220 { "assertedContexts", "x509if.assertedContexts",
2221 FT_UINT32
, BASE_DEC
, VALS(x509if_T_assertedContexts_vals
), 0,
2223 { &hf_x509if_allContexts
,
2224 { "allContexts", "x509if.allContexts_element",
2225 FT_NONE
, BASE_NONE
, NULL
, 0,
2227 { &hf_x509if_selectedContexts
,
2228 { "selectedContexts", "x509if.selectedContexts",
2229 FT_UINT32
, BASE_DEC
, NULL
, 0,
2230 "SET_SIZE_1_MAX_OF_ContextAssertion", HFILL
}},
2231 { &hf_x509if_selectedContexts_item
,
2232 { "ContextAssertion", "x509if.ContextAssertion_element",
2233 FT_NONE
, BASE_NONE
, NULL
, 0,
2235 { &hf_x509if_ca_contextType
,
2236 { "contextType", "x509if.contextType",
2237 FT_OID
, BASE_NONE
, NULL
, 0,
2238 "T_ca_contextType", HFILL
}},
2239 { &hf_x509if_ca_contextValues
,
2240 { "contextValues", "x509if.contextValues",
2241 FT_UINT32
, BASE_DEC
, NULL
, 0,
2242 "T_ca_contextValues", HFILL
}},
2243 { &hf_x509if_ca_contextValues_item
,
2244 { "contextValues item", "x509if.contextValues_item_element",
2245 FT_NONE
, BASE_NONE
, NULL
, 0,
2246 "T_ca_contextValues_item", HFILL
}},
2247 { &hf_x509if_type_02
,
2248 { "type", "x509if.type",
2249 FT_OID
, BASE_NONE
, NULL
, 0,
2250 "OBJECT_IDENTIFIER", HFILL
}},
2251 { &hf_x509if_ata_assertedContexts
,
2252 { "assertedContexts", "x509if.assertedContexts",
2253 FT_UINT32
, BASE_DEC
, NULL
, 0,
2254 "SEQUENCE_SIZE_1_MAX_OF_ContextAssertion", HFILL
}},
2255 { &hf_x509if_ata_assertedContexts_item
,
2256 { "ContextAssertion", "x509if.ContextAssertion_element",
2257 FT_NONE
, BASE_NONE
, NULL
, 0,
2259 { &hf_x509if_rdnSequence
,
2260 { "rdnSequence", "x509if.rdnSequence",
2261 FT_UINT32
, BASE_DEC
, NULL
, 0,
2263 { &hf_x509if_RDNSequence_item
,
2264 { "RDNSequence item", "x509if.RDNSequence_item",
2265 FT_UINT32
, BASE_DEC
, NULL
, 0,
2267 { &hf_x509if_RelativeDistinguishedName_item
,
2268 { "RelativeDistinguishedName item", "x509if.RelativeDistinguishedName_item_element",
2269 FT_NONE
, BASE_NONE
, NULL
, 0,
2271 { &hf_x509if_type_03
,
2272 { "type", "x509if.type",
2273 FT_OID
, BASE_NONE
, NULL
, 0,
2274 "T_type_02", HFILL
}},
2275 { &hf_x509if_atadv_value
,
2276 { "value", "x509if.value_element",
2277 FT_NONE
, BASE_NONE
, NULL
, 0,
2278 "T_atadv_value", HFILL
}},
2279 { &hf_x509if_primaryDistinguished
,
2280 { "primaryDistinguished", "x509if.primaryDistinguished",
2281 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
2282 "BOOLEAN", HFILL
}},
2283 { &hf_x509if_valueswithContext
,
2284 { "valuesWithContext", "x509if.valuesWithContext",
2285 FT_UINT32
, BASE_DEC
, NULL
, 0,
2286 "T_valWithContext", HFILL
}},
2287 { &hf_x509if_valueswithContext_item
,
2288 { "valuesWithContext item", "x509if.valuesWithContext_item_element",
2289 FT_NONE
, BASE_NONE
, NULL
, 0,
2290 "T_valWithContext_item", HFILL
}},
2291 { &hf_x509if_distingAttrValue
,
2292 { "distingAttrValue", "x509if.distingAttrValue_element",
2293 FT_NONE
, BASE_NONE
, NULL
, 0,
2295 { &hf_x509if_chopSpecificExclusions
,
2296 { "specificExclusions", "x509if.specificExclusions",
2297 FT_UINT32
, BASE_DEC
, NULL
, 0,
2298 "T_chopSpecificExclusions", HFILL
}},
2299 { &hf_x509if_chopSpecificExclusions_item
,
2300 { "specificExclusions item", "x509if.specificExclusions_item",
2301 FT_UINT32
, BASE_DEC
, VALS(x509if_T_chopSpecificExclusions_item_vals
), 0,
2302 "T_chopSpecificExclusions_item", HFILL
}},
2303 { &hf_x509if_chopBefore
,
2304 { "chopBefore", "x509if.chopBefore",
2305 FT_UINT32
, BASE_DEC
, NULL
, 0,
2306 "LocalName", HFILL
}},
2307 { &hf_x509if_chopAfter
,
2308 { "chopAfter", "x509if.chopAfter",
2309 FT_UINT32
, BASE_DEC
, NULL
, 0,
2310 "LocalName", HFILL
}},
2311 { &hf_x509if_minimum
,
2312 { "minimum", "x509if.minimum",
2313 FT_UINT32
, BASE_DEC
, NULL
, 0,
2314 "BaseDistance", HFILL
}},
2315 { &hf_x509if_maximum
,
2316 { "maximum", "x509if.maximum",
2317 FT_UINT32
, BASE_DEC
, NULL
, 0,
2318 "BaseDistance", HFILL
}},
2320 { "item", "x509if.item",
2321 FT_OID
, BASE_NONE
, NULL
, 0,
2322 "OBJECT_IDENTIFIER", HFILL
}},
2323 { &hf_x509if_refinement_and
,
2324 { "and", "x509if.and",
2325 FT_UINT32
, BASE_DEC
, NULL
, 0,
2326 "SET_OF_Refinement", HFILL
}},
2327 { &hf_x509if_refinement_and_item
,
2328 { "Refinement", "x509if.Refinement",
2329 FT_UINT32
, BASE_DEC
, VALS(x509if_Refinement_vals
), 0,
2331 { &hf_x509if_refinement_or
,
2332 { "or", "x509if.or",
2333 FT_UINT32
, BASE_DEC
, NULL
, 0,
2334 "SET_OF_Refinement", HFILL
}},
2335 { &hf_x509if_refinement_or_item
,
2336 { "Refinement", "x509if.Refinement",
2337 FT_UINT32
, BASE_DEC
, VALS(x509if_Refinement_vals
), 0,
2339 { &hf_x509if_refinement_not
,
2340 { "not", "x509if.not",
2341 FT_UINT32
, BASE_DEC
, VALS(x509if_Refinement_vals
), 0,
2342 "Refinement", HFILL
}},
2343 { &hf_x509if_ruleIdentifier
,
2344 { "ruleIdentifier", "x509if.ruleIdentifier",
2345 FT_INT32
, BASE_DEC
, NULL
, 0,
2347 { &hf_x509if_nameForm
,
2348 { "nameForm", "x509if.nameForm",
2349 FT_OID
, BASE_NONE
, NULL
, 0,
2350 "OBJECT_IDENTIFIER", HFILL
}},
2351 { &hf_x509if_superiorStructureRules
,
2352 { "superiorStructureRules", "x509if.superiorStructureRules",
2353 FT_UINT32
, BASE_DEC
, NULL
, 0,
2354 "SET_SIZE_1_MAX_OF_RuleIdentifier", HFILL
}},
2355 { &hf_x509if_superiorStructureRules_item
,
2356 { "RuleIdentifier", "x509if.RuleIdentifier",
2357 FT_INT32
, BASE_DEC
, NULL
, 0,
2359 { &hf_x509if_structuralObjectClass
,
2360 { "structuralObjectClass", "x509if.structuralObjectClass",
2361 FT_OID
, BASE_NONE
, NULL
, 0,
2362 "OBJECT_IDENTIFIER", HFILL
}},
2363 { &hf_x509if_auxiliaries
,
2364 { "auxiliaries", "x509if.auxiliaries",
2365 FT_UINT32
, BASE_DEC
, NULL
, 0,
2367 { &hf_x509if_auxiliaries_item
,
2368 { "auxiliaries item", "x509if.auxiliaries_item",
2369 FT_OID
, BASE_NONE
, NULL
, 0,
2370 "OBJECT_IDENTIFIER", HFILL
}},
2371 { &hf_x509if_mandatory
,
2372 { "mandatory", "x509if.mandatory",
2373 FT_UINT32
, BASE_DEC
, NULL
, 0,
2375 { &hf_x509if_mandatory_item
,
2376 { "mandatory item", "x509if.mandatory_item",
2377 FT_OID
, BASE_NONE
, NULL
, 0,
2378 "OBJECT_IDENTIFIER", HFILL
}},
2379 { &hf_x509if_optional
,
2380 { "optional", "x509if.optional",
2381 FT_UINT32
, BASE_DEC
, NULL
, 0,
2383 { &hf_x509if_optional_item
,
2384 { "optional item", "x509if.optional_item",
2385 FT_OID
, BASE_NONE
, NULL
, 0,
2386 "OBJECT_IDENTIFIER", HFILL
}},
2387 { &hf_x509if_precluded
,
2388 { "precluded", "x509if.precluded",
2389 FT_UINT32
, BASE_DEC
, NULL
, 0,
2391 { &hf_x509if_precluded_item
,
2392 { "precluded item", "x509if.precluded_item",
2393 FT_OID
, BASE_NONE
, NULL
, 0,
2394 "OBJECT_IDENTIFIER", HFILL
}},
2395 { &hf_x509if_attributeType
,
2396 { "attributeType", "x509if.attributeType",
2397 FT_OID
, BASE_NONE
, NULL
, 0,
2398 "OBJECT_IDENTIFIER", HFILL
}},
2399 { &hf_x509if_mandatoryContexts
,
2400 { "mandatoryContexts", "x509if.mandatoryContexts",
2401 FT_UINT32
, BASE_DEC
, NULL
, 0,
2403 { &hf_x509if_mandatoryContexts_item
,
2404 { "mandatoryContexts item", "x509if.mandatoryContexts_item",
2405 FT_OID
, BASE_NONE
, NULL
, 0,
2406 "OBJECT_IDENTIFIER", HFILL
}},
2407 { &hf_x509if_optionalContexts
,
2408 { "optionalContexts", "x509if.optionalContexts",
2409 FT_UINT32
, BASE_DEC
, NULL
, 0,
2411 { &hf_x509if_optionalContexts_item
,
2412 { "optionalContexts item", "x509if.optionalContexts_item",
2413 FT_OID
, BASE_NONE
, NULL
, 0,
2414 "OBJECT_IDENTIFIER", HFILL
}},
2416 { "id", "x509if.id",
2417 FT_INT32
, BASE_DEC
, NULL
, 0,
2418 "INTEGER", HFILL
}},
2420 { "dmdId", "x509if.dmdId",
2421 FT_OID
, BASE_NONE
, NULL
, 0,
2422 "OBJECT_IDENTIFIER", HFILL
}},
2423 { &hf_x509if_attributeType_01
,
2424 { "attributeType", "x509if.attributeType",
2425 FT_OID
, BASE_NONE
, NULL
, 0,
2427 { &hf_x509if_includeSubtypes
,
2428 { "includeSubtypes", "x509if.includeSubtypes",
2429 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
2430 "BOOLEAN", HFILL
}},
2431 { &hf_x509if_ra_selectedValues
,
2432 { "selectedValues", "x509if.selectedValues",
2433 FT_UINT32
, BASE_DEC
, NULL
, 0,
2434 "T_ra_selectedValues", HFILL
}},
2435 { &hf_x509if_ra_selectedValues_item
,
2436 { "selectedValues item", "x509if.selectedValues_item_element",
2437 FT_NONE
, BASE_NONE
, NULL
, 0,
2438 "T_ra_selectedValues_item", HFILL
}},
2439 { &hf_x509if_defaultValues
,
2440 { "defaultValues", "x509if.defaultValues",
2441 FT_UINT32
, BASE_DEC
, NULL
, 0,
2443 { &hf_x509if_defaultValues_item
,
2444 { "defaultValues item", "x509if.defaultValues_item_element",
2445 FT_NONE
, BASE_NONE
, NULL
, 0,
2447 { &hf_x509if_entryType
,
2448 { "entryType", "x509if.entryType",
2449 FT_OID
, BASE_NONE
, NULL
, 0,
2451 { &hf_x509if_ra_values
,
2452 { "values", "x509if.values",
2453 FT_UINT32
, BASE_DEC
, NULL
, 0,
2454 "T_ra_values", HFILL
}},
2455 { &hf_x509if_ra_values_item
,
2456 { "values item", "x509if.values_item_element",
2457 FT_NONE
, BASE_NONE
, NULL
, 0,
2458 "T_ra_values_item", HFILL
}},
2459 { &hf_x509if_contexts
,
2460 { "contexts", "x509if.contexts",
2461 FT_UINT32
, BASE_DEC
, NULL
, 0,
2462 "SEQUENCE_SIZE_0_MAX_OF_ContextProfile", HFILL
}},
2463 { &hf_x509if_contexts_item
,
2464 { "ContextProfile", "x509if.ContextProfile_element",
2465 FT_NONE
, BASE_NONE
, NULL
, 0,
2467 { &hf_x509if_contextCombination
,
2468 { "contextCombination", "x509if.contextCombination",
2469 FT_UINT32
, BASE_DEC
, VALS(x509if_ContextCombination_vals
), 0,
2471 { &hf_x509if_matchingUse
,
2472 { "matchingUse", "x509if.matchingUse",
2473 FT_UINT32
, BASE_DEC
, NULL
, 0,
2474 "SEQUENCE_SIZE_1_MAX_OF_MatchingUse", HFILL
}},
2475 { &hf_x509if_matchingUse_item
,
2476 { "MatchingUse", "x509if.MatchingUse_element",
2477 FT_NONE
, BASE_NONE
, NULL
, 0,
2479 { &hf_x509if_contextType_01
,
2480 { "contextType", "x509if.contextType",
2481 FT_OID
, BASE_NONE
, NULL
, 0,
2482 "T_contextType_01", HFILL
}},
2483 { &hf_x509if_contextValue
,
2484 { "contextValue", "x509if.contextValue",
2485 FT_UINT32
, BASE_DEC
, NULL
, 0,
2487 { &hf_x509if_contextValue_item
,
2488 { "contextValue item", "x509if.contextValue_item_element",
2489 FT_NONE
, BASE_NONE
, NULL
, 0,
2491 { &hf_x509if_context
,
2492 { "context", "x509if.context",
2493 FT_OID
, BASE_NONE
, NULL
, 0,
2494 "OBJECT_IDENTIFIER", HFILL
}},
2495 { &hf_x509if_contextcombination_and
,
2496 { "and", "x509if.and",
2497 FT_UINT32
, BASE_DEC
, NULL
, 0,
2498 "SEQUENCE_OF_ContextCombination", HFILL
}},
2499 { &hf_x509if_contextcombination_and_item
,
2500 { "ContextCombination", "x509if.ContextCombination",
2501 FT_UINT32
, BASE_DEC
, VALS(x509if_ContextCombination_vals
), 0,
2503 { &hf_x509if_contextcombination_or
,
2504 { "or", "x509if.or",
2505 FT_UINT32
, BASE_DEC
, NULL
, 0,
2506 "SEQUENCE_OF_ContextCombination", HFILL
}},
2507 { &hf_x509if_contextcombination_or_item
,
2508 { "ContextCombination", "x509if.ContextCombination",
2509 FT_UINT32
, BASE_DEC
, VALS(x509if_ContextCombination_vals
), 0,
2511 { &hf_x509if_contextcombination_not
,
2512 { "not", "x509if.not",
2513 FT_UINT32
, BASE_DEC
, VALS(x509if_ContextCombination_vals
), 0,
2514 "ContextCombination", HFILL
}},
2515 { &hf_x509if_restrictionType
,
2516 { "restrictionType", "x509if.restrictionType",
2517 FT_OID
, BASE_NONE
, NULL
, 0,
2519 { &hf_x509if_restrictionValue
,
2520 { "restrictionValue", "x509if.restrictionValue_element",
2521 FT_NONE
, BASE_NONE
, NULL
, 0,
2523 { &hf_x509if_attribute
,
2524 { "attribute", "x509if.attribute",
2525 FT_OID
, BASE_NONE
, NULL
, 0,
2526 "AttributeType", HFILL
}},
2528 { "and", "x509if.and",
2529 FT_UINT32
, BASE_DEC
, NULL
, 0,
2530 "SEQUENCE_OF_AttributeCombination", HFILL
}},
2531 { &hf_x509if_and_item
,
2532 { "AttributeCombination", "x509if.AttributeCombination",
2533 FT_UINT32
, BASE_DEC
, VALS(x509if_AttributeCombination_vals
), 0,
2536 { "or", "x509if.or",
2537 FT_UINT32
, BASE_DEC
, NULL
, 0,
2538 "SEQUENCE_OF_AttributeCombination", HFILL
}},
2539 { &hf_x509if_or_item
,
2540 { "AttributeCombination", "x509if.AttributeCombination",
2541 FT_UINT32
, BASE_DEC
, VALS(x509if_AttributeCombination_vals
), 0,
2544 { "not", "x509if.not",
2545 FT_UINT32
, BASE_DEC
, VALS(x509if_AttributeCombination_vals
), 0,
2546 "AttributeCombination", HFILL
}},
2547 { &hf_x509if_attributeType_02
,
2548 { "attributeType", "x509if.attributeType",
2549 FT_OID
, BASE_NONE
, NULL
, 0,
2550 "T_attributeType_01", HFILL
}},
2551 { &hf_x509if_outputValues
,
2552 { "outputValues", "x509if.outputValues",
2553 FT_UINT32
, BASE_DEC
, VALS(x509if_T_outputValues_vals
), 0,
2555 { &hf_x509if_selectedValues
,
2556 { "selectedValues", "x509if.selectedValues",
2557 FT_UINT32
, BASE_DEC
, NULL
, 0,
2559 { &hf_x509if_selectedValues_item
,
2560 { "selectedValues item", "x509if.selectedValues_item_element",
2561 FT_NONE
, BASE_NONE
, NULL
, 0,
2563 { &hf_x509if_matchedValuesOnly
,
2564 { "matchedValuesOnly", "x509if.matchedValuesOnly_element",
2565 FT_NONE
, BASE_NONE
, NULL
, 0,
2567 { &hf_x509if_contexts_01
,
2568 { "contexts", "x509if.contexts",
2569 FT_UINT32
, BASE_DEC
, NULL
, 0,
2570 "SEQUENCE_SIZE_1_MAX_OF_ContextProfile", HFILL
}},
2571 { &hf_x509if_serviceControls
,
2572 { "serviceControls", "x509if.serviceControls_element",
2573 FT_NONE
, BASE_NONE
, NULL
, 0,
2574 "ServiceControlOptions", HFILL
}},
2575 { &hf_x509if_searchOptions
,
2576 { "searchOptions", "x509if.searchOptions_element",
2577 FT_NONE
, BASE_NONE
, NULL
, 0,
2578 "SearchControlOptions", HFILL
}},
2579 { &hf_x509if_hierarchyOptions
,
2580 { "hierarchyOptions", "x509if.hierarchyOptions_element",
2581 FT_NONE
, BASE_NONE
, NULL
, 0,
2582 "HierarchySelections", HFILL
}},
2583 { &hf_x509if_default
,
2584 { "default", "x509if.default",
2585 FT_INT32
, BASE_DEC
, NULL
, 0,
2586 "INTEGER", HFILL
}},
2588 { "max", "x509if.max",
2589 FT_INT32
, BASE_DEC
, NULL
, 0,
2590 "INTEGER", HFILL
}},
2592 { "basic", "x509if.basic_element",
2593 FT_NONE
, BASE_NONE
, NULL
, 0,
2594 "MRMapping", HFILL
}},
2595 { &hf_x509if_tightenings
,
2596 { "tightenings", "x509if.tightenings",
2597 FT_UINT32
, BASE_DEC
, NULL
, 0,
2598 "SEQUENCE_SIZE_1_MAX_OF_MRMapping", HFILL
}},
2599 { &hf_x509if_tightenings_item
,
2600 { "MRMapping", "x509if.MRMapping_element",
2601 FT_NONE
, BASE_NONE
, NULL
, 0,
2603 { &hf_x509if_relaxations
,
2604 { "relaxations", "x509if.relaxations",
2605 FT_UINT32
, BASE_DEC
, NULL
, 0,
2606 "SEQUENCE_SIZE_1_MAX_OF_MRMapping", HFILL
}},
2607 { &hf_x509if_relaxations_item
,
2608 { "MRMapping", "x509if.MRMapping_element",
2609 FT_NONE
, BASE_NONE
, NULL
, 0,
2611 { &hf_x509if_maximum_relaxation
,
2612 { "maximum", "x509if.maximum",
2613 FT_INT32
, BASE_DEC
, NULL
, 0,
2614 "INTEGER", HFILL
}},
2615 { &hf_x509if_minimum_relaxation
,
2616 { "minimum", "x509if.minimum",
2617 FT_INT32
, BASE_DEC
, NULL
, 0,
2618 "INTEGER", HFILL
}},
2619 { &hf_x509if_mapping
,
2620 { "mapping", "x509if.mapping",
2621 FT_UINT32
, BASE_DEC
, NULL
, 0,
2622 "SEQUENCE_SIZE_1_MAX_OF_Mapping", HFILL
}},
2623 { &hf_x509if_mapping_item
,
2624 { "Mapping", "x509if.Mapping_element",
2625 FT_NONE
, BASE_NONE
, NULL
, 0,
2627 { &hf_x509if_substitution
,
2628 { "substitution", "x509if.substitution",
2629 FT_UINT32
, BASE_DEC
, NULL
, 0,
2630 "SEQUENCE_SIZE_1_MAX_OF_MRSubstitution", HFILL
}},
2631 { &hf_x509if_substitution_item
,
2632 { "MRSubstitution", "x509if.MRSubstitution_element",
2633 FT_NONE
, BASE_NONE
, NULL
, 0,
2635 { &hf_x509if_mappingFunction
,
2636 { "mappingFunction", "x509if.mappingFunction",
2637 FT_OID
, BASE_NONE
, NULL
, 0,
2638 "OBJECT_IDENTIFIER", HFILL
}},
2640 { "level", "x509if.level",
2641 FT_INT32
, BASE_DEC
, NULL
, 0,
2642 "INTEGER", HFILL
}},
2643 { &hf_x509if_oldMatchingRule
,
2644 { "oldMatchingRule", "x509if.oldMatchingRule",
2645 FT_OID
, BASE_NONE
, NULL
, 0,
2646 "OBJECT_IDENTIFIER", HFILL
}},
2647 { &hf_x509if_newMatchingRule
,
2648 { "newMatchingRule", "x509if.newMatchingRule",
2649 FT_OID
, BASE_NONE
, NULL
, 0,
2650 "OBJECT_IDENTIFIER", HFILL
}},
2652 { "base", "x509if.base",
2653 FT_UINT32
, BASE_DEC
, NULL
, 0,
2654 "LocalName", HFILL
}},
2655 { &hf_x509if_specificExclusions
,
2656 { "specificExclusions", "x509if.specificExclusions",
2657 FT_UINT32
, BASE_DEC
, NULL
, 0,
2659 { &hf_x509if_specificExclusions_item
,
2660 { "specificExclusions item", "x509if.specificExclusions_item",
2661 FT_UINT32
, BASE_DEC
, VALS(x509if_T_specificExclusions_item_vals
), 0,
2663 { &hf_x509if_specificationFilter
,
2664 { "specificationFilter", "x509if.specificationFilter",
2665 FT_UINT32
, BASE_DEC
, VALS(x509if_Refinement_vals
), 0,
2666 "Refinement", HFILL
}},
2667 { &hf_x509if_serviceType
,
2668 { "serviceType", "x509if.serviceType",
2669 FT_OID
, BASE_NONE
, NULL
, 0,
2670 "OBJECT_IDENTIFIER", HFILL
}},
2671 { &hf_x509if_userClass
,
2672 { "userClass", "x509if.userClass",
2673 FT_INT32
, BASE_DEC
, NULL
, 0,
2674 "INTEGER", HFILL
}},
2675 { &hf_x509if_inputAttributeTypes
,
2676 { "inputAttributeTypes", "x509if.inputAttributeTypes",
2677 FT_UINT32
, BASE_DEC
, NULL
, 0,
2678 "SEQUENCE_SIZE_0_MAX_OF_RequestAttribute", HFILL
}},
2679 { &hf_x509if_inputAttributeTypes_item
,
2680 { "RequestAttribute", "x509if.RequestAttribute_element",
2681 FT_NONE
, BASE_NONE
, NULL
, 0,
2683 { &hf_x509if_attributeCombination
,
2684 { "attributeCombination", "x509if.attributeCombination",
2685 FT_UINT32
, BASE_DEC
, VALS(x509if_AttributeCombination_vals
), 0,
2687 { &hf_x509if_outputAttributeTypes
,
2688 { "outputAttributeTypes", "x509if.outputAttributeTypes",
2689 FT_UINT32
, BASE_DEC
, NULL
, 0,
2690 "SEQUENCE_SIZE_1_MAX_OF_ResultAttribute", HFILL
}},
2691 { &hf_x509if_outputAttributeTypes_item
,
2692 { "ResultAttribute", "x509if.ResultAttribute_element",
2693 FT_NONE
, BASE_NONE
, NULL
, 0,
2695 { &hf_x509if_defaultControls
,
2696 { "defaultControls", "x509if.defaultControls_element",
2697 FT_NONE
, BASE_NONE
, NULL
, 0,
2698 "ControlOptions", HFILL
}},
2699 { &hf_x509if_mandatoryControls
,
2700 { "mandatoryControls", "x509if.mandatoryControls_element",
2701 FT_NONE
, BASE_NONE
, NULL
, 0,
2702 "ControlOptions", HFILL
}},
2703 { &hf_x509if_searchRuleControls
,
2704 { "searchRuleControls", "x509if.searchRuleControls_element",
2705 FT_NONE
, BASE_NONE
, NULL
, 0,
2706 "ControlOptions", HFILL
}},
2707 { &hf_x509if_familyGrouping
,
2708 { "familyGrouping", "x509if.familyGrouping_element",
2709 FT_NONE
, BASE_NONE
, NULL
, 0,
2711 { &hf_x509if_familyReturn
,
2712 { "familyReturn", "x509if.familyReturn_element",
2713 FT_NONE
, BASE_NONE
, NULL
, 0,
2715 { &hf_x509if_relaxation
,
2716 { "relaxation", "x509if.relaxation_element",
2717 FT_NONE
, BASE_NONE
, NULL
, 0,
2718 "RelaxationPolicy", HFILL
}},
2719 { &hf_x509if_additionalControl
,
2720 { "additionalControl", "x509if.additionalControl",
2721 FT_UINT32
, BASE_DEC
, NULL
, 0,
2722 "SEQUENCE_SIZE_1_MAX_OF_AttributeType", HFILL
}},
2723 { &hf_x509if_additionalControl_item
,
2724 { "AttributeType", "x509if.AttributeType",
2725 FT_OID
, BASE_NONE
, NULL
, 0,
2727 { &hf_x509if_allowedSubset
,
2728 { "allowedSubset", "x509if.allowedSubset",
2729 FT_BYTES
, BASE_NONE
, NULL
, 0,
2731 { &hf_x509if_imposedSubset
,
2732 { "imposedSubset", "x509if.imposedSubset",
2733 FT_UINT32
, BASE_DEC
, VALS(x509if_ImposedSubset_vals
), 0,
2735 { &hf_x509if_entryLimit
,
2736 { "entryLimit", "x509if.entryLimit_element",
2737 FT_NONE
, BASE_NONE
, NULL
, 0,
2740 { "name", "x509if.name",
2741 FT_UINT32
, BASE_DEC
, NULL
, 0,
2742 "SET_SIZE_1_MAX_OF_DirectoryString", HFILL
}},
2743 { &hf_x509if_name_item
,
2744 { "DirectoryString", "x509if.DirectoryString",
2745 FT_UINT32
, BASE_DEC
, VALS(x509sat_DirectoryString_vals
), 0,
2747 { &hf_x509if_description
,
2748 { "description", "x509if.description",
2749 FT_UINT32
, BASE_DEC
, VALS(x509sat_DirectoryString_vals
), 0,
2750 "DirectoryString", HFILL
}},
2751 { &hf_x509if_AllowedSubset_baseObject
,
2752 { "baseObject", "x509if.baseObject",
2753 FT_BOOLEAN
, 8, NULL
, 0x80,
2755 { &hf_x509if_AllowedSubset_oneLevel
,
2756 { "oneLevel", "x509if.oneLevel",
2757 FT_BOOLEAN
, 8, NULL
, 0x40,
2759 { &hf_x509if_AllowedSubset_wholeSubtree
,
2760 { "wholeSubtree", "x509if.wholeSubtree",
2761 FT_BOOLEAN
, 8, NULL
, 0x20,
2764 /*--- End of included file: packet-x509if-hfarr.c ---*/
2765 #line 134 "../../asn1/x509if/packet-x509if-template.c"
2768 /* List of subtrees */
2769 static gint
*ett
[] = {
2771 /*--- Included file: packet-x509if-ettarr.c ---*/
2772 #line 1 "../../asn1/x509if/packet-x509if-ettarr.c"
2773 &ett_x509if_Attribute
,
2774 &ett_x509if_T_values
,
2775 &ett_x509if_T_valuesWithContext
,
2776 &ett_x509if_T_valuesWithContext_item
,
2777 &ett_x509if_SET_SIZE_1_MAX_OF_Context
,
2778 &ett_x509if_Context
,
2779 &ett_x509if_T_contextValues
,
2780 &ett_x509if_AttributeValueAssertion
,
2781 &ett_x509if_T_assertedContexts
,
2782 &ett_x509if_SET_SIZE_1_MAX_OF_ContextAssertion
,
2783 &ett_x509if_ContextAssertion
,
2784 &ett_x509if_T_ca_contextValues
,
2785 &ett_x509if_AttributeTypeAssertion
,
2786 &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextAssertion
,
2788 &ett_x509if_RDNSequence
,
2789 &ett_x509if_RelativeDistinguishedName
,
2790 &ett_x509if_AttributeTypeAndDistinguishedValue
,
2791 &ett_x509if_T_valWithContext
,
2792 &ett_x509if_T_valWithContext_item
,
2793 &ett_x509if_SubtreeSpecification
,
2794 &ett_x509if_ChopSpecification
,
2795 &ett_x509if_T_chopSpecificExclusions
,
2796 &ett_x509if_T_chopSpecificExclusions_item
,
2797 &ett_x509if_Refinement
,
2798 &ett_x509if_SET_OF_Refinement
,
2799 &ett_x509if_DITStructureRule
,
2800 &ett_x509if_SET_SIZE_1_MAX_OF_RuleIdentifier
,
2801 &ett_x509if_DITContentRule
,
2802 &ett_x509if_T_auxiliaries
,
2803 &ett_x509if_T_mandatory
,
2804 &ett_x509if_T_optional
,
2805 &ett_x509if_T_precluded
,
2806 &ett_x509if_DITContextUse
,
2807 &ett_x509if_T_mandatoryContexts
,
2808 &ett_x509if_T_optionalContexts
,
2809 &ett_x509if_SearchRuleDescription
,
2810 &ett_x509if_SearchRule
,
2811 &ett_x509if_SearchRuleId
,
2812 &ett_x509if_AllowedSubset
,
2813 &ett_x509if_RequestAttribute
,
2814 &ett_x509if_T_ra_selectedValues
,
2815 &ett_x509if_T_defaultValues
,
2816 &ett_x509if_T_defaultValues_item
,
2817 &ett_x509if_T_ra_values
,
2818 &ett_x509if_SEQUENCE_SIZE_0_MAX_OF_ContextProfile
,
2819 &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MatchingUse
,
2820 &ett_x509if_ContextProfile
,
2821 &ett_x509if_T_contextValue
,
2822 &ett_x509if_ContextCombination
,
2823 &ett_x509if_SEQUENCE_OF_ContextCombination
,
2824 &ett_x509if_MatchingUse
,
2825 &ett_x509if_AttributeCombination
,
2826 &ett_x509if_SEQUENCE_OF_AttributeCombination
,
2827 &ett_x509if_ResultAttribute
,
2828 &ett_x509if_T_outputValues
,
2829 &ett_x509if_T_selectedValues
,
2830 &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextProfile
,
2831 &ett_x509if_ControlOptions
,
2832 &ett_x509if_EntryLimit
,
2833 &ett_x509if_RelaxationPolicy
,
2834 &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MRMapping
,
2835 &ett_x509if_MRMapping
,
2836 &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_Mapping
,
2837 &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MRSubstitution
,
2838 &ett_x509if_Mapping
,
2839 &ett_x509if_MRSubstitution
,
2840 &ett_x509if_T_specificExclusions
,
2841 &ett_x509if_T_specificExclusions_item
,
2842 &ett_x509if_SEQUENCE_SIZE_0_MAX_OF_RequestAttribute
,
2843 &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ResultAttribute
,
2844 &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_AttributeType
,
2845 &ett_x509if_SET_SIZE_1_MAX_OF_DirectoryString
,
2847 /*--- End of included file: packet-x509if-ettarr.c ---*/
2848 #line 139 "../../asn1/x509if/packet-x509if-template.c"
2851 /* Register protocol */
2852 proto_x509if
= proto_register_protocol(PNAME
, PSNAME
, PFNAME
);
2854 /* Register fields and subtrees */
2855 proto_register_field_array(proto_x509if
, hf
, array_length(hf
));
2856 proto_register_subtree_array(ett
, array_length(ett
));
2858 /* initialise array */
2859 fmt_vals
[0].value
= 0;
2860 fmt_vals
[0].strptr
= NULL
;
2865 /*--- proto_reg_handoff_x509if -------------------------------------------*/
2866 void proto_reg_handoff_x509if(void) {
2868 /*--- Included file: packet-x509if-dis-tab.c ---*/
2869 #line 1 "../../asn1/x509if/packet-x509if-dis-tab.c"
2870 register_ber_oid_dissector("2.5.4.1", dissect_DistinguishedName_PDU
, proto_x509if
, "id-at-aliasedEntryName");
2871 register_ber_oid_dissector("2.5.4.31", dissect_DistinguishedName_PDU
, proto_x509if
, "id-at-member");
2872 register_ber_oid_dissector("2.5.4.32", dissect_DistinguishedName_PDU
, proto_x509if
, "id-at-owner");
2873 register_ber_oid_dissector("2.5.4.33", dissect_DistinguishedName_PDU
, proto_x509if
, "id-at-roleOccupant");
2874 register_ber_oid_dissector("2.5.4.34", dissect_DistinguishedName_PDU
, proto_x509if
, "id-at-seeAlso");
2875 register_ber_oid_dissector("2.5.4.49", dissect_DistinguishedName_PDU
, proto_x509if
, "id-at-distinguishedName");
2876 register_ber_oid_dissector("2.5.18.3", dissect_DistinguishedName_PDU
, proto_x509if
, "id-oa-creatorsName");
2877 register_ber_oid_dissector("2.5.18.4", dissect_DistinguishedName_PDU
, proto_x509if
, "id-oa-modifiersName");
2878 register_ber_oid_dissector("2.5.18.6", dissect_SubtreeSpecification_PDU
, proto_x509if
, "id-oa-subtreeSpecification");
2879 register_ber_oid_dissector("2.5.18.10", dissect_DistinguishedName_PDU
, proto_x509if
, "id-oa-subschemaSubentry");
2880 register_ber_oid_dissector("2.5.18.11", dissect_DistinguishedName_PDU
, proto_x509if
, "id-oa-accessControlSubentry");
2881 register_ber_oid_dissector("2.5.18.12", dissect_DistinguishedName_PDU
, proto_x509if
, "id-oa-collectiveAttributeSubentry");
2882 register_ber_oid_dissector("2.5.18.13", dissect_DistinguishedName_PDU
, proto_x509if
, "id-oa-contextDefaultSubentry");
2883 register_ber_oid_dissector("2.5.18.17", dissect_HierarchyLevel_PDU
, proto_x509if
, "id-oa-hierarchyLevel");
2884 register_ber_oid_dissector("2.5.18.18", dissect_HierarchyBelow_PDU
, proto_x509if
, "iid-oa-hierarchyBelow");
2885 register_ber_oid_dissector("2.6.5.2.5", dissect_DistinguishedName_PDU
, proto_x509if
, "id-at-mhs-message-store-dn");
2886 register_ber_oid_dissector("2.6.5.2.14", dissect_DistinguishedName_PDU
, proto_x509if
, "id-at-mhs-dl-related-lists");
2887 register_ber_oid_dissector("2.16.840.1.101.2.2.1.3", dissect_DistinguishedName_PDU
, proto_x509if
, "id-at-alternateRecipient");
2888 register_ber_oid_dissector("2.16.840.1.101.2.2.1.4", dissect_DistinguishedName_PDU
, proto_x509if
, "id-at-associatedOrganization");
2889 register_ber_oid_dissector("2.16.840.1.101.2.2.1.6", dissect_DistinguishedName_PDU
, proto_x509if
, "id-at-associatedPLA");
2890 register_ber_oid_dissector("2.16.840.1.101.2.2.1.49", dissect_DistinguishedName_PDU
, proto_x509if
, "id-at-aliasPointer");
2891 register_ber_oid_dissector("2.16.840.1.101.2.2.1.61", dissect_DistinguishedName_PDU
, proto_x509if
, "id-at-listPointer");
2892 register_ber_oid_dissector("2.16.840.1.101.2.2.1.110", dissect_DistinguishedName_PDU
, proto_x509if
, "id-at-administrator");
2893 register_ber_oid_dissector("2.16.840.1.101.2.2.1.111", dissect_DistinguishedName_PDU
, proto_x509if
, "id-at-aigsExpanded");
2894 register_ber_oid_dissector("2.16.840.1.101.2.2.1.113", dissect_DistinguishedName_PDU
, proto_x509if
, "id-at-associatedAL");
2895 register_ber_oid_dissector("2.16.840.1.101.2.2.1.114", dissect_DistinguishedName_PDU
, proto_x509if
, "id-at-copyMember");
2896 register_ber_oid_dissector("2.16.840.1.101.2.2.1.117", dissect_DistinguishedName_PDU
, proto_x509if
, "id-at-guard");
2897 register_ber_oid_dissector("2.16.840.1.101.2.2.1.121", dissect_DistinguishedName_PDU
, proto_x509if
, "id-at-networkDN");
2898 register_ber_oid_dissector("2.16.840.1.101.2.2.1.138", dissect_DistinguishedName_PDU
, proto_x509if
, "id-at-plasServed");
2899 register_ber_oid_dissector("2.16.840.1.101.2.2.1.139", dissect_DistinguishedName_PDU
, proto_x509if
, "id-at-deployed");
2900 register_ber_oid_dissector("2.16.840.1.101.2.2.1.140", dissect_DistinguishedName_PDU
, proto_x509if
, "id-at-garrison");
2901 register_ber_oid_dissector("2.16.840.1.101.2.2.1.184", dissect_DistinguishedName_PDU
, proto_x509if
, "id-at-aCPDutyOfficer");
2902 register_ber_oid_dissector("2.16.840.1.101.2.2.1.188", dissect_DistinguishedName_PDU
, proto_x509if
, "id-at-primaryMember");
2905 /*--- End of included file: packet-x509if-dis-tab.c ---*/
2906 #line 158 "../../asn1/x509if/packet-x509if-template.c"