1 /* Do not modify this file. */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler */
4 /* ../../tools/asn2wrs.py -b -e -p x509if -c ./x509if.cnf -s ./packet-x509if-template -D . InformationFramework.asn ServiceAdministration.asn */
6 /* Input file: packet-x509if-template.c */
8 #line 1 "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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
39 #include <epan/packet.h>
40 #include <epan/oids.h>
41 #include <epan/asn1.h>
43 #include "packet-ber.h"
44 #include "packet-dap.h"
45 #include "packet-x509if.h"
46 #include "packet-x509sat.h"
47 #include <epan/strutil.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 "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 "packet-x509if-template.c"
219 /* Initialize the subtree pointers */
221 /*--- Included file: packet-x509if-ett.c ---*/
222 #line 1 "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 "packet-x509if-template.c"
300 static const char *object_identifier_id;
301 static proto_tree *top_of_dn = NULL;
302 static proto_tree *top_of_rdn = NULL;
304 static gboolean rdn_one_value = FALSE; /* have we seen one value in an RDN yet */
305 static gboolean dn_one_rdn = FALSE; /* have we seen one RDN in a DN yet */
306 static gboolean doing_dn = TRUE;
307 static gboolean doing_attr = FALSE;
309 #define MAX_RDN_STR_LEN 64
310 #define MAX_DN_STR_LEN (20 * MAX_RDN_STR_LEN)
312 static char *last_dn = NULL;
313 static char *last_rdn = NULL;
315 static int ava_hf_index;
316 #define MAX_FMT_VALS 32
317 static value_string fmt_vals[MAX_FMT_VALS];
318 #define MAX_AVA_STR_LEN 64
319 static char *last_ava = NULL;
322 /*--- Included file: packet-x509if-fn.c ---*/
323 #line 1 "packet-x509if-fn.c"
324 /*--- Cyclic dependencies ---*/
326 /* Refinement -> Refinement/and -> Refinement */
327 /* Refinement -> Refinement */
328 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_);
330 /* ContextCombination -> ContextCombination/and -> ContextCombination */
331 /* ContextCombination -> ContextCombination */
332 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_);
334 /* AttributeCombination -> AttributeCombination/and -> AttributeCombination */
335 /* AttributeCombination -> AttributeCombination */
336 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_);
342 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_) {
343 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
351 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_) {
352 #line 310 "x509if.cnf"
353 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
361 static const ber_sequence_t T_values_set_of[1] = {
362 { &hf_x509if_values_item , BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_values_item },
366 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_) {
367 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
368 T_values_set_of, hf_index, ett_x509if_T_values);
376 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_) {
377 #line 280 "x509if.cnf"
378 offset=call_ber_oid_callback("unknown", tvb, offset, actx->pinfo, tree);
388 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_) {
389 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
397 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_) {
398 #line 292 "x509if.cnf"
399 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
407 static const ber_sequence_t T_contextValues_set_of[1] = {
408 { &hf_x509if_contextValues_item, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_contextValues_item },
412 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_) {
413 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
414 T_contextValues_set_of, hf_index, ett_x509if_T_contextValues);
422 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_) {
423 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
429 static const ber_sequence_t Context_sequence[] = {
430 { &hf_x509if_contextType , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_T_contextType },
431 { &hf_x509if_contextValues, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509if_T_contextValues },
432 { &hf_x509if_fallback , BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_BOOLEAN },
433 { NULL, 0, 0, 0, NULL }
437 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_) {
438 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
439 Context_sequence, hf_index, ett_x509if_Context);
445 static const ber_sequence_t SET_SIZE_1_MAX_OF_Context_set_of[1] = {
446 { &hf_x509if_contextList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_Context },
450 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_) {
451 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
452 SET_SIZE_1_MAX_OF_Context_set_of, hf_index, ett_x509if_SET_SIZE_1_MAX_OF_Context);
458 static const ber_sequence_t T_valuesWithContext_item_sequence[] = {
459 { &hf_x509if_value , BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_value },
460 { &hf_x509if_contextList , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509if_SET_SIZE_1_MAX_OF_Context },
461 { NULL, 0, 0, 0, NULL }
465 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_) {
466 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
467 T_valuesWithContext_item_sequence, hf_index, ett_x509if_T_valuesWithContext_item);
473 static const ber_sequence_t T_valuesWithContext_set_of[1] = {
474 { &hf_x509if_valuesWithContext_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_T_valuesWithContext_item },
478 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_) {
479 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
480 T_valuesWithContext_set_of, hf_index, ett_x509if_T_valuesWithContext);
486 static const ber_sequence_t Attribute_sequence[] = {
487 { &hf_x509if_type , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_T_type },
488 { &hf_x509if_values , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509if_T_values },
489 { &hf_x509if_valuesWithContext, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_T_valuesWithContext },
490 { NULL, 0, 0, 0, NULL }
494 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_) {
495 #line 411 "x509if.cnf"
498 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
499 Attribute_sequence, hf_index, ett_x509if_Attribute);
511 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_) {
512 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
520 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_) {
521 #line 298 "x509if.cnf"
522 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
532 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_) {
533 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
541 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_) {
542 #line 304 "x509if.cnf"
543 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
553 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_) {
554 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
562 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_) {
563 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
571 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_) {
572 #line 184 "x509if.cnf"
573 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
581 static const ber_sequence_t T_ca_contextValues_set_of[1] = {
582 { &hf_x509if_ca_contextValues_item, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_ca_contextValues_item },
586 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_) {
587 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
588 T_ca_contextValues_set_of, hf_index, ett_x509if_T_ca_contextValues);
594 static const ber_sequence_t ContextAssertion_sequence[] = {
595 { &hf_x509if_ca_contextType, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_T_ca_contextType },
596 { &hf_x509if_ca_contextValues, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509if_T_ca_contextValues },
597 { NULL, 0, 0, 0, NULL }
601 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_) {
602 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
603 ContextAssertion_sequence, hf_index, ett_x509if_ContextAssertion);
609 static const ber_sequence_t SET_SIZE_1_MAX_OF_ContextAssertion_set_of[1] = {
610 { &hf_x509if_selectedContexts_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_ContextAssertion },
614 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_) {
615 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
616 SET_SIZE_1_MAX_OF_ContextAssertion_set_of, hf_index, ett_x509if_SET_SIZE_1_MAX_OF_ContextAssertion);
622 static const value_string x509if_T_assertedContexts_vals[] = {
623 { 0, "allContexts" },
624 { 1, "selectedContexts" },
628 static const ber_choice_t T_assertedContexts_choice[] = {
629 { 0, &hf_x509if_allContexts , BER_CLASS_CON, 0, 0, dissect_x509if_NULL },
630 { 1, &hf_x509if_selectedContexts, BER_CLASS_CON, 1, 0, dissect_x509if_SET_SIZE_1_MAX_OF_ContextAssertion },
631 { 0, NULL, 0, 0, 0, NULL }
635 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_) {
636 offset = dissect_ber_choice(actx, tree, tvb, offset,
637 T_assertedContexts_choice, hf_index, ett_x509if_T_assertedContexts,
644 static const ber_sequence_t AttributeValueAssertion_sequence[] = {
645 { &hf_x509if_type_01 , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_T_type_01 },
646 { &hf_x509if_assertion , BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_assertion },
647 { &hf_x509if_assertedContexts, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509if_T_assertedContexts },
648 { NULL, 0, 0, 0, NULL }
652 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_) {
653 #line 402 "x509if.cnf"
655 ava_hf_index = hf_index;
656 last_ava = ep_alloc(MAX_AVA_STR_LEN); *last_ava = '\0';
658 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
659 AttributeValueAssertion_sequence, hf_index, ett_x509if_AttributeValueAssertion);
672 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_) {
673 offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
679 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_ContextAssertion_sequence_of[1] = {
680 { &hf_x509if_ata_assertedContexts_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_ContextAssertion },
684 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_) {
685 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
686 SEQUENCE_SIZE_1_MAX_OF_ContextAssertion_sequence_of, hf_index, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextAssertion);
692 static const ber_sequence_t AttributeTypeAssertion_sequence[] = {
693 { &hf_x509if_type_02 , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_OBJECT_IDENTIFIER },
694 { &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 },
695 { NULL, 0, 0, 0, NULL }
699 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_) {
700 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
701 AttributeTypeAssertion_sequence, hf_index, ett_x509if_AttributeTypeAssertion);
709 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_) {
710 #line 190 "x509if.cnf"
714 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
717 if(object_identifier_id) {
718 /* see if we can find a nice name */
719 name = oid_resolved_from_string(object_identifier_id);
720 if(!name) name = object_identifier_id;
722 if(doing_dn) { /* append it to the RDN */
723 g_strlcat(last_rdn, name, MAX_RDN_STR_LEN);
724 g_strlcat(last_rdn, "=", MAX_RDN_STR_LEN);
726 /* append it to the tree */
727 proto_item_append_text(tree, " (%s=", name);
731 /* append it to the parent item */
732 proto_item_append_text(tree, " (%s)", name);
735 if((fmt = val_to_str(hf_index, fmt_vals, "")) && *fmt) {
736 /* we have a format */
737 last_ava = ep_alloc(MAX_AVA_STR_LEN); *last_ava = '\0';
739 g_snprintf(last_ava, MAX_AVA_STR_LEN, "%s %s", name, fmt);
741 proto_item_append_text(tree, " %s", last_ava);
754 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_) {
755 #line 225 "x509if.cnf"
756 int old_offset = offset;
760 const char *name = NULL;
761 const char *orig_oid = object_identifier_id;
763 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
765 /* in dissecting the value we may have overridden the OID of the value - which is
766 a problem if there are multiple values */
767 object_identifier_id = orig_oid;
769 /* try and dissect as a string */
770 dissect_ber_octet_string(FALSE, actx, NULL, tvb, old_offset, hf_x509if_any_string, &out_tvb);
772 /* should also try and dissect as an OID and integer */
773 /* of course, if I can look up the syntax .... */
776 /* it was a string - format it */
777 value = tvb_format_text(out_tvb, 0, tvb_length(out_tvb));
780 g_strlcat(last_rdn, value, MAX_RDN_STR_LEN);
782 /* append it to the tree*/
783 proto_item_append_text(tree, "%s)", value);
786 if((fmt = val_to_str(ava_hf_index, fmt_vals, "")) && *fmt) {
787 /* we have a format */
789 if(!(name = oid_resolved_from_string(object_identifier_id)))
790 name = object_identifier_id;
791 g_snprintf(last_ava, MAX_AVA_STR_LEN, "%s %s %s", name, fmt, value);
793 proto_item_append_text(tree, " %s", last_ava);
806 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_) {
807 #line 325 "x509if.cnf"
808 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
816 static const ber_sequence_t T_valWithContext_item_sequence[] = {
817 { &hf_x509if_distingAttrValue, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509if_T_distingAttrValue },
818 { &hf_x509if_contextList , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509if_SET_SIZE_1_MAX_OF_Context },
819 { NULL, 0, 0, 0, NULL }
823 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_) {
824 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
825 T_valWithContext_item_sequence, hf_index, ett_x509if_T_valWithContext_item);
831 static const ber_sequence_t T_valWithContext_set_of[1] = {
832 { &hf_x509if_valueswithContext_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_T_valWithContext_item },
836 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_) {
837 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
838 T_valWithContext_set_of, hf_index, ett_x509if_T_valWithContext);
844 static const ber_sequence_t AttributeTypeAndDistinguishedValue_sequence[] = {
845 { &hf_x509if_type_03 , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_T_type_02 },
846 { &hf_x509if_atadv_value , BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_atadv_value },
847 { &hf_x509if_primaryDistinguished, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_BOOLEAN },
848 { &hf_x509if_valueswithContext, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_T_valWithContext },
849 { NULL, 0, 0, 0, NULL }
853 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_) {
854 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
855 AttributeTypeAndDistinguishedValue_sequence, hf_index, ett_x509if_AttributeTypeAndDistinguishedValue);
863 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_) {
864 #line 356 "x509if.cnf"
871 /* this is an additional value - delimit */
872 g_strlcat(last_rdn, "+", MAX_RDN_STR_LEN);
875 offset = dissect_x509if_AttributeTypeAndDistinguishedValue(implicit_tag, tvb, offset, actx, tree, hf_index);
878 rdn_one_value = TRUE;
886 static const ber_sequence_t RelativeDistinguishedName_set_of[1] = {
887 { &hf_x509if_RelativeDistinguishedName_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_RelativeDistinguishedName_item },
891 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_) {
892 #line 328 "x509if.cnf"
895 rdn_one_value = FALSE;
897 last_rdn = ep_alloc(MAX_DN_STR_LEN); *last_rdn = '\0';
900 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
901 RelativeDistinguishedName_set_of, hf_index, ett_x509if_RelativeDistinguishedName);
904 /* we've finished - close the bracket */
905 proto_item_append_text(top_of_rdn, " (%s)", last_rdn);
907 /* now append this to the DN */
910 temp_dn = ep_alloc(MAX_DN_STR_LEN); /* is there a better way to use ep_alloc here ? */
911 g_snprintf(temp_dn, MAX_DN_STR_LEN, "%s,%s", last_rdn, last_dn);
913 g_strlcat(last_dn, temp_dn, MAX_DN_STR_LEN);
915 g_strlcat(last_dn, last_rdn, MAX_DN_STR_LEN);
920 last_rdn = NULL; /* it will get freed when the next packet is dissected */
930 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_) {
931 #line 391 "x509if.cnf"
934 /* this is the first element - record the top */
938 offset = dissect_x509if_RelativeDistinguishedName(implicit_tag, tvb, offset, actx, tree, hf_index);
949 static const ber_sequence_t RDNSequence_sequence_of[1] = {
950 { &hf_x509if_RDNSequence_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509if_RDNSequence_item },
954 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_) {
955 #line 371 "x509if.cnf"
958 dn_one_rdn = FALSE; /* reset */
959 last_dn = ep_alloc(MAX_DN_STR_LEN); *last_dn = '\0';
962 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
963 RDNSequence_sequence_of, hf_index, ett_x509if_RDNSequence);
966 /* we've finished - append the dn */
967 proto_item_append_text(top_of_dn, " (%s)", last_dn);
969 /* see if we should append this to the col info */
970 if(check_col(actx->pinfo->cinfo, COL_INFO) &&
971 (fmt = val_to_str(hf_index, fmt_vals, "")) && *fmt) {
972 /* we have a format */
973 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s%s", fmt, last_dn);
983 const value_string x509if_Name_vals[] = {
984 { 0, "rdnSequence" },
988 static const ber_choice_t Name_choice[] = {
989 { 0, &hf_x509if_rdnSequence , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_RDNSequence },
990 { 0, NULL, 0, 0, 0, NULL }
994 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_) {
995 offset = dissect_ber_choice(actx, tree, tvb, offset,
996 Name_choice, hf_index, ett_x509if_Name,
1005 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_) {
1006 offset = dissect_x509if_RDNSequence(implicit_tag, tvb, offset, actx, tree, hf_index);
1014 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_) {
1015 offset = dissect_x509if_RDNSequence(implicit_tag, tvb, offset, actx, tree, hf_index);
1021 static const value_string x509if_T_specificExclusions_item_vals[] = {
1022 { 0, "chopBefore" },
1027 static const ber_choice_t T_specificExclusions_item_choice[] = {
1028 { 0, &hf_x509if_chopBefore , BER_CLASS_CON, 0, 0, dissect_x509if_LocalName },
1029 { 1, &hf_x509if_chopAfter , BER_CLASS_CON, 1, 0, dissect_x509if_LocalName },
1030 { 0, NULL, 0, 0, 0, NULL }
1034 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_) {
1035 offset = dissect_ber_choice(actx, tree, tvb, offset,
1036 T_specificExclusions_item_choice, hf_index, ett_x509if_T_specificExclusions_item,
1043 static const ber_sequence_t T_specificExclusions_set_of[1] = {
1044 { &hf_x509if_specificExclusions_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509if_T_specificExclusions_item },
1048 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_) {
1049 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1050 T_specificExclusions_set_of, hf_index, ett_x509if_T_specificExclusions);
1058 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_) {
1059 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1066 static const ber_sequence_t SET_OF_Refinement_set_of[1] = {
1067 { &hf_x509if_refinement_and_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509if_Refinement },
1071 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_) {
1072 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1073 SET_OF_Refinement_set_of, hf_index, ett_x509if_SET_OF_Refinement);
1079 const value_string x509if_Refinement_vals[] = {
1087 static const ber_choice_t Refinement_choice[] = {
1088 { 0, &hf_x509if_item , BER_CLASS_CON, 0, 0, dissect_x509if_OBJECT_IDENTIFIER },
1089 { 1, &hf_x509if_refinement_and, BER_CLASS_CON, 1, 0, dissect_x509if_SET_OF_Refinement },
1090 { 2, &hf_x509if_refinement_or, BER_CLASS_CON, 2, 0, dissect_x509if_SET_OF_Refinement },
1091 { 3, &hf_x509if_refinement_not, BER_CLASS_CON, 3, 0, dissect_x509if_Refinement },
1092 { 0, NULL, 0, 0, 0, NULL }
1096 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_) {
1097 offset = dissect_ber_choice(actx, tree, tvb, offset,
1098 Refinement_choice, hf_index, ett_x509if_Refinement,
1105 static const ber_sequence_t SubtreeSpecification_sequence[] = {
1106 { &hf_x509if_base , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509if_LocalName },
1107 { &hf_x509if_specificExclusions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_T_specificExclusions },
1108 { &hf_x509if_minimum , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_BaseDistance },
1109 { &hf_x509if_maximum , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_x509if_BaseDistance },
1110 { &hf_x509if_specificationFilter, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_x509if_Refinement },
1111 { NULL, 0, 0, 0, NULL }
1115 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_) {
1116 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1117 SubtreeSpecification_sequence, hf_index, ett_x509if_SubtreeSpecification);
1123 static const value_string x509if_T_chopSpecificExclusions_item_vals[] = {
1124 { 0, "chopBefore" },
1129 static const ber_choice_t T_chopSpecificExclusions_item_choice[] = {
1130 { 0, &hf_x509if_chopBefore , BER_CLASS_CON, 0, 0, dissect_x509if_LocalName },
1131 { 1, &hf_x509if_chopAfter , BER_CLASS_CON, 1, 0, dissect_x509if_LocalName },
1132 { 0, NULL, 0, 0, 0, NULL }
1136 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_) {
1137 offset = dissect_ber_choice(actx, tree, tvb, offset,
1138 T_chopSpecificExclusions_item_choice, hf_index, ett_x509if_T_chopSpecificExclusions_item,
1145 static const ber_sequence_t T_chopSpecificExclusions_set_of[1] = {
1146 { &hf_x509if_chopSpecificExclusions_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509if_T_chopSpecificExclusions_item },
1150 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_) {
1151 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1152 T_chopSpecificExclusions_set_of, hf_index, ett_x509if_T_chopSpecificExclusions);
1158 static const ber_sequence_t ChopSpecification_sequence[] = {
1159 { &hf_x509if_chopSpecificExclusions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_T_chopSpecificExclusions },
1160 { &hf_x509if_minimum , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_BaseDistance },
1161 { &hf_x509if_maximum , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_x509if_BaseDistance },
1162 { NULL, 0, 0, 0, NULL }
1166 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_) {
1167 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1168 ChopSpecification_sequence, hf_index, ett_x509if_ChopSpecification);
1174 const value_string x509if_AttributeUsage_vals[] = {
1175 { 0, "userApplications" },
1176 { 1, "directoryOperation" },
1177 { 2, "distributedOperation" },
1178 { 3, "dSAOperation" },
1184 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_) {
1185 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1194 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_) {
1195 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1202 static const ber_sequence_t SET_SIZE_1_MAX_OF_RuleIdentifier_set_of[1] = {
1203 { &hf_x509if_superiorStructureRules_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x509if_RuleIdentifier },
1207 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_) {
1208 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1209 SET_SIZE_1_MAX_OF_RuleIdentifier_set_of, hf_index, ett_x509if_SET_SIZE_1_MAX_OF_RuleIdentifier);
1215 static const ber_sequence_t DITStructureRule_sequence[] = {
1216 { &hf_x509if_ruleIdentifier, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x509if_RuleIdentifier },
1217 { &hf_x509if_nameForm , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_OBJECT_IDENTIFIER },
1218 { &hf_x509if_superiorStructureRules, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_SET_SIZE_1_MAX_OF_RuleIdentifier },
1219 { NULL, 0, 0, 0, NULL }
1223 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_) {
1224 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1225 DITStructureRule_sequence, hf_index, ett_x509if_DITStructureRule);
1231 static const ber_sequence_t T_auxiliaries_set_of[1] = {
1232 { &hf_x509if_auxiliaries_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_OBJECT_IDENTIFIER },
1236 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_) {
1237 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1238 T_auxiliaries_set_of, hf_index, ett_x509if_T_auxiliaries);
1244 static const ber_sequence_t T_mandatory_set_of[1] = {
1245 { &hf_x509if_mandatory_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_OBJECT_IDENTIFIER },
1249 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_) {
1250 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1251 T_mandatory_set_of, hf_index, ett_x509if_T_mandatory);
1257 static const ber_sequence_t T_optional_set_of[1] = {
1258 { &hf_x509if_optional_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_OBJECT_IDENTIFIER },
1262 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_) {
1263 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1264 T_optional_set_of, hf_index, ett_x509if_T_optional);
1270 static const ber_sequence_t T_precluded_set_of[1] = {
1271 { &hf_x509if_precluded_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_OBJECT_IDENTIFIER },
1275 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_) {
1276 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1277 T_precluded_set_of, hf_index, ett_x509if_T_precluded);
1283 static const ber_sequence_t DITContentRule_sequence[] = {
1284 { &hf_x509if_structuralObjectClass, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_OBJECT_IDENTIFIER },
1285 { &hf_x509if_auxiliaries , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_T_auxiliaries },
1286 { &hf_x509if_mandatory , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_T_mandatory },
1287 { &hf_x509if_optional , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_T_optional },
1288 { &hf_x509if_precluded , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_x509if_T_precluded },
1289 { NULL, 0, 0, 0, NULL }
1293 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_) {
1294 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1295 DITContentRule_sequence, hf_index, ett_x509if_DITContentRule);
1301 static const ber_sequence_t T_mandatoryContexts_set_of[1] = {
1302 { &hf_x509if_mandatoryContexts_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_OBJECT_IDENTIFIER },
1306 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_) {
1307 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1308 T_mandatoryContexts_set_of, hf_index, ett_x509if_T_mandatoryContexts);
1314 static const ber_sequence_t T_optionalContexts_set_of[1] = {
1315 { &hf_x509if_optionalContexts_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_OBJECT_IDENTIFIER },
1319 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_) {
1320 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1321 T_optionalContexts_set_of, hf_index, ett_x509if_T_optionalContexts);
1327 static const ber_sequence_t DITContextUse_sequence[] = {
1328 { &hf_x509if_attributeType, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_OBJECT_IDENTIFIER },
1329 { &hf_x509if_mandatoryContexts, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_T_mandatoryContexts },
1330 { &hf_x509if_optionalContexts, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_T_optionalContexts },
1331 { NULL, 0, 0, 0, NULL }
1335 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_) {
1336 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1337 DITContextUse_sequence, hf_index, ett_x509if_DITContextUse);
1345 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_) {
1346 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1355 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_) {
1356 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
1364 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_) {
1365 #line 271 "x509if.cnf"
1366 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
1374 static const ber_sequence_t T_ra_selectedValues_sequence_of[1] = {
1375 { &hf_x509if_ra_selectedValues_item, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_ra_selectedValues_item },
1379 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_) {
1380 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1381 T_ra_selectedValues_sequence_of, hf_index, ett_x509if_T_ra_selectedValues);
1389 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_) {
1390 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
1398 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_) {
1399 #line 277 "x509if.cnf"
1400 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
1408 static const ber_sequence_t T_ra_values_sequence_of[1] = {
1409 { &hf_x509if_ra_values_item, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_ra_values_item },
1413 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_) {
1414 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1415 T_ra_values_sequence_of, hf_index, ett_x509if_T_ra_values);
1421 static const ber_sequence_t T_defaultValues_item_sequence[] = {
1422 { &hf_x509if_entryType , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_T_entryType },
1423 { &hf_x509if_ra_values , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_T_ra_values },
1424 { NULL, 0, 0, 0, NULL }
1428 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_) {
1429 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1430 T_defaultValues_item_sequence, hf_index, ett_x509if_T_defaultValues_item);
1436 static const ber_sequence_t T_defaultValues_sequence_of[1] = {
1437 { &hf_x509if_defaultValues_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_T_defaultValues_item },
1441 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_) {
1442 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1443 T_defaultValues_sequence_of, hf_index, ett_x509if_T_defaultValues);
1451 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_) {
1452 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
1460 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_) {
1461 #line 316 "x509if.cnf"
1462 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
1470 static const ber_sequence_t T_contextValue_sequence_of[1] = {
1471 { &hf_x509if_contextValue_item, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_contextValue_item },
1475 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_) {
1476 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1477 T_contextValue_sequence_of, hf_index, ett_x509if_T_contextValue);
1483 static const ber_sequence_t ContextProfile_sequence[] = {
1484 { &hf_x509if_contextType_01, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_T_contextType_01 },
1485 { &hf_x509if_contextValue , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_T_contextValue },
1486 { NULL, 0, 0, 0, NULL }
1490 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_) {
1491 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1492 ContextProfile_sequence, hf_index, ett_x509if_ContextProfile);
1498 static const ber_sequence_t SEQUENCE_SIZE_0_MAX_OF_ContextProfile_sequence_of[1] = {
1499 { &hf_x509if_contexts_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_ContextProfile },
1503 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_) {
1504 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1505 SEQUENCE_SIZE_0_MAX_OF_ContextProfile_sequence_of, hf_index, ett_x509if_SEQUENCE_SIZE_0_MAX_OF_ContextProfile);
1511 static const ber_sequence_t SEQUENCE_OF_ContextCombination_sequence_of[1] = {
1512 { &hf_x509if_contextcombination_and_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509if_ContextCombination },
1516 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_) {
1517 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1518 SEQUENCE_OF_ContextCombination_sequence_of, hf_index, ett_x509if_SEQUENCE_OF_ContextCombination);
1524 const value_string x509if_ContextCombination_vals[] = {
1532 static const ber_choice_t ContextCombination_choice[] = {
1533 { 0, &hf_x509if_context , BER_CLASS_CON, 0, 0, dissect_x509if_OBJECT_IDENTIFIER },
1534 { 1, &hf_x509if_contextcombination_and, BER_CLASS_CON, 1, 0, dissect_x509if_SEQUENCE_OF_ContextCombination },
1535 { 2, &hf_x509if_contextcombination_or, BER_CLASS_CON, 2, 0, dissect_x509if_SEQUENCE_OF_ContextCombination },
1536 { 3, &hf_x509if_contextcombination_not, BER_CLASS_CON, 3, 0, dissect_x509if_ContextCombination },
1537 { 0, NULL, 0, 0, 0, NULL }
1541 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_) {
1542 offset = dissect_ber_choice(actx, tree, tvb, offset,
1543 ContextCombination_choice, hf_index, ett_x509if_ContextCombination,
1552 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_) {
1553 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
1561 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_) {
1562 #line 322 "x509if.cnf"
1563 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
1571 static const ber_sequence_t MatchingUse_sequence[] = {
1572 { &hf_x509if_restrictionType, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_T_restrictionType },
1573 { &hf_x509if_restrictionValue, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_restrictionValue },
1574 { NULL, 0, 0, 0, NULL }
1578 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_) {
1579 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1580 MatchingUse_sequence, hf_index, ett_x509if_MatchingUse);
1586 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_MatchingUse_sequence_of[1] = {
1587 { &hf_x509if_matchingUse_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_MatchingUse },
1591 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_) {
1592 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1593 SEQUENCE_SIZE_1_MAX_OF_MatchingUse_sequence_of, hf_index, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MatchingUse);
1599 static const ber_sequence_t RequestAttribute_sequence[] = {
1600 { &hf_x509if_attributeType_01, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_T_attributeType },
1601 { &hf_x509if_includeSubtypes, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509if_BOOLEAN },
1602 { &hf_x509if_ra_selectedValues, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_T_ra_selectedValues },
1603 { &hf_x509if_defaultValues, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_T_defaultValues },
1604 { &hf_x509if_contexts , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_0_MAX_OF_ContextProfile },
1605 { &hf_x509if_contextCombination, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_x509if_ContextCombination },
1606 { &hf_x509if_matchingUse , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_MatchingUse },
1607 { NULL, 0, 0, 0, NULL }
1611 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_) {
1612 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1613 RequestAttribute_sequence, hf_index, ett_x509if_RequestAttribute);
1619 static const ber_sequence_t SEQUENCE_SIZE_0_MAX_OF_RequestAttribute_sequence_of[1] = {
1620 { &hf_x509if_inputAttributeTypes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_RequestAttribute },
1624 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_) {
1625 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1626 SEQUENCE_SIZE_0_MAX_OF_RequestAttribute_sequence_of, hf_index, ett_x509if_SEQUENCE_SIZE_0_MAX_OF_RequestAttribute);
1632 static const ber_sequence_t SEQUENCE_OF_AttributeCombination_sequence_of[1] = {
1633 { &hf_x509if_and_item , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509if_AttributeCombination },
1637 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_) {
1638 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1639 SEQUENCE_OF_AttributeCombination_sequence_of, hf_index, ett_x509if_SEQUENCE_OF_AttributeCombination);
1645 const value_string x509if_AttributeCombination_vals[] = {
1653 static const ber_choice_t AttributeCombination_choice[] = {
1654 { 0, &hf_x509if_attribute , BER_CLASS_CON, 0, 0, dissect_x509if_AttributeType },
1655 { 1, &hf_x509if_and , BER_CLASS_CON, 1, 0, dissect_x509if_SEQUENCE_OF_AttributeCombination },
1656 { 2, &hf_x509if_or , BER_CLASS_CON, 2, 0, dissect_x509if_SEQUENCE_OF_AttributeCombination },
1657 { 3, &hf_x509if_not , BER_CLASS_CON, 3, 0, dissect_x509if_AttributeCombination },
1658 { 0, NULL, 0, 0, 0, NULL }
1662 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_) {
1663 offset = dissect_ber_choice(actx, tree, tvb, offset,
1664 AttributeCombination_choice, hf_index, ett_x509if_AttributeCombination,
1673 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_) {
1674 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
1682 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_) {
1683 #line 286 "x509if.cnf"
1684 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
1692 static const ber_sequence_t T_selectedValues_sequence_of[1] = {
1693 { &hf_x509if_selectedValues_item, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_selectedValues_item },
1697 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_) {
1698 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1699 T_selectedValues_sequence_of, hf_index, ett_x509if_T_selectedValues);
1705 static const value_string x509if_T_outputValues_vals[] = {
1706 { 0, "selectedValues" },
1707 { 1, "matchedValuesOnly" },
1711 static const ber_choice_t T_outputValues_choice[] = {
1712 { 0, &hf_x509if_selectedValues, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_T_selectedValues },
1713 { 1, &hf_x509if_matchedValuesOnly, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_x509if_NULL },
1714 { 0, NULL, 0, 0, 0, NULL }
1718 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_) {
1719 offset = dissect_ber_choice(actx, tree, tvb, offset,
1720 T_outputValues_choice, hf_index, ett_x509if_T_outputValues,
1727 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_ContextProfile_sequence_of[1] = {
1728 { &hf_x509if_contexts_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_ContextProfile },
1732 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_) {
1733 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1734 SEQUENCE_SIZE_1_MAX_OF_ContextProfile_sequence_of, hf_index, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextProfile);
1740 static const ber_sequence_t ResultAttribute_sequence[] = {
1741 { &hf_x509if_attributeType_02, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_T_attributeType_01 },
1742 { &hf_x509if_outputValues , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509if_T_outputValues },
1743 { &hf_x509if_contexts_01 , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextProfile },
1744 { NULL, 0, 0, 0, NULL }
1748 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_) {
1749 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1750 ResultAttribute_sequence, hf_index, ett_x509if_ResultAttribute);
1756 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_ResultAttribute_sequence_of[1] = {
1757 { &hf_x509if_outputAttributeTypes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_ResultAttribute },
1761 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_) {
1762 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1763 SEQUENCE_SIZE_1_MAX_OF_ResultAttribute_sequence_of, hf_index, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ResultAttribute);
1769 static const ber_sequence_t ControlOptions_sequence[] = {
1770 { &hf_x509if_serviceControls, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_dap_ServiceControlOptions },
1771 { &hf_x509if_searchOptions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_SearchControlOptions },
1772 { &hf_x509if_hierarchyOptions, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_HierarchySelections },
1773 { NULL, 0, 0, 0, NULL }
1777 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_) {
1778 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1779 ControlOptions_sequence, hf_index, ett_x509if_ControlOptions);
1785 static const ber_sequence_t Mapping_sequence[] = {
1786 { &hf_x509if_mappingFunction, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_OBJECT_IDENTIFIER },
1787 { &hf_x509if_level , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_INTEGER },
1788 { NULL, 0, 0, 0, NULL }
1792 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_) {
1793 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1794 Mapping_sequence, hf_index, ett_x509if_Mapping);
1800 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_Mapping_sequence_of[1] = {
1801 { &hf_x509if_mapping_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_Mapping },
1805 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_) {
1806 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1807 SEQUENCE_SIZE_1_MAX_OF_Mapping_sequence_of, hf_index, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_Mapping);
1813 static const ber_sequence_t MRSubstitution_sequence[] = {
1814 { &hf_x509if_attribute , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
1815 { &hf_x509if_oldMatchingRule, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509if_OBJECT_IDENTIFIER },
1816 { &hf_x509if_newMatchingRule, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_OBJECT_IDENTIFIER },
1817 { NULL, 0, 0, 0, NULL }
1821 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_) {
1822 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1823 MRSubstitution_sequence, hf_index, ett_x509if_MRSubstitution);
1829 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_MRSubstitution_sequence_of[1] = {
1830 { &hf_x509if_substitution_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_MRSubstitution },
1834 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_) {
1835 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1836 SEQUENCE_SIZE_1_MAX_OF_MRSubstitution_sequence_of, hf_index, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MRSubstitution);
1842 static const ber_sequence_t MRMapping_sequence[] = {
1843 { &hf_x509if_mapping , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_Mapping },
1844 { &hf_x509if_substitution , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_MRSubstitution },
1845 { NULL, 0, 0, 0, NULL }
1849 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_) {
1850 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1851 MRMapping_sequence, hf_index, ett_x509if_MRMapping);
1857 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_MRMapping_sequence_of[1] = {
1858 { &hf_x509if_tightenings_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_MRMapping },
1862 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_) {
1863 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1864 SEQUENCE_SIZE_1_MAX_OF_MRMapping_sequence_of, hf_index, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MRMapping);
1870 static const ber_sequence_t RelaxationPolicy_sequence[] = {
1871 { &hf_x509if_basic , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509if_MRMapping },
1872 { &hf_x509if_tightenings , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_MRMapping },
1873 { &hf_x509if_relaxations , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_MRMapping },
1874 { &hf_x509if_maximum_relaxation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_x509if_INTEGER },
1875 { &hf_x509if_minimum_relaxation, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_x509if_INTEGER },
1876 { NULL, 0, 0, 0, NULL }
1880 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_) {
1881 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1882 RelaxationPolicy_sequence, hf_index, ett_x509if_RelaxationPolicy);
1888 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_AttributeType_sequence_of[1] = {
1889 { &hf_x509if_additionalControl_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
1893 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_) {
1894 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1895 SEQUENCE_SIZE_1_MAX_OF_AttributeType_sequence_of, hf_index, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_AttributeType);
1901 static const asn_namedbit AllowedSubset_bits[] = {
1902 { 0, &hf_x509if_AllowedSubset_baseObject, -1, -1, "baseObject", NULL },
1903 { 1, &hf_x509if_AllowedSubset_oneLevel, -1, -1, "oneLevel", NULL },
1904 { 2, &hf_x509if_AllowedSubset_wholeSubtree, -1, -1, "wholeSubtree", NULL },
1905 { 0, NULL, 0, 0, NULL, NULL }
1909 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_) {
1910 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
1911 AllowedSubset_bits, hf_index, ett_x509if_AllowedSubset,
1918 const value_string x509if_ImposedSubset_vals[] = {
1919 { 0, "baseObject" },
1921 { 2, "wholeSubtree" },
1927 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_) {
1928 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1935 static const ber_sequence_t EntryLimit_sequence[] = {
1936 { &hf_x509if_default , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x509if_INTEGER },
1937 { &hf_x509if_max , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x509if_INTEGER },
1938 { NULL, 0, 0, 0, NULL }
1942 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_) {
1943 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1944 EntryLimit_sequence, hf_index, ett_x509if_EntryLimit);
1950 static const ber_sequence_t SET_SIZE_1_MAX_OF_DirectoryString_set_of[1] = {
1951 { &hf_x509if_name_item , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_x509sat_DirectoryString },
1955 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_) {
1956 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1957 SET_SIZE_1_MAX_OF_DirectoryString_set_of, hf_index, ett_x509if_SET_SIZE_1_MAX_OF_DirectoryString);
1963 static const ber_sequence_t SearchRuleDescription_sequence[] = {
1964 { &hf_x509if_id , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x509if_INTEGER },
1965 { &hf_x509if_dmdId , BER_CLASS_CON, 0, 0, dissect_x509if_OBJECT_IDENTIFIER },
1966 { &hf_x509if_serviceType , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_OBJECT_IDENTIFIER },
1967 { &hf_x509if_userClass , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_INTEGER },
1968 { &hf_x509if_inputAttributeTypes, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_0_MAX_OF_RequestAttribute },
1969 { &hf_x509if_attributeCombination, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_x509if_AttributeCombination },
1970 { &hf_x509if_outputAttributeTypes, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_ResultAttribute },
1971 { &hf_x509if_defaultControls, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_x509if_ControlOptions },
1972 { &hf_x509if_mandatoryControls, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_x509if_ControlOptions },
1973 { &hf_x509if_searchRuleControls, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_x509if_ControlOptions },
1974 { &hf_x509if_familyGrouping, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_dap_FamilyGrouping },
1975 { &hf_x509if_familyReturn , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL, dissect_dap_FamilyReturn },
1976 { &hf_x509if_relaxation , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL, dissect_x509if_RelaxationPolicy },
1977 { &hf_x509if_additionalControl, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_AttributeType },
1978 { &hf_x509if_allowedSubset, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL, dissect_x509if_AllowedSubset },
1979 { &hf_x509if_imposedSubset, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL, dissect_x509if_ImposedSubset },
1980 { &hf_x509if_entryLimit , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL, dissect_x509if_EntryLimit },
1981 { &hf_x509if_name , BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_x509if_SET_SIZE_1_MAX_OF_DirectoryString },
1982 { &hf_x509if_description , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509sat_DirectoryString },
1983 { NULL, 0, 0, 0, NULL }
1987 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_) {
1988 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1989 SearchRuleDescription_sequence, hf_index, ett_x509if_SearchRuleDescription);
1997 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_) {
1998 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2007 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_) {
2008 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
2014 static const ber_sequence_t SearchRule_sequence[] = {
2015 { &hf_x509if_id , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x509if_INTEGER },
2016 { &hf_x509if_dmdId , BER_CLASS_CON, 0, 0, dissect_x509if_OBJECT_IDENTIFIER },
2017 { &hf_x509if_serviceType , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_OBJECT_IDENTIFIER },
2018 { &hf_x509if_userClass , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_INTEGER },
2019 { &hf_x509if_inputAttributeTypes, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_0_MAX_OF_RequestAttribute },
2020 { &hf_x509if_attributeCombination, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_x509if_AttributeCombination },
2021 { &hf_x509if_outputAttributeTypes, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_ResultAttribute },
2022 { &hf_x509if_defaultControls, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_x509if_ControlOptions },
2023 { &hf_x509if_mandatoryControls, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_x509if_ControlOptions },
2024 { &hf_x509if_searchRuleControls, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_x509if_ControlOptions },
2025 { &hf_x509if_familyGrouping, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_dap_FamilyGrouping },
2026 { &hf_x509if_familyReturn , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL, dissect_dap_FamilyReturn },
2027 { &hf_x509if_relaxation , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL, dissect_x509if_RelaxationPolicy },
2028 { &hf_x509if_additionalControl, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_AttributeType },
2029 { &hf_x509if_allowedSubset, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL, dissect_x509if_AllowedSubset },
2030 { &hf_x509if_imposedSubset, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL, dissect_x509if_ImposedSubset },
2031 { &hf_x509if_entryLimit , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL, dissect_x509if_EntryLimit },
2032 { NULL, 0, 0, 0, NULL }
2036 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_) {
2037 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2038 SearchRule_sequence, hf_index, ett_x509if_SearchRule);
2044 static const ber_sequence_t SearchRuleId_sequence[] = {
2045 { &hf_x509if_id , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x509if_INTEGER },
2046 { &hf_x509if_dmdId , BER_CLASS_CON, 0, 0, dissect_x509if_OBJECT_IDENTIFIER },
2047 { NULL, 0, 0, 0, NULL }
2051 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_) {
2052 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2053 SearchRuleId_sequence, hf_index, ett_x509if_SearchRuleId);
2060 static void dissect_DistinguishedName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2061 asn1_ctx_t asn1_ctx;
2062 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2063 dissect_x509if_DistinguishedName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509if_DistinguishedName_PDU);
2065 static void dissect_SubtreeSpecification_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2066 asn1_ctx_t asn1_ctx;
2067 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2068 dissect_x509if_SubtreeSpecification(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509if_SubtreeSpecification_PDU);
2070 static void dissect_HierarchyLevel_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2071 asn1_ctx_t asn1_ctx;
2072 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2073 dissect_x509if_HierarchyLevel(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509if_HierarchyLevel_PDU);
2075 static void dissect_HierarchyBelow_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2076 asn1_ctx_t asn1_ctx;
2077 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2078 dissect_x509if_HierarchyBelow(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509if_HierarchyBelow_PDU);
2082 /*--- End of included file: packet-x509if-fn.c ---*/
2083 #line 76 "packet-x509if-template.c"
2085 const char * x509if_get_last_dn(void)
2090 gboolean x509if_register_fmt(int hf_index, const gchar *fmt)
2094 if(idx < (MAX_FMT_VALS - 1)) {
2096 fmt_vals[idx].value = hf_index;
2097 fmt_vals[idx].strptr = fmt;
2101 fmt_vals[idx].value = 0;
2102 fmt_vals[idx].strptr = NULL;
2107 return FALSE; /* couldn't register it */
2111 const char * x509if_get_last_ava(void)
2116 /*--- proto_register_x509if ----------------------------------------------*/
2117 void proto_register_x509if(void) {
2119 /* List of fields */
2120 static hf_register_info hf[] = {
2121 { &hf_x509if_object_identifier_id,
2122 { "Id", "x509if.id", FT_OID, BASE_NONE, NULL, 0,
2123 "Object identifier Id", HFILL }},
2124 { &hf_x509if_any_string,
2125 { "AnyString", "x509if.any.String", FT_BYTES, BASE_NONE,
2126 NULL, 0, "This is any String", HFILL }},
2129 /*--- Included file: packet-x509if-hfarr.c ---*/
2130 #line 1 "packet-x509if-hfarr.c"
2131 { &hf_x509if_DistinguishedName_PDU,
2132 { "DistinguishedName", "x509if.DistinguishedName",
2133 FT_UINT32, BASE_DEC, NULL, 0,
2135 { &hf_x509if_SubtreeSpecification_PDU,
2136 { "SubtreeSpecification", "x509if.SubtreeSpecification",
2137 FT_NONE, BASE_NONE, NULL, 0,
2139 { &hf_x509if_HierarchyLevel_PDU,
2140 { "HierarchyLevel", "x509if.HierarchyLevel",
2141 FT_INT32, BASE_DEC, NULL, 0,
2143 { &hf_x509if_HierarchyBelow_PDU,
2144 { "HierarchyBelow", "x509if.HierarchyBelow",
2145 FT_BOOLEAN, BASE_NONE, NULL, 0,
2148 { "type", "x509if.type",
2149 FT_OID, BASE_NONE, NULL, 0,
2151 { &hf_x509if_values,
2152 { "values", "x509if.values",
2153 FT_UINT32, BASE_DEC, NULL, 0,
2155 { &hf_x509if_values_item,
2156 { "values item", "x509if.values_item",
2157 FT_NONE, BASE_NONE, NULL, 0,
2159 { &hf_x509if_valuesWithContext,
2160 { "valuesWithContext", "x509if.valuesWithContext",
2161 FT_UINT32, BASE_DEC, NULL, 0,
2163 { &hf_x509if_valuesWithContext_item,
2164 { "valuesWithContext item", "x509if.valuesWithContext_item",
2165 FT_NONE, BASE_NONE, NULL, 0,
2166 "T_valuesWithContext_item", HFILL }},
2168 { "value", "x509if.value",
2169 FT_NONE, BASE_NONE, NULL, 0,
2171 { &hf_x509if_contextList,
2172 { "contextList", "x509if.contextList",
2173 FT_UINT32, BASE_DEC, NULL, 0,
2174 "SET_SIZE_1_MAX_OF_Context", HFILL }},
2175 { &hf_x509if_contextList_item,
2176 { "Context", "x509if.Context",
2177 FT_NONE, BASE_NONE, NULL, 0,
2179 { &hf_x509if_contextType,
2180 { "contextType", "x509if.contextType",
2181 FT_OID, BASE_NONE, NULL, 0,
2183 { &hf_x509if_contextValues,
2184 { "contextValues", "x509if.contextValues",
2185 FT_UINT32, BASE_DEC, NULL, 0,
2187 { &hf_x509if_contextValues_item,
2188 { "contextValues item", "x509if.contextValues_item",
2189 FT_NONE, BASE_NONE, NULL, 0,
2191 { &hf_x509if_fallback,
2192 { "fallback", "x509if.fallback",
2193 FT_BOOLEAN, BASE_NONE, NULL, 0,
2194 "BOOLEAN", HFILL }},
2195 { &hf_x509if_type_01,
2196 { "type", "x509if.type",
2197 FT_OID, BASE_NONE, NULL, 0,
2198 "T_type_01", HFILL }},
2199 { &hf_x509if_assertion,
2200 { "assertion", "x509if.assertion",
2201 FT_NONE, BASE_NONE, NULL, 0,
2203 { &hf_x509if_assertedContexts,
2204 { "assertedContexts", "x509if.assertedContexts",
2205 FT_UINT32, BASE_DEC, VALS(x509if_T_assertedContexts_vals), 0,
2207 { &hf_x509if_allContexts,
2208 { "allContexts", "x509if.allContexts",
2209 FT_NONE, BASE_NONE, NULL, 0,
2211 { &hf_x509if_selectedContexts,
2212 { "selectedContexts", "x509if.selectedContexts",
2213 FT_UINT32, BASE_DEC, NULL, 0,
2214 "SET_SIZE_1_MAX_OF_ContextAssertion", HFILL }},
2215 { &hf_x509if_selectedContexts_item,
2216 { "ContextAssertion", "x509if.ContextAssertion",
2217 FT_NONE, BASE_NONE, NULL, 0,
2219 { &hf_x509if_ca_contextType,
2220 { "contextType", "x509if.contextType",
2221 FT_OID, BASE_NONE, NULL, 0,
2222 "T_ca_contextType", HFILL }},
2223 { &hf_x509if_ca_contextValues,
2224 { "contextValues", "x509if.contextValues",
2225 FT_UINT32, BASE_DEC, NULL, 0,
2226 "T_ca_contextValues", HFILL }},
2227 { &hf_x509if_ca_contextValues_item,
2228 { "contextValues item", "x509if.contextValues_item",
2229 FT_NONE, BASE_NONE, NULL, 0,
2230 "T_ca_contextValues_item", HFILL }},
2231 { &hf_x509if_type_02,
2232 { "type", "x509if.type",
2233 FT_OID, BASE_NONE, NULL, 0,
2234 "OBJECT_IDENTIFIER", HFILL }},
2235 { &hf_x509if_ata_assertedContexts,
2236 { "assertedContexts", "x509if.assertedContexts",
2237 FT_UINT32, BASE_DEC, NULL, 0,
2238 "SEQUENCE_SIZE_1_MAX_OF_ContextAssertion", HFILL }},
2239 { &hf_x509if_ata_assertedContexts_item,
2240 { "ContextAssertion", "x509if.ContextAssertion",
2241 FT_NONE, BASE_NONE, NULL, 0,
2243 { &hf_x509if_rdnSequence,
2244 { "rdnSequence", "x509if.rdnSequence",
2245 FT_UINT32, BASE_DEC, NULL, 0,
2247 { &hf_x509if_RDNSequence_item,
2248 { "RDNSequence item", "x509if.RDNSequence_item",
2249 FT_UINT32, BASE_DEC, NULL, 0,
2251 { &hf_x509if_RelativeDistinguishedName_item,
2252 { "RelativeDistinguishedName item", "x509if.RelativeDistinguishedName_item",
2253 FT_NONE, BASE_NONE, NULL, 0,
2255 { &hf_x509if_type_03,
2256 { "type", "x509if.type",
2257 FT_OID, BASE_NONE, NULL, 0,
2258 "T_type_02", HFILL }},
2259 { &hf_x509if_atadv_value,
2260 { "value", "x509if.value",
2261 FT_NONE, BASE_NONE, NULL, 0,
2262 "T_atadv_value", HFILL }},
2263 { &hf_x509if_primaryDistinguished,
2264 { "primaryDistinguished", "x509if.primaryDistinguished",
2265 FT_BOOLEAN, BASE_NONE, NULL, 0,
2266 "BOOLEAN", HFILL }},
2267 { &hf_x509if_valueswithContext,
2268 { "valuesWithContext", "x509if.valuesWithContext",
2269 FT_UINT32, BASE_DEC, NULL, 0,
2270 "T_valWithContext", HFILL }},
2271 { &hf_x509if_valueswithContext_item,
2272 { "valuesWithContext item", "x509if.valuesWithContext_item",
2273 FT_NONE, BASE_NONE, NULL, 0,
2274 "T_valWithContext_item", HFILL }},
2275 { &hf_x509if_distingAttrValue,
2276 { "distingAttrValue", "x509if.distingAttrValue",
2277 FT_NONE, BASE_NONE, NULL, 0,
2279 { &hf_x509if_chopSpecificExclusions,
2280 { "specificExclusions", "x509if.specificExclusions",
2281 FT_UINT32, BASE_DEC, NULL, 0,
2282 "T_chopSpecificExclusions", HFILL }},
2283 { &hf_x509if_chopSpecificExclusions_item,
2284 { "specificExclusions item", "x509if.specificExclusions_item",
2285 FT_UINT32, BASE_DEC, VALS(x509if_T_chopSpecificExclusions_item_vals), 0,
2286 "T_chopSpecificExclusions_item", HFILL }},
2287 { &hf_x509if_chopBefore,
2288 { "chopBefore", "x509if.chopBefore",
2289 FT_UINT32, BASE_DEC, NULL, 0,
2290 "LocalName", HFILL }},
2291 { &hf_x509if_chopAfter,
2292 { "chopAfter", "x509if.chopAfter",
2293 FT_UINT32, BASE_DEC, NULL, 0,
2294 "LocalName", HFILL }},
2295 { &hf_x509if_minimum,
2296 { "minimum", "x509if.minimum",
2297 FT_UINT32, BASE_DEC, NULL, 0,
2298 "BaseDistance", HFILL }},
2299 { &hf_x509if_maximum,
2300 { "maximum", "x509if.maximum",
2301 FT_UINT32, BASE_DEC, NULL, 0,
2302 "BaseDistance", HFILL }},
2304 { "item", "x509if.item",
2305 FT_OID, BASE_NONE, NULL, 0,
2306 "OBJECT_IDENTIFIER", HFILL }},
2307 { &hf_x509if_refinement_and,
2308 { "and", "x509if.and",
2309 FT_UINT32, BASE_DEC, NULL, 0,
2310 "SET_OF_Refinement", HFILL }},
2311 { &hf_x509if_refinement_and_item,
2312 { "Refinement", "x509if.Refinement",
2313 FT_UINT32, BASE_DEC, VALS(x509if_Refinement_vals), 0,
2315 { &hf_x509if_refinement_or,
2316 { "or", "x509if.or",
2317 FT_UINT32, BASE_DEC, NULL, 0,
2318 "SET_OF_Refinement", HFILL }},
2319 { &hf_x509if_refinement_or_item,
2320 { "Refinement", "x509if.Refinement",
2321 FT_UINT32, BASE_DEC, VALS(x509if_Refinement_vals), 0,
2323 { &hf_x509if_refinement_not,
2324 { "not", "x509if.not",
2325 FT_UINT32, BASE_DEC, VALS(x509if_Refinement_vals), 0,
2326 "Refinement", HFILL }},
2327 { &hf_x509if_ruleIdentifier,
2328 { "ruleIdentifier", "x509if.ruleIdentifier",
2329 FT_INT32, BASE_DEC, NULL, 0,
2331 { &hf_x509if_nameForm,
2332 { "nameForm", "x509if.nameForm",
2333 FT_OID, BASE_NONE, NULL, 0,
2334 "OBJECT_IDENTIFIER", HFILL }},
2335 { &hf_x509if_superiorStructureRules,
2336 { "superiorStructureRules", "x509if.superiorStructureRules",
2337 FT_UINT32, BASE_DEC, NULL, 0,
2338 "SET_SIZE_1_MAX_OF_RuleIdentifier", HFILL }},
2339 { &hf_x509if_superiorStructureRules_item,
2340 { "RuleIdentifier", "x509if.RuleIdentifier",
2341 FT_INT32, BASE_DEC, NULL, 0,
2343 { &hf_x509if_structuralObjectClass,
2344 { "structuralObjectClass", "x509if.structuralObjectClass",
2345 FT_OID, BASE_NONE, NULL, 0,
2346 "OBJECT_IDENTIFIER", HFILL }},
2347 { &hf_x509if_auxiliaries,
2348 { "auxiliaries", "x509if.auxiliaries",
2349 FT_UINT32, BASE_DEC, NULL, 0,
2351 { &hf_x509if_auxiliaries_item,
2352 { "auxiliaries item", "x509if.auxiliaries_item",
2353 FT_OID, BASE_NONE, NULL, 0,
2354 "OBJECT_IDENTIFIER", HFILL }},
2355 { &hf_x509if_mandatory,
2356 { "mandatory", "x509if.mandatory",
2357 FT_UINT32, BASE_DEC, NULL, 0,
2359 { &hf_x509if_mandatory_item,
2360 { "mandatory item", "x509if.mandatory_item",
2361 FT_OID, BASE_NONE, NULL, 0,
2362 "OBJECT_IDENTIFIER", HFILL }},
2363 { &hf_x509if_optional,
2364 { "optional", "x509if.optional",
2365 FT_UINT32, BASE_DEC, NULL, 0,
2367 { &hf_x509if_optional_item,
2368 { "optional item", "x509if.optional_item",
2369 FT_OID, BASE_NONE, NULL, 0,
2370 "OBJECT_IDENTIFIER", HFILL }},
2371 { &hf_x509if_precluded,
2372 { "precluded", "x509if.precluded",
2373 FT_UINT32, BASE_DEC, NULL, 0,
2375 { &hf_x509if_precluded_item,
2376 { "precluded item", "x509if.precluded_item",
2377 FT_OID, BASE_NONE, NULL, 0,
2378 "OBJECT_IDENTIFIER", HFILL }},
2379 { &hf_x509if_attributeType,
2380 { "attributeType", "x509if.attributeType",
2381 FT_OID, BASE_NONE, NULL, 0,
2382 "OBJECT_IDENTIFIER", HFILL }},
2383 { &hf_x509if_mandatoryContexts,
2384 { "mandatoryContexts", "x509if.mandatoryContexts",
2385 FT_UINT32, BASE_DEC, NULL, 0,
2387 { &hf_x509if_mandatoryContexts_item,
2388 { "mandatoryContexts item", "x509if.mandatoryContexts_item",
2389 FT_OID, BASE_NONE, NULL, 0,
2390 "OBJECT_IDENTIFIER", HFILL }},
2391 { &hf_x509if_optionalContexts,
2392 { "optionalContexts", "x509if.optionalContexts",
2393 FT_UINT32, BASE_DEC, NULL, 0,
2395 { &hf_x509if_optionalContexts_item,
2396 { "optionalContexts item", "x509if.optionalContexts_item",
2397 FT_OID, BASE_NONE, NULL, 0,
2398 "OBJECT_IDENTIFIER", HFILL }},
2400 { "id", "x509if.id",
2401 FT_INT32, BASE_DEC, NULL, 0,
2402 "INTEGER", HFILL }},
2404 { "dmdId", "x509if.dmdId",
2405 FT_OID, BASE_NONE, NULL, 0,
2406 "OBJECT_IDENTIFIER", HFILL }},
2407 { &hf_x509if_attributeType_01,
2408 { "attributeType", "x509if.attributeType",
2409 FT_OID, BASE_NONE, NULL, 0,
2411 { &hf_x509if_includeSubtypes,
2412 { "includeSubtypes", "x509if.includeSubtypes",
2413 FT_BOOLEAN, BASE_NONE, NULL, 0,
2414 "BOOLEAN", HFILL }},
2415 { &hf_x509if_ra_selectedValues,
2416 { "selectedValues", "x509if.selectedValues",
2417 FT_UINT32, BASE_DEC, NULL, 0,
2418 "T_ra_selectedValues", HFILL }},
2419 { &hf_x509if_ra_selectedValues_item,
2420 { "selectedValues item", "x509if.selectedValues_item",
2421 FT_NONE, BASE_NONE, NULL, 0,
2422 "T_ra_selectedValues_item", HFILL }},
2423 { &hf_x509if_defaultValues,
2424 { "defaultValues", "x509if.defaultValues",
2425 FT_UINT32, BASE_DEC, NULL, 0,
2427 { &hf_x509if_defaultValues_item,
2428 { "defaultValues item", "x509if.defaultValues_item",
2429 FT_NONE, BASE_NONE, NULL, 0,
2431 { &hf_x509if_entryType,
2432 { "entryType", "x509if.entryType",
2433 FT_OID, BASE_NONE, NULL, 0,
2435 { &hf_x509if_ra_values,
2436 { "values", "x509if.values",
2437 FT_UINT32, BASE_DEC, NULL, 0,
2438 "T_ra_values", HFILL }},
2439 { &hf_x509if_ra_values_item,
2440 { "values item", "x509if.values_item",
2441 FT_NONE, BASE_NONE, NULL, 0,
2442 "T_ra_values_item", HFILL }},
2443 { &hf_x509if_contexts,
2444 { "contexts", "x509if.contexts",
2445 FT_UINT32, BASE_DEC, NULL, 0,
2446 "SEQUENCE_SIZE_0_MAX_OF_ContextProfile", HFILL }},
2447 { &hf_x509if_contexts_item,
2448 { "ContextProfile", "x509if.ContextProfile",
2449 FT_NONE, BASE_NONE, NULL, 0,
2451 { &hf_x509if_contextCombination,
2452 { "contextCombination", "x509if.contextCombination",
2453 FT_UINT32, BASE_DEC, VALS(x509if_ContextCombination_vals), 0,
2455 { &hf_x509if_matchingUse,
2456 { "matchingUse", "x509if.matchingUse",
2457 FT_UINT32, BASE_DEC, NULL, 0,
2458 "SEQUENCE_SIZE_1_MAX_OF_MatchingUse", HFILL }},
2459 { &hf_x509if_matchingUse_item,
2460 { "MatchingUse", "x509if.MatchingUse",
2461 FT_NONE, BASE_NONE, NULL, 0,
2463 { &hf_x509if_contextType_01,
2464 { "contextType", "x509if.contextType",
2465 FT_OID, BASE_NONE, NULL, 0,
2466 "T_contextType_01", HFILL }},
2467 { &hf_x509if_contextValue,
2468 { "contextValue", "x509if.contextValue",
2469 FT_UINT32, BASE_DEC, NULL, 0,
2471 { &hf_x509if_contextValue_item,
2472 { "contextValue item", "x509if.contextValue_item",
2473 FT_NONE, BASE_NONE, NULL, 0,
2475 { &hf_x509if_context,
2476 { "context", "x509if.context",
2477 FT_OID, BASE_NONE, NULL, 0,
2478 "OBJECT_IDENTIFIER", HFILL }},
2479 { &hf_x509if_contextcombination_and,
2480 { "and", "x509if.and",
2481 FT_UINT32, BASE_DEC, NULL, 0,
2482 "SEQUENCE_OF_ContextCombination", HFILL }},
2483 { &hf_x509if_contextcombination_and_item,
2484 { "ContextCombination", "x509if.ContextCombination",
2485 FT_UINT32, BASE_DEC, VALS(x509if_ContextCombination_vals), 0,
2487 { &hf_x509if_contextcombination_or,
2488 { "or", "x509if.or",
2489 FT_UINT32, BASE_DEC, NULL, 0,
2490 "SEQUENCE_OF_ContextCombination", HFILL }},
2491 { &hf_x509if_contextcombination_or_item,
2492 { "ContextCombination", "x509if.ContextCombination",
2493 FT_UINT32, BASE_DEC, VALS(x509if_ContextCombination_vals), 0,
2495 { &hf_x509if_contextcombination_not,
2496 { "not", "x509if.not",
2497 FT_UINT32, BASE_DEC, VALS(x509if_ContextCombination_vals), 0,
2498 "ContextCombination", HFILL }},
2499 { &hf_x509if_restrictionType,
2500 { "restrictionType", "x509if.restrictionType",
2501 FT_OID, BASE_NONE, NULL, 0,
2503 { &hf_x509if_restrictionValue,
2504 { "restrictionValue", "x509if.restrictionValue",
2505 FT_NONE, BASE_NONE, NULL, 0,
2507 { &hf_x509if_attribute,
2508 { "attribute", "x509if.attribute",
2509 FT_OID, BASE_NONE, NULL, 0,
2510 "AttributeType", HFILL }},
2512 { "and", "x509if.and",
2513 FT_UINT32, BASE_DEC, NULL, 0,
2514 "SEQUENCE_OF_AttributeCombination", HFILL }},
2515 { &hf_x509if_and_item,
2516 { "AttributeCombination", "x509if.AttributeCombination",
2517 FT_UINT32, BASE_DEC, VALS(x509if_AttributeCombination_vals), 0,
2520 { "or", "x509if.or",
2521 FT_UINT32, BASE_DEC, NULL, 0,
2522 "SEQUENCE_OF_AttributeCombination", HFILL }},
2523 { &hf_x509if_or_item,
2524 { "AttributeCombination", "x509if.AttributeCombination",
2525 FT_UINT32, BASE_DEC, VALS(x509if_AttributeCombination_vals), 0,
2528 { "not", "x509if.not",
2529 FT_UINT32, BASE_DEC, VALS(x509if_AttributeCombination_vals), 0,
2530 "AttributeCombination", HFILL }},
2531 { &hf_x509if_attributeType_02,
2532 { "attributeType", "x509if.attributeType",
2533 FT_OID, BASE_NONE, NULL, 0,
2534 "T_attributeType_01", HFILL }},
2535 { &hf_x509if_outputValues,
2536 { "outputValues", "x509if.outputValues",
2537 FT_UINT32, BASE_DEC, VALS(x509if_T_outputValues_vals), 0,
2539 { &hf_x509if_selectedValues,
2540 { "selectedValues", "x509if.selectedValues",
2541 FT_UINT32, BASE_DEC, NULL, 0,
2543 { &hf_x509if_selectedValues_item,
2544 { "selectedValues item", "x509if.selectedValues_item",
2545 FT_NONE, BASE_NONE, NULL, 0,
2547 { &hf_x509if_matchedValuesOnly,
2548 { "matchedValuesOnly", "x509if.matchedValuesOnly",
2549 FT_NONE, BASE_NONE, NULL, 0,
2551 { &hf_x509if_contexts_01,
2552 { "contexts", "x509if.contexts",
2553 FT_UINT32, BASE_DEC, NULL, 0,
2554 "SEQUENCE_SIZE_1_MAX_OF_ContextProfile", HFILL }},
2555 { &hf_x509if_serviceControls,
2556 { "serviceControls", "x509if.serviceControls",
2557 FT_NONE, BASE_NONE, NULL, 0,
2558 "ServiceControlOptions", HFILL }},
2559 { &hf_x509if_searchOptions,
2560 { "searchOptions", "x509if.searchOptions",
2561 FT_NONE, BASE_NONE, NULL, 0,
2562 "SearchControlOptions", HFILL }},
2563 { &hf_x509if_hierarchyOptions,
2564 { "hierarchyOptions", "x509if.hierarchyOptions",
2565 FT_NONE, BASE_NONE, NULL, 0,
2566 "HierarchySelections", HFILL }},
2567 { &hf_x509if_default,
2568 { "default", "x509if.default",
2569 FT_INT32, BASE_DEC, NULL, 0,
2570 "INTEGER", HFILL }},
2572 { "max", "x509if.max",
2573 FT_INT32, BASE_DEC, NULL, 0,
2574 "INTEGER", HFILL }},
2576 { "basic", "x509if.basic",
2577 FT_NONE, BASE_NONE, NULL, 0,
2578 "MRMapping", HFILL }},
2579 { &hf_x509if_tightenings,
2580 { "tightenings", "x509if.tightenings",
2581 FT_UINT32, BASE_DEC, NULL, 0,
2582 "SEQUENCE_SIZE_1_MAX_OF_MRMapping", HFILL }},
2583 { &hf_x509if_tightenings_item,
2584 { "MRMapping", "x509if.MRMapping",
2585 FT_NONE, BASE_NONE, NULL, 0,
2587 { &hf_x509if_relaxations,
2588 { "relaxations", "x509if.relaxations",
2589 FT_UINT32, BASE_DEC, NULL, 0,
2590 "SEQUENCE_SIZE_1_MAX_OF_MRMapping", HFILL }},
2591 { &hf_x509if_relaxations_item,
2592 { "MRMapping", "x509if.MRMapping",
2593 FT_NONE, BASE_NONE, NULL, 0,
2595 { &hf_x509if_maximum_relaxation,
2596 { "maximum", "x509if.maximum",
2597 FT_INT32, BASE_DEC, NULL, 0,
2598 "INTEGER", HFILL }},
2599 { &hf_x509if_minimum_relaxation,
2600 { "minimum", "x509if.minimum",
2601 FT_INT32, BASE_DEC, NULL, 0,
2602 "INTEGER", HFILL }},
2603 { &hf_x509if_mapping,
2604 { "mapping", "x509if.mapping",
2605 FT_UINT32, BASE_DEC, NULL, 0,
2606 "SEQUENCE_SIZE_1_MAX_OF_Mapping", HFILL }},
2607 { &hf_x509if_mapping_item,
2608 { "Mapping", "x509if.Mapping",
2609 FT_NONE, BASE_NONE, NULL, 0,
2611 { &hf_x509if_substitution,
2612 { "substitution", "x509if.substitution",
2613 FT_UINT32, BASE_DEC, NULL, 0,
2614 "SEQUENCE_SIZE_1_MAX_OF_MRSubstitution", HFILL }},
2615 { &hf_x509if_substitution_item,
2616 { "MRSubstitution", "x509if.MRSubstitution",
2617 FT_NONE, BASE_NONE, NULL, 0,
2619 { &hf_x509if_mappingFunction,
2620 { "mappingFunction", "x509if.mappingFunction",
2621 FT_OID, BASE_NONE, NULL, 0,
2622 "OBJECT_IDENTIFIER", HFILL }},
2624 { "level", "x509if.level",
2625 FT_INT32, BASE_DEC, NULL, 0,
2626 "INTEGER", HFILL }},
2627 { &hf_x509if_oldMatchingRule,
2628 { "oldMatchingRule", "x509if.oldMatchingRule",
2629 FT_OID, BASE_NONE, NULL, 0,
2630 "OBJECT_IDENTIFIER", HFILL }},
2631 { &hf_x509if_newMatchingRule,
2632 { "newMatchingRule", "x509if.newMatchingRule",
2633 FT_OID, BASE_NONE, NULL, 0,
2634 "OBJECT_IDENTIFIER", HFILL }},
2636 { "base", "x509if.base",
2637 FT_UINT32, BASE_DEC, NULL, 0,
2638 "LocalName", HFILL }},
2639 { &hf_x509if_specificExclusions,
2640 { "specificExclusions", "x509if.specificExclusions",
2641 FT_UINT32, BASE_DEC, NULL, 0,
2643 { &hf_x509if_specificExclusions_item,
2644 { "specificExclusions item", "x509if.specificExclusions_item",
2645 FT_UINT32, BASE_DEC, VALS(x509if_T_specificExclusions_item_vals), 0,
2647 { &hf_x509if_specificationFilter,
2648 { "specificationFilter", "x509if.specificationFilter",
2649 FT_UINT32, BASE_DEC, VALS(x509if_Refinement_vals), 0,
2650 "Refinement", HFILL }},
2651 { &hf_x509if_serviceType,
2652 { "serviceType", "x509if.serviceType",
2653 FT_OID, BASE_NONE, NULL, 0,
2654 "OBJECT_IDENTIFIER", HFILL }},
2655 { &hf_x509if_userClass,
2656 { "userClass", "x509if.userClass",
2657 FT_INT32, BASE_DEC, NULL, 0,
2658 "INTEGER", HFILL }},
2659 { &hf_x509if_inputAttributeTypes,
2660 { "inputAttributeTypes", "x509if.inputAttributeTypes",
2661 FT_UINT32, BASE_DEC, NULL, 0,
2662 "SEQUENCE_SIZE_0_MAX_OF_RequestAttribute", HFILL }},
2663 { &hf_x509if_inputAttributeTypes_item,
2664 { "RequestAttribute", "x509if.RequestAttribute",
2665 FT_NONE, BASE_NONE, NULL, 0,
2667 { &hf_x509if_attributeCombination,
2668 { "attributeCombination", "x509if.attributeCombination",
2669 FT_UINT32, BASE_DEC, VALS(x509if_AttributeCombination_vals), 0,
2671 { &hf_x509if_outputAttributeTypes,
2672 { "outputAttributeTypes", "x509if.outputAttributeTypes",
2673 FT_UINT32, BASE_DEC, NULL, 0,
2674 "SEQUENCE_SIZE_1_MAX_OF_ResultAttribute", HFILL }},
2675 { &hf_x509if_outputAttributeTypes_item,
2676 { "ResultAttribute", "x509if.ResultAttribute",
2677 FT_NONE, BASE_NONE, NULL, 0,
2679 { &hf_x509if_defaultControls,
2680 { "defaultControls", "x509if.defaultControls",
2681 FT_NONE, BASE_NONE, NULL, 0,
2682 "ControlOptions", HFILL }},
2683 { &hf_x509if_mandatoryControls,
2684 { "mandatoryControls", "x509if.mandatoryControls",
2685 FT_NONE, BASE_NONE, NULL, 0,
2686 "ControlOptions", HFILL }},
2687 { &hf_x509if_searchRuleControls,
2688 { "searchRuleControls", "x509if.searchRuleControls",
2689 FT_NONE, BASE_NONE, NULL, 0,
2690 "ControlOptions", HFILL }},
2691 { &hf_x509if_familyGrouping,
2692 { "familyGrouping", "x509if.familyGrouping",
2693 FT_NONE, BASE_NONE, NULL, 0,
2695 { &hf_x509if_familyReturn,
2696 { "familyReturn", "x509if.familyReturn",
2697 FT_NONE, BASE_NONE, NULL, 0,
2699 { &hf_x509if_relaxation,
2700 { "relaxation", "x509if.relaxation",
2701 FT_NONE, BASE_NONE, NULL, 0,
2702 "RelaxationPolicy", HFILL }},
2703 { &hf_x509if_additionalControl,
2704 { "additionalControl", "x509if.additionalControl",
2705 FT_UINT32, BASE_DEC, NULL, 0,
2706 "SEQUENCE_SIZE_1_MAX_OF_AttributeType", HFILL }},
2707 { &hf_x509if_additionalControl_item,
2708 { "AttributeType", "x509if.AttributeType",
2709 FT_OID, BASE_NONE, NULL, 0,
2711 { &hf_x509if_allowedSubset,
2712 { "allowedSubset", "x509if.allowedSubset",
2713 FT_BYTES, BASE_NONE, NULL, 0,
2715 { &hf_x509if_imposedSubset,
2716 { "imposedSubset", "x509if.imposedSubset",
2717 FT_UINT32, BASE_DEC, VALS(x509if_ImposedSubset_vals), 0,
2719 { &hf_x509if_entryLimit,
2720 { "entryLimit", "x509if.entryLimit",
2721 FT_NONE, BASE_NONE, NULL, 0,
2724 { "name", "x509if.name",
2725 FT_UINT32, BASE_DEC, NULL, 0,
2726 "SET_SIZE_1_MAX_OF_DirectoryString", HFILL }},
2727 { &hf_x509if_name_item,
2728 { "DirectoryString", "x509if.DirectoryString",
2729 FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
2731 { &hf_x509if_description,
2732 { "description", "x509if.description",
2733 FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
2734 "DirectoryString", HFILL }},
2735 { &hf_x509if_AllowedSubset_baseObject,
2736 { "baseObject", "x509if.baseObject",
2737 FT_BOOLEAN, 8, NULL, 0x80,
2739 { &hf_x509if_AllowedSubset_oneLevel,
2740 { "oneLevel", "x509if.oneLevel",
2741 FT_BOOLEAN, 8, NULL, 0x40,
2743 { &hf_x509if_AllowedSubset_wholeSubtree,
2744 { "wholeSubtree", "x509if.wholeSubtree",
2745 FT_BOOLEAN, 8, NULL, 0x20,
2748 /*--- End of included file: packet-x509if-hfarr.c ---*/
2749 #line 121 "packet-x509if-template.c"
2752 /* List of subtrees */
2753 static gint *ett[] = {
2755 /*--- Included file: packet-x509if-ettarr.c ---*/
2756 #line 1 "packet-x509if-ettarr.c"
2757 &ett_x509if_Attribute,
2758 &ett_x509if_T_values,
2759 &ett_x509if_T_valuesWithContext,
2760 &ett_x509if_T_valuesWithContext_item,
2761 &ett_x509if_SET_SIZE_1_MAX_OF_Context,
2762 &ett_x509if_Context,
2763 &ett_x509if_T_contextValues,
2764 &ett_x509if_AttributeValueAssertion,
2765 &ett_x509if_T_assertedContexts,
2766 &ett_x509if_SET_SIZE_1_MAX_OF_ContextAssertion,
2767 &ett_x509if_ContextAssertion,
2768 &ett_x509if_T_ca_contextValues,
2769 &ett_x509if_AttributeTypeAssertion,
2770 &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextAssertion,
2772 &ett_x509if_RDNSequence,
2773 &ett_x509if_RelativeDistinguishedName,
2774 &ett_x509if_AttributeTypeAndDistinguishedValue,
2775 &ett_x509if_T_valWithContext,
2776 &ett_x509if_T_valWithContext_item,
2777 &ett_x509if_SubtreeSpecification,
2778 &ett_x509if_ChopSpecification,
2779 &ett_x509if_T_chopSpecificExclusions,
2780 &ett_x509if_T_chopSpecificExclusions_item,
2781 &ett_x509if_Refinement,
2782 &ett_x509if_SET_OF_Refinement,
2783 &ett_x509if_DITStructureRule,
2784 &ett_x509if_SET_SIZE_1_MAX_OF_RuleIdentifier,
2785 &ett_x509if_DITContentRule,
2786 &ett_x509if_T_auxiliaries,
2787 &ett_x509if_T_mandatory,
2788 &ett_x509if_T_optional,
2789 &ett_x509if_T_precluded,
2790 &ett_x509if_DITContextUse,
2791 &ett_x509if_T_mandatoryContexts,
2792 &ett_x509if_T_optionalContexts,
2793 &ett_x509if_SearchRuleDescription,
2794 &ett_x509if_SearchRule,
2795 &ett_x509if_SearchRuleId,
2796 &ett_x509if_AllowedSubset,
2797 &ett_x509if_RequestAttribute,
2798 &ett_x509if_T_ra_selectedValues,
2799 &ett_x509if_T_defaultValues,
2800 &ett_x509if_T_defaultValues_item,
2801 &ett_x509if_T_ra_values,
2802 &ett_x509if_SEQUENCE_SIZE_0_MAX_OF_ContextProfile,
2803 &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MatchingUse,
2804 &ett_x509if_ContextProfile,
2805 &ett_x509if_T_contextValue,
2806 &ett_x509if_ContextCombination,
2807 &ett_x509if_SEQUENCE_OF_ContextCombination,
2808 &ett_x509if_MatchingUse,
2809 &ett_x509if_AttributeCombination,
2810 &ett_x509if_SEQUENCE_OF_AttributeCombination,
2811 &ett_x509if_ResultAttribute,
2812 &ett_x509if_T_outputValues,
2813 &ett_x509if_T_selectedValues,
2814 &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextProfile,
2815 &ett_x509if_ControlOptions,
2816 &ett_x509if_EntryLimit,
2817 &ett_x509if_RelaxationPolicy,
2818 &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MRMapping,
2819 &ett_x509if_MRMapping,
2820 &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_Mapping,
2821 &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MRSubstitution,
2822 &ett_x509if_Mapping,
2823 &ett_x509if_MRSubstitution,
2824 &ett_x509if_T_specificExclusions,
2825 &ett_x509if_T_specificExclusions_item,
2826 &ett_x509if_SEQUENCE_SIZE_0_MAX_OF_RequestAttribute,
2827 &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ResultAttribute,
2828 &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_AttributeType,
2829 &ett_x509if_SET_SIZE_1_MAX_OF_DirectoryString,
2831 /*--- End of included file: packet-x509if-ettarr.c ---*/
2832 #line 126 "packet-x509if-template.c"
2835 /* Register protocol */
2836 proto_x509if = proto_register_protocol(PNAME, PSNAME, PFNAME);
2838 /* Register fields and subtrees */
2839 proto_register_field_array(proto_x509if, hf, array_length(hf));
2840 proto_register_subtree_array(ett, array_length(ett));
2842 /* initialise array */
2843 fmt_vals[0].value = 0;
2844 fmt_vals[0].strptr = NULL;
2849 /*--- proto_reg_handoff_x509if -------------------------------------------*/
2850 void proto_reg_handoff_x509if(void) {
2852 /*--- Included file: packet-x509if-dis-tab.c ---*/
2853 #line 1 "packet-x509if-dis-tab.c"
2854 register_ber_oid_dissector("2.5.4.1", dissect_DistinguishedName_PDU, proto_x509if, "id-at-aliasedEntryName");
2855 register_ber_oid_dissector("2.5.4.31", dissect_DistinguishedName_PDU, proto_x509if, "id-at-member");
2856 register_ber_oid_dissector("2.5.4.32", dissect_DistinguishedName_PDU, proto_x509if, "id-at-owner");
2857 register_ber_oid_dissector("2.5.4.33", dissect_DistinguishedName_PDU, proto_x509if, "id-at-roleOccupant");
2858 register_ber_oid_dissector("2.5.4.34", dissect_DistinguishedName_PDU, proto_x509if, "id-at-seeAlso");
2859 register_ber_oid_dissector("2.5.4.49", dissect_DistinguishedName_PDU, proto_x509if, "id-at-distinguishedName");
2860 register_ber_oid_dissector("2.5.18.3", dissect_DistinguishedName_PDU, proto_x509if, "id-oa-creatorsName");
2861 register_ber_oid_dissector("2.5.18.4", dissect_DistinguishedName_PDU, proto_x509if, "id-oa-modifiersName");
2862 register_ber_oid_dissector("2.5.18.6", dissect_SubtreeSpecification_PDU, proto_x509if, "id-oa-subtreeSpecification");
2863 register_ber_oid_dissector("2.5.18.10", dissect_DistinguishedName_PDU, proto_x509if, "id-oa-subschemaSubentry");
2864 register_ber_oid_dissector("2.5.18.11", dissect_DistinguishedName_PDU, proto_x509if, "id-oa-accessControlSubentry");
2865 register_ber_oid_dissector("2.5.18.12", dissect_DistinguishedName_PDU, proto_x509if, "id-oa-collectiveAttributeSubentry");
2866 register_ber_oid_dissector("2.5.18.13", dissect_DistinguishedName_PDU, proto_x509if, "id-oa-contextDefaultSubentry");
2867 register_ber_oid_dissector("2.5.18.17", dissect_HierarchyLevel_PDU, proto_x509if, "id-oa-hierarchyLevel");
2868 register_ber_oid_dissector("2.5.18.18", dissect_HierarchyBelow_PDU, proto_x509if, "iid-oa-hierarchyBelow");
2869 register_ber_oid_dissector("2.6.5.2.5", dissect_DistinguishedName_PDU, proto_x509if, "id-at-mhs-message-store-dn");
2870 register_ber_oid_dissector("2.6.5.2.14", dissect_DistinguishedName_PDU, proto_x509if, "id-at-mhs-dl-related-lists");
2871 register_ber_oid_dissector("2.16.840.1.101.2.2.1.3", dissect_DistinguishedName_PDU, proto_x509if, "id-at-alternateRecipient");
2872 register_ber_oid_dissector("2.16.840.1.101.2.2.1.4", dissect_DistinguishedName_PDU, proto_x509if, "id-at-associatedOrganization");
2873 register_ber_oid_dissector("2.16.840.1.101.2.2.1.6", dissect_DistinguishedName_PDU, proto_x509if, "id-at-associatedPLA");
2874 register_ber_oid_dissector("2.16.840.1.101.2.2.1.49", dissect_DistinguishedName_PDU, proto_x509if, "id-at-aliasPointer");
2875 register_ber_oid_dissector("2.16.840.1.101.2.2.1.61", dissect_DistinguishedName_PDU, proto_x509if, "id-at-listPointer");
2876 register_ber_oid_dissector("2.16.840.1.101.2.2.1.110", dissect_DistinguishedName_PDU, proto_x509if, "id-at-administrator");
2877 register_ber_oid_dissector("2.16.840.1.101.2.2.1.111", dissect_DistinguishedName_PDU, proto_x509if, "id-at-aigsExpanded");
2878 register_ber_oid_dissector("2.16.840.1.101.2.2.1.113", dissect_DistinguishedName_PDU, proto_x509if, "id-at-associatedAL");
2879 register_ber_oid_dissector("2.16.840.1.101.2.2.1.114", dissect_DistinguishedName_PDU, proto_x509if, "id-at-copyMember");
2880 register_ber_oid_dissector("2.16.840.1.101.2.2.1.117", dissect_DistinguishedName_PDU, proto_x509if, "id-at-guard");
2881 register_ber_oid_dissector("2.16.840.1.101.2.2.1.121", dissect_DistinguishedName_PDU, proto_x509if, "id-at-networkDN");
2882 register_ber_oid_dissector("2.16.840.1.101.2.2.1.138", dissect_DistinguishedName_PDU, proto_x509if, "id-at-plasServed");
2883 register_ber_oid_dissector("2.16.840.1.101.2.2.1.139", dissect_DistinguishedName_PDU, proto_x509if, "id-at-deployed");
2884 register_ber_oid_dissector("2.16.840.1.101.2.2.1.140", dissect_DistinguishedName_PDU, proto_x509if, "id-at-garrison");
2887 /*--- End of included file: packet-x509if-dis-tab.c ---*/
2888 #line 145 "packet-x509if-template.c"