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>
46 #include "packet-ber.h"
47 #include "packet-dap.h"
48 #include "packet-x509if.h"
49 #include "packet-x509sat.h"
50 #include <epan/strutil.h>
52 #define PNAME "X.509 Information Framework"
53 #define PSNAME "X509IF"
54 #define PFNAME "x509if"
56 /* Initialize the protocol and registered fields */
57 int proto_x509if = -1;
58 static int hf_x509if_object_identifier_id = -1;
59 static int hf_x509if_any_string = -1;
61 /*--- Included file: packet-x509if-hf.c ---*/
62 #line 1 "packet-x509if-hf.c"
63 static int hf_x509if_DistinguishedName_PDU = -1; /* DistinguishedName */
64 static int hf_x509if_SubtreeSpecification_PDU = -1; /* SubtreeSpecification */
65 static int hf_x509if_HierarchyLevel_PDU = -1; /* HierarchyLevel */
66 static int hf_x509if_HierarchyBelow_PDU = -1; /* HierarchyBelow */
67 static int hf_x509if_type = -1; /* T_type */
68 static int hf_x509if_values = -1; /* T_values */
69 static int hf_x509if_values_item = -1; /* T_values_item */
70 static int hf_x509if_valuesWithContext = -1; /* T_valuesWithContext */
71 static int hf_x509if_valuesWithContext_item = -1; /* T_valuesWithContext_item */
72 static int hf_x509if_value = -1; /* T_value */
73 static int hf_x509if_contextList = -1; /* SET_SIZE_1_MAX_OF_Context */
74 static int hf_x509if_contextList_item = -1; /* Context */
75 static int hf_x509if_contextType = -1; /* T_contextType */
76 static int hf_x509if_contextValues = -1; /* T_contextValues */
77 static int hf_x509if_contextValues_item = -1; /* T_contextValues_item */
78 static int hf_x509if_fallback = -1; /* BOOLEAN */
79 static int hf_x509if_type_01 = -1; /* T_type_01 */
80 static int hf_x509if_assertion = -1; /* T_assertion */
81 static int hf_x509if_assertedContexts = -1; /* T_assertedContexts */
82 static int hf_x509if_allContexts = -1; /* NULL */
83 static int hf_x509if_selectedContexts = -1; /* SET_SIZE_1_MAX_OF_ContextAssertion */
84 static int hf_x509if_selectedContexts_item = -1; /* ContextAssertion */
85 static int hf_x509if_ca_contextType = -1; /* T_ca_contextType */
86 static int hf_x509if_ca_contextValues = -1; /* T_ca_contextValues */
87 static int hf_x509if_ca_contextValues_item = -1; /* T_ca_contextValues_item */
88 static int hf_x509if_type_02 = -1; /* OBJECT_IDENTIFIER */
89 static int hf_x509if_ata_assertedContexts = -1; /* SEQUENCE_SIZE_1_MAX_OF_ContextAssertion */
90 static int hf_x509if_ata_assertedContexts_item = -1; /* ContextAssertion */
91 static int hf_x509if_rdnSequence = -1; /* RDNSequence */
92 static int hf_x509if_RDNSequence_item = -1; /* RDNSequence_item */
93 static int hf_x509if_RelativeDistinguishedName_item = -1; /* RelativeDistinguishedName_item */
94 static int hf_x509if_type_03 = -1; /* T_type_02 */
95 static int hf_x509if_atadv_value = -1; /* T_atadv_value */
96 static int hf_x509if_primaryDistinguished = -1; /* BOOLEAN */
97 static int hf_x509if_valueswithContext = -1; /* T_valWithContext */
98 static int hf_x509if_valueswithContext_item = -1; /* T_valWithContext_item */
99 static int hf_x509if_distingAttrValue = -1; /* T_distingAttrValue */
100 static int hf_x509if_chopSpecificExclusions = -1; /* T_chopSpecificExclusions */
101 static int hf_x509if_chopSpecificExclusions_item = -1; /* T_chopSpecificExclusions_item */
102 static int hf_x509if_chopBefore = -1; /* LocalName */
103 static int hf_x509if_chopAfter = -1; /* LocalName */
104 static int hf_x509if_minimum = -1; /* BaseDistance */
105 static int hf_x509if_maximum = -1; /* BaseDistance */
106 static int hf_x509if_item = -1; /* OBJECT_IDENTIFIER */
107 static int hf_x509if_refinement_and = -1; /* SET_OF_Refinement */
108 static int hf_x509if_refinement_and_item = -1; /* Refinement */
109 static int hf_x509if_refinement_or = -1; /* SET_OF_Refinement */
110 static int hf_x509if_refinement_or_item = -1; /* Refinement */
111 static int hf_x509if_refinement_not = -1; /* Refinement */
112 static int hf_x509if_ruleIdentifier = -1; /* RuleIdentifier */
113 static int hf_x509if_nameForm = -1; /* OBJECT_IDENTIFIER */
114 static int hf_x509if_superiorStructureRules = -1; /* SET_SIZE_1_MAX_OF_RuleIdentifier */
115 static int hf_x509if_superiorStructureRules_item = -1; /* RuleIdentifier */
116 static int hf_x509if_structuralObjectClass = -1; /* OBJECT_IDENTIFIER */
117 static int hf_x509if_auxiliaries = -1; /* T_auxiliaries */
118 static int hf_x509if_auxiliaries_item = -1; /* OBJECT_IDENTIFIER */
119 static int hf_x509if_mandatory = -1; /* T_mandatory */
120 static int hf_x509if_mandatory_item = -1; /* OBJECT_IDENTIFIER */
121 static int hf_x509if_optional = -1; /* T_optional */
122 static int hf_x509if_optional_item = -1; /* OBJECT_IDENTIFIER */
123 static int hf_x509if_precluded = -1; /* T_precluded */
124 static int hf_x509if_precluded_item = -1; /* OBJECT_IDENTIFIER */
125 static int hf_x509if_attributeType = -1; /* OBJECT_IDENTIFIER */
126 static int hf_x509if_mandatoryContexts = -1; /* T_mandatoryContexts */
127 static int hf_x509if_mandatoryContexts_item = -1; /* OBJECT_IDENTIFIER */
128 static int hf_x509if_optionalContexts = -1; /* T_optionalContexts */
129 static int hf_x509if_optionalContexts_item = -1; /* OBJECT_IDENTIFIER */
130 static int hf_x509if_id = -1; /* INTEGER */
131 static int hf_x509if_dmdId = -1; /* OBJECT_IDENTIFIER */
132 static int hf_x509if_attributeType_01 = -1; /* T_attributeType */
133 static int hf_x509if_includeSubtypes = -1; /* BOOLEAN */
134 static int hf_x509if_ra_selectedValues = -1; /* T_ra_selectedValues */
135 static int hf_x509if_ra_selectedValues_item = -1; /* T_ra_selectedValues_item */
136 static int hf_x509if_defaultValues = -1; /* T_defaultValues */
137 static int hf_x509if_defaultValues_item = -1; /* T_defaultValues_item */
138 static int hf_x509if_entryType = -1; /* T_entryType */
139 static int hf_x509if_ra_values = -1; /* T_ra_values */
140 static int hf_x509if_ra_values_item = -1; /* T_ra_values_item */
141 static int hf_x509if_contexts = -1; /* SEQUENCE_SIZE_0_MAX_OF_ContextProfile */
142 static int hf_x509if_contexts_item = -1; /* ContextProfile */
143 static int hf_x509if_contextCombination = -1; /* ContextCombination */
144 static int hf_x509if_matchingUse = -1; /* SEQUENCE_SIZE_1_MAX_OF_MatchingUse */
145 static int hf_x509if_matchingUse_item = -1; /* MatchingUse */
146 static int hf_x509if_contextType_01 = -1; /* T_contextType_01 */
147 static int hf_x509if_contextValue = -1; /* T_contextValue */
148 static int hf_x509if_contextValue_item = -1; /* T_contextValue_item */
149 static int hf_x509if_context = -1; /* OBJECT_IDENTIFIER */
150 static int hf_x509if_contextcombination_and = -1; /* SEQUENCE_OF_ContextCombination */
151 static int hf_x509if_contextcombination_and_item = -1; /* ContextCombination */
152 static int hf_x509if_contextcombination_or = -1; /* SEQUENCE_OF_ContextCombination */
153 static int hf_x509if_contextcombination_or_item = -1; /* ContextCombination */
154 static int hf_x509if_contextcombination_not = -1; /* ContextCombination */
155 static int hf_x509if_restrictionType = -1; /* T_restrictionType */
156 static int hf_x509if_restrictionValue = -1; /* T_restrictionValue */
157 static int hf_x509if_attribute = -1; /* AttributeType */
158 static int hf_x509if_and = -1; /* SEQUENCE_OF_AttributeCombination */
159 static int hf_x509if_and_item = -1; /* AttributeCombination */
160 static int hf_x509if_or = -1; /* SEQUENCE_OF_AttributeCombination */
161 static int hf_x509if_or_item = -1; /* AttributeCombination */
162 static int hf_x509if_not = -1; /* AttributeCombination */
163 static int hf_x509if_attributeType_02 = -1; /* T_attributeType_01 */
164 static int hf_x509if_outputValues = -1; /* T_outputValues */
165 static int hf_x509if_selectedValues = -1; /* T_selectedValues */
166 static int hf_x509if_selectedValues_item = -1; /* T_selectedValues_item */
167 static int hf_x509if_matchedValuesOnly = -1; /* NULL */
168 static int hf_x509if_contexts_01 = -1; /* SEQUENCE_SIZE_1_MAX_OF_ContextProfile */
169 static int hf_x509if_serviceControls = -1; /* ServiceControlOptions */
170 static int hf_x509if_searchOptions = -1; /* SearchControlOptions */
171 static int hf_x509if_hierarchyOptions = -1; /* HierarchySelections */
172 static int hf_x509if_default = -1; /* INTEGER */
173 static int hf_x509if_max = -1; /* INTEGER */
174 static int hf_x509if_basic = -1; /* MRMapping */
175 static int hf_x509if_tightenings = -1; /* SEQUENCE_SIZE_1_MAX_OF_MRMapping */
176 static int hf_x509if_tightenings_item = -1; /* MRMapping */
177 static int hf_x509if_relaxations = -1; /* SEQUENCE_SIZE_1_MAX_OF_MRMapping */
178 static int hf_x509if_relaxations_item = -1; /* MRMapping */
179 static int hf_x509if_maximum_relaxation = -1; /* INTEGER */
180 static int hf_x509if_minimum_relaxation = -1; /* INTEGER */
181 static int hf_x509if_mapping = -1; /* SEQUENCE_SIZE_1_MAX_OF_Mapping */
182 static int hf_x509if_mapping_item = -1; /* Mapping */
183 static int hf_x509if_substitution = -1; /* SEQUENCE_SIZE_1_MAX_OF_MRSubstitution */
184 static int hf_x509if_substitution_item = -1; /* MRSubstitution */
185 static int hf_x509if_mappingFunction = -1; /* OBJECT_IDENTIFIER */
186 static int hf_x509if_level = -1; /* INTEGER */
187 static int hf_x509if_oldMatchingRule = -1; /* OBJECT_IDENTIFIER */
188 static int hf_x509if_newMatchingRule = -1; /* OBJECT_IDENTIFIER */
189 static int hf_x509if_base = -1; /* LocalName */
190 static int hf_x509if_specificExclusions = -1; /* T_specificExclusions */
191 static int hf_x509if_specificExclusions_item = -1; /* T_specificExclusions_item */
192 static int hf_x509if_specificationFilter = -1; /* Refinement */
193 static int hf_x509if_serviceType = -1; /* OBJECT_IDENTIFIER */
194 static int hf_x509if_userClass = -1; /* INTEGER */
195 static int hf_x509if_inputAttributeTypes = -1; /* SEQUENCE_SIZE_0_MAX_OF_RequestAttribute */
196 static int hf_x509if_inputAttributeTypes_item = -1; /* RequestAttribute */
197 static int hf_x509if_attributeCombination = -1; /* AttributeCombination */
198 static int hf_x509if_outputAttributeTypes = -1; /* SEQUENCE_SIZE_1_MAX_OF_ResultAttribute */
199 static int hf_x509if_outputAttributeTypes_item = -1; /* ResultAttribute */
200 static int hf_x509if_defaultControls = -1; /* ControlOptions */
201 static int hf_x509if_mandatoryControls = -1; /* ControlOptions */
202 static int hf_x509if_searchRuleControls = -1; /* ControlOptions */
203 static int hf_x509if_familyGrouping = -1; /* FamilyGrouping */
204 static int hf_x509if_familyReturn = -1; /* FamilyReturn */
205 static int hf_x509if_relaxation = -1; /* RelaxationPolicy */
206 static int hf_x509if_additionalControl = -1; /* SEQUENCE_SIZE_1_MAX_OF_AttributeType */
207 static int hf_x509if_additionalControl_item = -1; /* AttributeType */
208 static int hf_x509if_allowedSubset = -1; /* AllowedSubset */
209 static int hf_x509if_imposedSubset = -1; /* ImposedSubset */
210 static int hf_x509if_entryLimit = -1; /* EntryLimit */
211 static int hf_x509if_name = -1; /* SET_SIZE_1_MAX_OF_DirectoryString */
212 static int hf_x509if_name_item = -1; /* DirectoryString */
213 static int hf_x509if_description = -1; /* DirectoryString */
215 static int hf_x509if_AllowedSubset_baseObject = -1;
216 static int hf_x509if_AllowedSubset_oneLevel = -1;
217 static int hf_x509if_AllowedSubset_wholeSubtree = -1;
219 /*--- End of included file: packet-x509if-hf.c ---*/
220 #line 53 "packet-x509if-template.c"
222 /* Initialize the subtree pointers */
224 /*--- Included file: packet-x509if-ett.c ---*/
225 #line 1 "packet-x509if-ett.c"
226 static gint ett_x509if_Attribute = -1;
227 static gint ett_x509if_T_values = -1;
228 static gint ett_x509if_T_valuesWithContext = -1;
229 static gint ett_x509if_T_valuesWithContext_item = -1;
230 static gint ett_x509if_SET_SIZE_1_MAX_OF_Context = -1;
231 static gint ett_x509if_Context = -1;
232 static gint ett_x509if_T_contextValues = -1;
233 static gint ett_x509if_AttributeValueAssertion = -1;
234 static gint ett_x509if_T_assertedContexts = -1;
235 static gint ett_x509if_SET_SIZE_1_MAX_OF_ContextAssertion = -1;
236 static gint ett_x509if_ContextAssertion = -1;
237 static gint ett_x509if_T_ca_contextValues = -1;
238 static gint ett_x509if_AttributeTypeAssertion = -1;
239 static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextAssertion = -1;
240 static gint ett_x509if_Name = -1;
241 static gint ett_x509if_RDNSequence = -1;
242 static gint ett_x509if_RelativeDistinguishedName = -1;
243 static gint ett_x509if_AttributeTypeAndDistinguishedValue = -1;
244 static gint ett_x509if_T_valWithContext = -1;
245 static gint ett_x509if_T_valWithContext_item = -1;
246 static gint ett_x509if_SubtreeSpecification = -1;
247 static gint ett_x509if_ChopSpecification = -1;
248 static gint ett_x509if_T_chopSpecificExclusions = -1;
249 static gint ett_x509if_T_chopSpecificExclusions_item = -1;
250 static gint ett_x509if_Refinement = -1;
251 static gint ett_x509if_SET_OF_Refinement = -1;
252 static gint ett_x509if_DITStructureRule = -1;
253 static gint ett_x509if_SET_SIZE_1_MAX_OF_RuleIdentifier = -1;
254 static gint ett_x509if_DITContentRule = -1;
255 static gint ett_x509if_T_auxiliaries = -1;
256 static gint ett_x509if_T_mandatory = -1;
257 static gint ett_x509if_T_optional = -1;
258 static gint ett_x509if_T_precluded = -1;
259 static gint ett_x509if_DITContextUse = -1;
260 static gint ett_x509if_T_mandatoryContexts = -1;
261 static gint ett_x509if_T_optionalContexts = -1;
262 static gint ett_x509if_SearchRuleDescription = -1;
263 static gint ett_x509if_SearchRule = -1;
264 static gint ett_x509if_SearchRuleId = -1;
265 static gint ett_x509if_AllowedSubset = -1;
266 static gint ett_x509if_RequestAttribute = -1;
267 static gint ett_x509if_T_ra_selectedValues = -1;
268 static gint ett_x509if_T_defaultValues = -1;
269 static gint ett_x509if_T_defaultValues_item = -1;
270 static gint ett_x509if_T_ra_values = -1;
271 static gint ett_x509if_SEQUENCE_SIZE_0_MAX_OF_ContextProfile = -1;
272 static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MatchingUse = -1;
273 static gint ett_x509if_ContextProfile = -1;
274 static gint ett_x509if_T_contextValue = -1;
275 static gint ett_x509if_ContextCombination = -1;
276 static gint ett_x509if_SEQUENCE_OF_ContextCombination = -1;
277 static gint ett_x509if_MatchingUse = -1;
278 static gint ett_x509if_AttributeCombination = -1;
279 static gint ett_x509if_SEQUENCE_OF_AttributeCombination = -1;
280 static gint ett_x509if_ResultAttribute = -1;
281 static gint ett_x509if_T_outputValues = -1;
282 static gint ett_x509if_T_selectedValues = -1;
283 static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextProfile = -1;
284 static gint ett_x509if_ControlOptions = -1;
285 static gint ett_x509if_EntryLimit = -1;
286 static gint ett_x509if_RelaxationPolicy = -1;
287 static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MRMapping = -1;
288 static gint ett_x509if_MRMapping = -1;
289 static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_Mapping = -1;
290 static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MRSubstitution = -1;
291 static gint ett_x509if_Mapping = -1;
292 static gint ett_x509if_MRSubstitution = -1;
293 static gint ett_x509if_T_specificExclusions = -1;
294 static gint ett_x509if_T_specificExclusions_item = -1;
295 static gint ett_x509if_SEQUENCE_SIZE_0_MAX_OF_RequestAttribute = -1;
296 static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ResultAttribute = -1;
297 static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_AttributeType = -1;
298 static gint ett_x509if_SET_SIZE_1_MAX_OF_DirectoryString = -1;
300 /*--- End of included file: packet-x509if-ett.c ---*/
301 #line 56 "packet-x509if-template.c"
303 static const char *object_identifier_id;
304 static proto_tree *top_of_dn = NULL;
305 static proto_tree *top_of_rdn = NULL;
307 static gboolean rdn_one_value = FALSE; /* have we seen one value in an RDN yet */
308 static gboolean dn_one_rdn = FALSE; /* have we seen one RDN in a DN yet */
309 static gboolean doing_dn = TRUE;
310 static gboolean doing_attr = FALSE;
312 #define MAX_RDN_STR_LEN 64
313 #define MAX_DN_STR_LEN (20 * MAX_RDN_STR_LEN)
315 static char *last_dn = NULL;
316 static char *last_rdn = NULL;
318 static int ava_hf_index;
319 #define MAX_FMT_VALS 32
320 static value_string fmt_vals[MAX_FMT_VALS];
321 #define MAX_AVA_STR_LEN 64
322 static char *last_ava = NULL;
325 /*--- Included file: packet-x509if-fn.c ---*/
326 #line 1 "packet-x509if-fn.c"
327 /*--- Cyclic dependencies ---*/
329 /* Refinement -> Refinement/and -> Refinement */
330 /* Refinement -> Refinement */
331 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_);
333 /* ContextCombination -> ContextCombination/and -> ContextCombination */
334 /* ContextCombination -> ContextCombination */
335 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_);
337 /* AttributeCombination -> AttributeCombination/and -> AttributeCombination */
338 /* AttributeCombination -> AttributeCombination */
339 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_);
345 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_) {
346 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
354 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_) {
355 #line 310 "x509if.cnf"
356 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
364 static const ber_sequence_t T_values_set_of[1] = {
365 { &hf_x509if_values_item , BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_values_item },
369 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_) {
370 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
371 T_values_set_of, hf_index, ett_x509if_T_values);
379 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_) {
380 #line 280 "x509if.cnf"
381 offset=call_ber_oid_callback("unknown", tvb, offset, actx->pinfo, tree);
391 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_) {
392 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
400 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_) {
401 #line 292 "x509if.cnf"
402 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
410 static const ber_sequence_t T_contextValues_set_of[1] = {
411 { &hf_x509if_contextValues_item, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_contextValues_item },
415 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_) {
416 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
417 T_contextValues_set_of, hf_index, ett_x509if_T_contextValues);
425 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_) {
426 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
432 static const ber_sequence_t Context_sequence[] = {
433 { &hf_x509if_contextType , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_T_contextType },
434 { &hf_x509if_contextValues, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509if_T_contextValues },
435 { &hf_x509if_fallback , BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_BOOLEAN },
436 { NULL, 0, 0, 0, NULL }
440 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_) {
441 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
442 Context_sequence, hf_index, ett_x509if_Context);
448 static const ber_sequence_t SET_SIZE_1_MAX_OF_Context_set_of[1] = {
449 { &hf_x509if_contextList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_Context },
453 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_) {
454 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
455 SET_SIZE_1_MAX_OF_Context_set_of, hf_index, ett_x509if_SET_SIZE_1_MAX_OF_Context);
461 static const ber_sequence_t T_valuesWithContext_item_sequence[] = {
462 { &hf_x509if_value , BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_value },
463 { &hf_x509if_contextList , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509if_SET_SIZE_1_MAX_OF_Context },
464 { NULL, 0, 0, 0, NULL }
468 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_) {
469 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
470 T_valuesWithContext_item_sequence, hf_index, ett_x509if_T_valuesWithContext_item);
476 static const ber_sequence_t T_valuesWithContext_set_of[1] = {
477 { &hf_x509if_valuesWithContext_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_T_valuesWithContext_item },
481 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_) {
482 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
483 T_valuesWithContext_set_of, hf_index, ett_x509if_T_valuesWithContext);
489 static const ber_sequence_t Attribute_sequence[] = {
490 { &hf_x509if_type , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_T_type },
491 { &hf_x509if_values , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509if_T_values },
492 { &hf_x509if_valuesWithContext, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_T_valuesWithContext },
493 { NULL, 0, 0, 0, NULL }
497 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_) {
498 #line 411 "x509if.cnf"
501 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
502 Attribute_sequence, hf_index, ett_x509if_Attribute);
514 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_) {
515 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
523 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_) {
524 #line 298 "x509if.cnf"
525 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
535 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_) {
536 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
544 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_) {
545 #line 304 "x509if.cnf"
546 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
556 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_) {
557 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
565 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_) {
566 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
574 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_) {
575 #line 184 "x509if.cnf"
576 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
584 static const ber_sequence_t T_ca_contextValues_set_of[1] = {
585 { &hf_x509if_ca_contextValues_item, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_ca_contextValues_item },
589 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_) {
590 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
591 T_ca_contextValues_set_of, hf_index, ett_x509if_T_ca_contextValues);
597 static const ber_sequence_t ContextAssertion_sequence[] = {
598 { &hf_x509if_ca_contextType, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_T_ca_contextType },
599 { &hf_x509if_ca_contextValues, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509if_T_ca_contextValues },
600 { NULL, 0, 0, 0, NULL }
604 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_) {
605 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
606 ContextAssertion_sequence, hf_index, ett_x509if_ContextAssertion);
612 static const ber_sequence_t SET_SIZE_1_MAX_OF_ContextAssertion_set_of[1] = {
613 { &hf_x509if_selectedContexts_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_ContextAssertion },
617 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_) {
618 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
619 SET_SIZE_1_MAX_OF_ContextAssertion_set_of, hf_index, ett_x509if_SET_SIZE_1_MAX_OF_ContextAssertion);
625 static const value_string x509if_T_assertedContexts_vals[] = {
626 { 0, "allContexts" },
627 { 1, "selectedContexts" },
631 static const ber_choice_t T_assertedContexts_choice[] = {
632 { 0, &hf_x509if_allContexts , BER_CLASS_CON, 0, 0, dissect_x509if_NULL },
633 { 1, &hf_x509if_selectedContexts, BER_CLASS_CON, 1, 0, dissect_x509if_SET_SIZE_1_MAX_OF_ContextAssertion },
634 { 0, NULL, 0, 0, 0, NULL }
638 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_) {
639 offset = dissect_ber_choice(actx, tree, tvb, offset,
640 T_assertedContexts_choice, hf_index, ett_x509if_T_assertedContexts,
647 static const ber_sequence_t AttributeValueAssertion_sequence[] = {
648 { &hf_x509if_type_01 , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_T_type_01 },
649 { &hf_x509if_assertion , BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_assertion },
650 { &hf_x509if_assertedContexts, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509if_T_assertedContexts },
651 { NULL, 0, 0, 0, NULL }
655 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_) {
656 #line 402 "x509if.cnf"
658 ava_hf_index = hf_index;
659 last_ava = ep_alloc(MAX_AVA_STR_LEN); *last_ava = '\0';
661 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
662 AttributeValueAssertion_sequence, hf_index, ett_x509if_AttributeValueAssertion);
675 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_) {
676 offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
682 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_ContextAssertion_sequence_of[1] = {
683 { &hf_x509if_ata_assertedContexts_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_ContextAssertion },
687 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_) {
688 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
689 SEQUENCE_SIZE_1_MAX_OF_ContextAssertion_sequence_of, hf_index, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextAssertion);
695 static const ber_sequence_t AttributeTypeAssertion_sequence[] = {
696 { &hf_x509if_type_02 , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_OBJECT_IDENTIFIER },
697 { &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 },
698 { NULL, 0, 0, 0, NULL }
702 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_) {
703 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
704 AttributeTypeAssertion_sequence, hf_index, ett_x509if_AttributeTypeAssertion);
712 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_) {
713 #line 190 "x509if.cnf"
717 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
720 if(object_identifier_id) {
721 /* see if we can find a nice name */
722 name = oid_resolved_from_string(object_identifier_id);
723 if(!name) name = object_identifier_id;
725 if(doing_dn) { /* append it to the RDN */
726 g_strlcat(last_rdn, name, MAX_RDN_STR_LEN);
727 g_strlcat(last_rdn, "=", MAX_RDN_STR_LEN);
729 /* append it to the tree */
730 proto_item_append_text(tree, " (%s=", name);
734 /* append it to the parent item */
735 proto_item_append_text(tree, " (%s)", name);
738 if((fmt = val_to_str(hf_index, fmt_vals, "")) && *fmt) {
739 /* we have a format */
740 last_ava = ep_alloc(MAX_AVA_STR_LEN); *last_ava = '\0';
742 g_snprintf(last_ava, MAX_AVA_STR_LEN, "%s %s", name, fmt);
744 proto_item_append_text(tree, " %s", last_ava);
757 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_) {
758 #line 225 "x509if.cnf"
759 int old_offset = offset;
763 const char *name = NULL;
764 const char *orig_oid = object_identifier_id;
766 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
768 /* in dissecting the value we may have overridden the OID of the value - which is
769 a problem if there are multiple values */
770 object_identifier_id = orig_oid;
772 /* try and dissect as a string */
773 dissect_ber_octet_string(FALSE, actx, NULL, tvb, old_offset, hf_x509if_any_string, &out_tvb);
775 /* should also try and dissect as an OID and integer */
776 /* of course, if I can look up the syntax .... */
779 /* it was a string - format it */
780 value = tvb_format_text(out_tvb, 0, tvb_length(out_tvb));
783 g_strlcat(last_rdn, value, MAX_RDN_STR_LEN);
785 /* append it to the tree*/
786 proto_item_append_text(tree, "%s)", value);
789 if((fmt = val_to_str(ava_hf_index, fmt_vals, "")) && *fmt) {
790 /* we have a format */
792 if(!(name = oid_resolved_from_string(object_identifier_id)))
793 name = object_identifier_id;
794 g_snprintf(last_ava, MAX_AVA_STR_LEN, "%s %s %s", name, fmt, value);
796 proto_item_append_text(tree, " %s", last_ava);
809 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_) {
810 #line 325 "x509if.cnf"
811 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
819 static const ber_sequence_t T_valWithContext_item_sequence[] = {
820 { &hf_x509if_distingAttrValue, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509if_T_distingAttrValue },
821 { &hf_x509if_contextList , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509if_SET_SIZE_1_MAX_OF_Context },
822 { NULL, 0, 0, 0, NULL }
826 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_) {
827 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
828 T_valWithContext_item_sequence, hf_index, ett_x509if_T_valWithContext_item);
834 static const ber_sequence_t T_valWithContext_set_of[1] = {
835 { &hf_x509if_valueswithContext_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_T_valWithContext_item },
839 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_) {
840 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
841 T_valWithContext_set_of, hf_index, ett_x509if_T_valWithContext);
847 static const ber_sequence_t AttributeTypeAndDistinguishedValue_sequence[] = {
848 { &hf_x509if_type_03 , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_T_type_02 },
849 { &hf_x509if_atadv_value , BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_atadv_value },
850 { &hf_x509if_primaryDistinguished, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_BOOLEAN },
851 { &hf_x509if_valueswithContext, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_T_valWithContext },
852 { NULL, 0, 0, 0, NULL }
856 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_) {
857 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
858 AttributeTypeAndDistinguishedValue_sequence, hf_index, ett_x509if_AttributeTypeAndDistinguishedValue);
866 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_) {
867 #line 356 "x509if.cnf"
874 /* this is an additional value - delimit */
875 g_strlcat(last_rdn, "+", MAX_RDN_STR_LEN);
878 offset = dissect_x509if_AttributeTypeAndDistinguishedValue(implicit_tag, tvb, offset, actx, tree, hf_index);
881 rdn_one_value = TRUE;
889 static const ber_sequence_t RelativeDistinguishedName_set_of[1] = {
890 { &hf_x509if_RelativeDistinguishedName_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_RelativeDistinguishedName_item },
894 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_) {
895 #line 328 "x509if.cnf"
898 rdn_one_value = FALSE;
900 last_rdn = ep_alloc(MAX_DN_STR_LEN); *last_rdn = '\0';
903 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
904 RelativeDistinguishedName_set_of, hf_index, ett_x509if_RelativeDistinguishedName);
907 /* we've finished - close the bracket */
908 proto_item_append_text(top_of_rdn, " (%s)", last_rdn);
910 /* now append this to the DN */
913 temp_dn = ep_alloc(MAX_DN_STR_LEN); /* is there a better way to use ep_alloc here ? */
914 g_snprintf(temp_dn, MAX_DN_STR_LEN, "%s,%s", last_rdn, last_dn);
916 g_strlcat(last_dn, temp_dn, MAX_DN_STR_LEN);
918 g_strlcat(last_dn, last_rdn, MAX_DN_STR_LEN);
923 last_rdn = NULL; /* it will get freed when the next packet is dissected */
933 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_) {
934 #line 391 "x509if.cnf"
937 /* this is the first element - record the top */
941 offset = dissect_x509if_RelativeDistinguishedName(implicit_tag, tvb, offset, actx, tree, hf_index);
952 static const ber_sequence_t RDNSequence_sequence_of[1] = {
953 { &hf_x509if_RDNSequence_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509if_RDNSequence_item },
957 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_) {
958 #line 371 "x509if.cnf"
961 dn_one_rdn = FALSE; /* reset */
962 last_dn = ep_alloc(MAX_DN_STR_LEN); *last_dn = '\0';
965 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
966 RDNSequence_sequence_of, hf_index, ett_x509if_RDNSequence);
969 /* we've finished - append the dn */
970 proto_item_append_text(top_of_dn, " (%s)", last_dn);
972 /* see if we should append this to the col info */
973 if(check_col(actx->pinfo->cinfo, COL_INFO) &&
974 (fmt = val_to_str(hf_index, fmt_vals, "")) && *fmt) {
975 /* we have a format */
976 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s%s", fmt, last_dn);
986 const value_string x509if_Name_vals[] = {
987 { 0, "rdnSequence" },
991 static const ber_choice_t Name_choice[] = {
992 { 0, &hf_x509if_rdnSequence , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_RDNSequence },
993 { 0, NULL, 0, 0, 0, NULL }
997 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_) {
998 offset = dissect_ber_choice(actx, tree, tvb, offset,
999 Name_choice, hf_index, ett_x509if_Name,
1008 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_) {
1009 offset = dissect_x509if_RDNSequence(implicit_tag, tvb, offset, actx, tree, hf_index);
1017 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_) {
1018 offset = dissect_x509if_RDNSequence(implicit_tag, tvb, offset, actx, tree, hf_index);
1024 static const value_string x509if_T_specificExclusions_item_vals[] = {
1025 { 0, "chopBefore" },
1030 static const ber_choice_t T_specificExclusions_item_choice[] = {
1031 { 0, &hf_x509if_chopBefore , BER_CLASS_CON, 0, 0, dissect_x509if_LocalName },
1032 { 1, &hf_x509if_chopAfter , BER_CLASS_CON, 1, 0, dissect_x509if_LocalName },
1033 { 0, NULL, 0, 0, 0, NULL }
1037 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_) {
1038 offset = dissect_ber_choice(actx, tree, tvb, offset,
1039 T_specificExclusions_item_choice, hf_index, ett_x509if_T_specificExclusions_item,
1046 static const ber_sequence_t T_specificExclusions_set_of[1] = {
1047 { &hf_x509if_specificExclusions_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509if_T_specificExclusions_item },
1051 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_) {
1052 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1053 T_specificExclusions_set_of, hf_index, ett_x509if_T_specificExclusions);
1061 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_) {
1062 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1069 static const ber_sequence_t SET_OF_Refinement_set_of[1] = {
1070 { &hf_x509if_refinement_and_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509if_Refinement },
1074 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_) {
1075 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1076 SET_OF_Refinement_set_of, hf_index, ett_x509if_SET_OF_Refinement);
1082 const value_string x509if_Refinement_vals[] = {
1090 static const ber_choice_t Refinement_choice[] = {
1091 { 0, &hf_x509if_item , BER_CLASS_CON, 0, 0, dissect_x509if_OBJECT_IDENTIFIER },
1092 { 1, &hf_x509if_refinement_and, BER_CLASS_CON, 1, 0, dissect_x509if_SET_OF_Refinement },
1093 { 2, &hf_x509if_refinement_or, BER_CLASS_CON, 2, 0, dissect_x509if_SET_OF_Refinement },
1094 { 3, &hf_x509if_refinement_not, BER_CLASS_CON, 3, 0, dissect_x509if_Refinement },
1095 { 0, NULL, 0, 0, 0, NULL }
1099 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_) {
1100 offset = dissect_ber_choice(actx, tree, tvb, offset,
1101 Refinement_choice, hf_index, ett_x509if_Refinement,
1108 static const ber_sequence_t SubtreeSpecification_sequence[] = {
1109 { &hf_x509if_base , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509if_LocalName },
1110 { &hf_x509if_specificExclusions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_T_specificExclusions },
1111 { &hf_x509if_minimum , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_BaseDistance },
1112 { &hf_x509if_maximum , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_x509if_BaseDistance },
1113 { &hf_x509if_specificationFilter, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_x509if_Refinement },
1114 { NULL, 0, 0, 0, NULL }
1118 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_) {
1119 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1120 SubtreeSpecification_sequence, hf_index, ett_x509if_SubtreeSpecification);
1126 static const value_string x509if_T_chopSpecificExclusions_item_vals[] = {
1127 { 0, "chopBefore" },
1132 static const ber_choice_t T_chopSpecificExclusions_item_choice[] = {
1133 { 0, &hf_x509if_chopBefore , BER_CLASS_CON, 0, 0, dissect_x509if_LocalName },
1134 { 1, &hf_x509if_chopAfter , BER_CLASS_CON, 1, 0, dissect_x509if_LocalName },
1135 { 0, NULL, 0, 0, 0, NULL }
1139 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_) {
1140 offset = dissect_ber_choice(actx, tree, tvb, offset,
1141 T_chopSpecificExclusions_item_choice, hf_index, ett_x509if_T_chopSpecificExclusions_item,
1148 static const ber_sequence_t T_chopSpecificExclusions_set_of[1] = {
1149 { &hf_x509if_chopSpecificExclusions_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509if_T_chopSpecificExclusions_item },
1153 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_) {
1154 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1155 T_chopSpecificExclusions_set_of, hf_index, ett_x509if_T_chopSpecificExclusions);
1161 static const ber_sequence_t ChopSpecification_sequence[] = {
1162 { &hf_x509if_chopSpecificExclusions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_T_chopSpecificExclusions },
1163 { &hf_x509if_minimum , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_BaseDistance },
1164 { &hf_x509if_maximum , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_x509if_BaseDistance },
1165 { NULL, 0, 0, 0, NULL }
1169 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_) {
1170 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1171 ChopSpecification_sequence, hf_index, ett_x509if_ChopSpecification);
1177 const value_string x509if_AttributeUsage_vals[] = {
1178 { 0, "userApplications" },
1179 { 1, "directoryOperation" },
1180 { 2, "distributedOperation" },
1181 { 3, "dSAOperation" },
1187 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_) {
1188 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1197 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_) {
1198 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1205 static const ber_sequence_t SET_SIZE_1_MAX_OF_RuleIdentifier_set_of[1] = {
1206 { &hf_x509if_superiorStructureRules_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x509if_RuleIdentifier },
1210 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_) {
1211 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1212 SET_SIZE_1_MAX_OF_RuleIdentifier_set_of, hf_index, ett_x509if_SET_SIZE_1_MAX_OF_RuleIdentifier);
1218 static const ber_sequence_t DITStructureRule_sequence[] = {
1219 { &hf_x509if_ruleIdentifier, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x509if_RuleIdentifier },
1220 { &hf_x509if_nameForm , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_OBJECT_IDENTIFIER },
1221 { &hf_x509if_superiorStructureRules, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_SET_SIZE_1_MAX_OF_RuleIdentifier },
1222 { NULL, 0, 0, 0, NULL }
1226 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_) {
1227 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1228 DITStructureRule_sequence, hf_index, ett_x509if_DITStructureRule);
1234 static const ber_sequence_t T_auxiliaries_set_of[1] = {
1235 { &hf_x509if_auxiliaries_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_OBJECT_IDENTIFIER },
1239 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_) {
1240 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1241 T_auxiliaries_set_of, hf_index, ett_x509if_T_auxiliaries);
1247 static const ber_sequence_t T_mandatory_set_of[1] = {
1248 { &hf_x509if_mandatory_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_OBJECT_IDENTIFIER },
1252 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_) {
1253 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1254 T_mandatory_set_of, hf_index, ett_x509if_T_mandatory);
1260 static const ber_sequence_t T_optional_set_of[1] = {
1261 { &hf_x509if_optional_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_OBJECT_IDENTIFIER },
1265 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_) {
1266 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1267 T_optional_set_of, hf_index, ett_x509if_T_optional);
1273 static const ber_sequence_t T_precluded_set_of[1] = {
1274 { &hf_x509if_precluded_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_OBJECT_IDENTIFIER },
1278 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_) {
1279 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1280 T_precluded_set_of, hf_index, ett_x509if_T_precluded);
1286 static const ber_sequence_t DITContentRule_sequence[] = {
1287 { &hf_x509if_structuralObjectClass, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_OBJECT_IDENTIFIER },
1288 { &hf_x509if_auxiliaries , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_T_auxiliaries },
1289 { &hf_x509if_mandatory , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_T_mandatory },
1290 { &hf_x509if_optional , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_T_optional },
1291 { &hf_x509if_precluded , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_x509if_T_precluded },
1292 { NULL, 0, 0, 0, NULL }
1296 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_) {
1297 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1298 DITContentRule_sequence, hf_index, ett_x509if_DITContentRule);
1304 static const ber_sequence_t T_mandatoryContexts_set_of[1] = {
1305 { &hf_x509if_mandatoryContexts_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_OBJECT_IDENTIFIER },
1309 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_) {
1310 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1311 T_mandatoryContexts_set_of, hf_index, ett_x509if_T_mandatoryContexts);
1317 static const ber_sequence_t T_optionalContexts_set_of[1] = {
1318 { &hf_x509if_optionalContexts_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_OBJECT_IDENTIFIER },
1322 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_) {
1323 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1324 T_optionalContexts_set_of, hf_index, ett_x509if_T_optionalContexts);
1330 static const ber_sequence_t DITContextUse_sequence[] = {
1331 { &hf_x509if_attributeType, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_OBJECT_IDENTIFIER },
1332 { &hf_x509if_mandatoryContexts, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_T_mandatoryContexts },
1333 { &hf_x509if_optionalContexts, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_T_optionalContexts },
1334 { NULL, 0, 0, 0, NULL }
1338 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_) {
1339 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1340 DITContextUse_sequence, hf_index, ett_x509if_DITContextUse);
1348 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_) {
1349 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1358 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_) {
1359 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
1367 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_) {
1368 #line 271 "x509if.cnf"
1369 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
1377 static const ber_sequence_t T_ra_selectedValues_sequence_of[1] = {
1378 { &hf_x509if_ra_selectedValues_item, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_ra_selectedValues_item },
1382 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_) {
1383 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1384 T_ra_selectedValues_sequence_of, hf_index, ett_x509if_T_ra_selectedValues);
1392 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_) {
1393 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
1401 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_) {
1402 #line 277 "x509if.cnf"
1403 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
1411 static const ber_sequence_t T_ra_values_sequence_of[1] = {
1412 { &hf_x509if_ra_values_item, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_ra_values_item },
1416 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_) {
1417 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1418 T_ra_values_sequence_of, hf_index, ett_x509if_T_ra_values);
1424 static const ber_sequence_t T_defaultValues_item_sequence[] = {
1425 { &hf_x509if_entryType , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_T_entryType },
1426 { &hf_x509if_ra_values , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_T_ra_values },
1427 { NULL, 0, 0, 0, NULL }
1431 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_) {
1432 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1433 T_defaultValues_item_sequence, hf_index, ett_x509if_T_defaultValues_item);
1439 static const ber_sequence_t T_defaultValues_sequence_of[1] = {
1440 { &hf_x509if_defaultValues_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_T_defaultValues_item },
1444 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_) {
1445 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1446 T_defaultValues_sequence_of, hf_index, ett_x509if_T_defaultValues);
1454 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_) {
1455 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
1463 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_) {
1464 #line 316 "x509if.cnf"
1465 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
1473 static const ber_sequence_t T_contextValue_sequence_of[1] = {
1474 { &hf_x509if_contextValue_item, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_contextValue_item },
1478 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_) {
1479 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1480 T_contextValue_sequence_of, hf_index, ett_x509if_T_contextValue);
1486 static const ber_sequence_t ContextProfile_sequence[] = {
1487 { &hf_x509if_contextType_01, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_T_contextType_01 },
1488 { &hf_x509if_contextValue , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_T_contextValue },
1489 { NULL, 0, 0, 0, NULL }
1493 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_) {
1494 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1495 ContextProfile_sequence, hf_index, ett_x509if_ContextProfile);
1501 static const ber_sequence_t SEQUENCE_SIZE_0_MAX_OF_ContextProfile_sequence_of[1] = {
1502 { &hf_x509if_contexts_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_ContextProfile },
1506 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_) {
1507 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1508 SEQUENCE_SIZE_0_MAX_OF_ContextProfile_sequence_of, hf_index, ett_x509if_SEQUENCE_SIZE_0_MAX_OF_ContextProfile);
1514 static const ber_sequence_t SEQUENCE_OF_ContextCombination_sequence_of[1] = {
1515 { &hf_x509if_contextcombination_and_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509if_ContextCombination },
1519 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_) {
1520 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1521 SEQUENCE_OF_ContextCombination_sequence_of, hf_index, ett_x509if_SEQUENCE_OF_ContextCombination);
1527 const value_string x509if_ContextCombination_vals[] = {
1535 static const ber_choice_t ContextCombination_choice[] = {
1536 { 0, &hf_x509if_context , BER_CLASS_CON, 0, 0, dissect_x509if_OBJECT_IDENTIFIER },
1537 { 1, &hf_x509if_contextcombination_and, BER_CLASS_CON, 1, 0, dissect_x509if_SEQUENCE_OF_ContextCombination },
1538 { 2, &hf_x509if_contextcombination_or, BER_CLASS_CON, 2, 0, dissect_x509if_SEQUENCE_OF_ContextCombination },
1539 { 3, &hf_x509if_contextcombination_not, BER_CLASS_CON, 3, 0, dissect_x509if_ContextCombination },
1540 { 0, NULL, 0, 0, 0, NULL }
1544 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_) {
1545 offset = dissect_ber_choice(actx, tree, tvb, offset,
1546 ContextCombination_choice, hf_index, ett_x509if_ContextCombination,
1555 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_) {
1556 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
1564 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_) {
1565 #line 322 "x509if.cnf"
1566 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
1574 static const ber_sequence_t MatchingUse_sequence[] = {
1575 { &hf_x509if_restrictionType, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_T_restrictionType },
1576 { &hf_x509if_restrictionValue, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_restrictionValue },
1577 { NULL, 0, 0, 0, NULL }
1581 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_) {
1582 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1583 MatchingUse_sequence, hf_index, ett_x509if_MatchingUse);
1589 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_MatchingUse_sequence_of[1] = {
1590 { &hf_x509if_matchingUse_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_MatchingUse },
1594 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_) {
1595 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1596 SEQUENCE_SIZE_1_MAX_OF_MatchingUse_sequence_of, hf_index, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MatchingUse);
1602 static const ber_sequence_t RequestAttribute_sequence[] = {
1603 { &hf_x509if_attributeType_01, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_T_attributeType },
1604 { &hf_x509if_includeSubtypes, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509if_BOOLEAN },
1605 { &hf_x509if_ra_selectedValues, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_T_ra_selectedValues },
1606 { &hf_x509if_defaultValues, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_T_defaultValues },
1607 { &hf_x509if_contexts , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_0_MAX_OF_ContextProfile },
1608 { &hf_x509if_contextCombination, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_x509if_ContextCombination },
1609 { &hf_x509if_matchingUse , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_MatchingUse },
1610 { NULL, 0, 0, 0, NULL }
1614 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_) {
1615 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1616 RequestAttribute_sequence, hf_index, ett_x509if_RequestAttribute);
1622 static const ber_sequence_t SEQUENCE_SIZE_0_MAX_OF_RequestAttribute_sequence_of[1] = {
1623 { &hf_x509if_inputAttributeTypes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_RequestAttribute },
1627 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_) {
1628 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1629 SEQUENCE_SIZE_0_MAX_OF_RequestAttribute_sequence_of, hf_index, ett_x509if_SEQUENCE_SIZE_0_MAX_OF_RequestAttribute);
1635 static const ber_sequence_t SEQUENCE_OF_AttributeCombination_sequence_of[1] = {
1636 { &hf_x509if_and_item , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509if_AttributeCombination },
1640 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_) {
1641 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1642 SEQUENCE_OF_AttributeCombination_sequence_of, hf_index, ett_x509if_SEQUENCE_OF_AttributeCombination);
1648 const value_string x509if_AttributeCombination_vals[] = {
1656 static const ber_choice_t AttributeCombination_choice[] = {
1657 { 0, &hf_x509if_attribute , BER_CLASS_CON, 0, 0, dissect_x509if_AttributeType },
1658 { 1, &hf_x509if_and , BER_CLASS_CON, 1, 0, dissect_x509if_SEQUENCE_OF_AttributeCombination },
1659 { 2, &hf_x509if_or , BER_CLASS_CON, 2, 0, dissect_x509if_SEQUENCE_OF_AttributeCombination },
1660 { 3, &hf_x509if_not , BER_CLASS_CON, 3, 0, dissect_x509if_AttributeCombination },
1661 { 0, NULL, 0, 0, 0, NULL }
1665 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_) {
1666 offset = dissect_ber_choice(actx, tree, tvb, offset,
1667 AttributeCombination_choice, hf_index, ett_x509if_AttributeCombination,
1676 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_) {
1677 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
1685 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_) {
1686 #line 286 "x509if.cnf"
1687 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
1695 static const ber_sequence_t T_selectedValues_sequence_of[1] = {
1696 { &hf_x509if_selectedValues_item, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_selectedValues_item },
1700 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_) {
1701 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1702 T_selectedValues_sequence_of, hf_index, ett_x509if_T_selectedValues);
1708 static const value_string x509if_T_outputValues_vals[] = {
1709 { 0, "selectedValues" },
1710 { 1, "matchedValuesOnly" },
1714 static const ber_choice_t T_outputValues_choice[] = {
1715 { 0, &hf_x509if_selectedValues, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_T_selectedValues },
1716 { 1, &hf_x509if_matchedValuesOnly, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_x509if_NULL },
1717 { 0, NULL, 0, 0, 0, NULL }
1721 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_) {
1722 offset = dissect_ber_choice(actx, tree, tvb, offset,
1723 T_outputValues_choice, hf_index, ett_x509if_T_outputValues,
1730 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_ContextProfile_sequence_of[1] = {
1731 { &hf_x509if_contexts_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_ContextProfile },
1735 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_) {
1736 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1737 SEQUENCE_SIZE_1_MAX_OF_ContextProfile_sequence_of, hf_index, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextProfile);
1743 static const ber_sequence_t ResultAttribute_sequence[] = {
1744 { &hf_x509if_attributeType_02, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_T_attributeType_01 },
1745 { &hf_x509if_outputValues , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509if_T_outputValues },
1746 { &hf_x509if_contexts_01 , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextProfile },
1747 { NULL, 0, 0, 0, NULL }
1751 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_) {
1752 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1753 ResultAttribute_sequence, hf_index, ett_x509if_ResultAttribute);
1759 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_ResultAttribute_sequence_of[1] = {
1760 { &hf_x509if_outputAttributeTypes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_ResultAttribute },
1764 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_) {
1765 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1766 SEQUENCE_SIZE_1_MAX_OF_ResultAttribute_sequence_of, hf_index, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ResultAttribute);
1772 static const ber_sequence_t ControlOptions_sequence[] = {
1773 { &hf_x509if_serviceControls, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_dap_ServiceControlOptions },
1774 { &hf_x509if_searchOptions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_SearchControlOptions },
1775 { &hf_x509if_hierarchyOptions, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_HierarchySelections },
1776 { NULL, 0, 0, 0, NULL }
1780 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_) {
1781 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1782 ControlOptions_sequence, hf_index, ett_x509if_ControlOptions);
1788 static const ber_sequence_t Mapping_sequence[] = {
1789 { &hf_x509if_mappingFunction, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_OBJECT_IDENTIFIER },
1790 { &hf_x509if_level , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_INTEGER },
1791 { NULL, 0, 0, 0, NULL }
1795 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_) {
1796 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1797 Mapping_sequence, hf_index, ett_x509if_Mapping);
1803 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_Mapping_sequence_of[1] = {
1804 { &hf_x509if_mapping_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_Mapping },
1808 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_) {
1809 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1810 SEQUENCE_SIZE_1_MAX_OF_Mapping_sequence_of, hf_index, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_Mapping);
1816 static const ber_sequence_t MRSubstitution_sequence[] = {
1817 { &hf_x509if_attribute , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
1818 { &hf_x509if_oldMatchingRule, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509if_OBJECT_IDENTIFIER },
1819 { &hf_x509if_newMatchingRule, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_OBJECT_IDENTIFIER },
1820 { NULL, 0, 0, 0, NULL }
1824 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_) {
1825 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1826 MRSubstitution_sequence, hf_index, ett_x509if_MRSubstitution);
1832 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_MRSubstitution_sequence_of[1] = {
1833 { &hf_x509if_substitution_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_MRSubstitution },
1837 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_) {
1838 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1839 SEQUENCE_SIZE_1_MAX_OF_MRSubstitution_sequence_of, hf_index, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MRSubstitution);
1845 static const ber_sequence_t MRMapping_sequence[] = {
1846 { &hf_x509if_mapping , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_Mapping },
1847 { &hf_x509if_substitution , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_MRSubstitution },
1848 { NULL, 0, 0, 0, NULL }
1852 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_) {
1853 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1854 MRMapping_sequence, hf_index, ett_x509if_MRMapping);
1860 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_MRMapping_sequence_of[1] = {
1861 { &hf_x509if_tightenings_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_MRMapping },
1865 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_) {
1866 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1867 SEQUENCE_SIZE_1_MAX_OF_MRMapping_sequence_of, hf_index, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MRMapping);
1873 static const ber_sequence_t RelaxationPolicy_sequence[] = {
1874 { &hf_x509if_basic , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509if_MRMapping },
1875 { &hf_x509if_tightenings , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_MRMapping },
1876 { &hf_x509if_relaxations , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_MRMapping },
1877 { &hf_x509if_maximum_relaxation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_x509if_INTEGER },
1878 { &hf_x509if_minimum_relaxation, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_x509if_INTEGER },
1879 { NULL, 0, 0, 0, NULL }
1883 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_) {
1884 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1885 RelaxationPolicy_sequence, hf_index, ett_x509if_RelaxationPolicy);
1891 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_AttributeType_sequence_of[1] = {
1892 { &hf_x509if_additionalControl_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
1896 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_) {
1897 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1898 SEQUENCE_SIZE_1_MAX_OF_AttributeType_sequence_of, hf_index, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_AttributeType);
1904 static const asn_namedbit AllowedSubset_bits[] = {
1905 { 0, &hf_x509if_AllowedSubset_baseObject, -1, -1, "baseObject", NULL },
1906 { 1, &hf_x509if_AllowedSubset_oneLevel, -1, -1, "oneLevel", NULL },
1907 { 2, &hf_x509if_AllowedSubset_wholeSubtree, -1, -1, "wholeSubtree", NULL },
1908 { 0, NULL, 0, 0, NULL, NULL }
1912 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_) {
1913 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
1914 AllowedSubset_bits, hf_index, ett_x509if_AllowedSubset,
1921 const value_string x509if_ImposedSubset_vals[] = {
1922 { 0, "baseObject" },
1924 { 2, "wholeSubtree" },
1930 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_) {
1931 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1938 static const ber_sequence_t EntryLimit_sequence[] = {
1939 { &hf_x509if_default , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x509if_INTEGER },
1940 { &hf_x509if_max , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x509if_INTEGER },
1941 { NULL, 0, 0, 0, NULL }
1945 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_) {
1946 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1947 EntryLimit_sequence, hf_index, ett_x509if_EntryLimit);
1953 static const ber_sequence_t SET_SIZE_1_MAX_OF_DirectoryString_set_of[1] = {
1954 { &hf_x509if_name_item , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_x509sat_DirectoryString },
1958 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_) {
1959 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1960 SET_SIZE_1_MAX_OF_DirectoryString_set_of, hf_index, ett_x509if_SET_SIZE_1_MAX_OF_DirectoryString);
1966 static const ber_sequence_t SearchRuleDescription_sequence[] = {
1967 { &hf_x509if_id , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x509if_INTEGER },
1968 { &hf_x509if_dmdId , BER_CLASS_CON, 0, 0, dissect_x509if_OBJECT_IDENTIFIER },
1969 { &hf_x509if_serviceType , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_OBJECT_IDENTIFIER },
1970 { &hf_x509if_userClass , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_INTEGER },
1971 { &hf_x509if_inputAttributeTypes, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_0_MAX_OF_RequestAttribute },
1972 { &hf_x509if_attributeCombination, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_x509if_AttributeCombination },
1973 { &hf_x509if_outputAttributeTypes, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_ResultAttribute },
1974 { &hf_x509if_defaultControls, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_x509if_ControlOptions },
1975 { &hf_x509if_mandatoryControls, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_x509if_ControlOptions },
1976 { &hf_x509if_searchRuleControls, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_x509if_ControlOptions },
1977 { &hf_x509if_familyGrouping, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_dap_FamilyGrouping },
1978 { &hf_x509if_familyReturn , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL, dissect_dap_FamilyReturn },
1979 { &hf_x509if_relaxation , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL, dissect_x509if_RelaxationPolicy },
1980 { &hf_x509if_additionalControl, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_AttributeType },
1981 { &hf_x509if_allowedSubset, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL, dissect_x509if_AllowedSubset },
1982 { &hf_x509if_imposedSubset, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL, dissect_x509if_ImposedSubset },
1983 { &hf_x509if_entryLimit , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL, dissect_x509if_EntryLimit },
1984 { &hf_x509if_name , BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_x509if_SET_SIZE_1_MAX_OF_DirectoryString },
1985 { &hf_x509if_description , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509sat_DirectoryString },
1986 { NULL, 0, 0, 0, NULL }
1990 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_) {
1991 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1992 SearchRuleDescription_sequence, hf_index, ett_x509if_SearchRuleDescription);
2000 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_) {
2001 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2010 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_) {
2011 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
2017 static const ber_sequence_t SearchRule_sequence[] = {
2018 { &hf_x509if_id , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x509if_INTEGER },
2019 { &hf_x509if_dmdId , BER_CLASS_CON, 0, 0, dissect_x509if_OBJECT_IDENTIFIER },
2020 { &hf_x509if_serviceType , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_OBJECT_IDENTIFIER },
2021 { &hf_x509if_userClass , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_INTEGER },
2022 { &hf_x509if_inputAttributeTypes, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_0_MAX_OF_RequestAttribute },
2023 { &hf_x509if_attributeCombination, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_x509if_AttributeCombination },
2024 { &hf_x509if_outputAttributeTypes, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_ResultAttribute },
2025 { &hf_x509if_defaultControls, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_x509if_ControlOptions },
2026 { &hf_x509if_mandatoryControls, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_x509if_ControlOptions },
2027 { &hf_x509if_searchRuleControls, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_x509if_ControlOptions },
2028 { &hf_x509if_familyGrouping, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_dap_FamilyGrouping },
2029 { &hf_x509if_familyReturn , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL, dissect_dap_FamilyReturn },
2030 { &hf_x509if_relaxation , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL, dissect_x509if_RelaxationPolicy },
2031 { &hf_x509if_additionalControl, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_AttributeType },
2032 { &hf_x509if_allowedSubset, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL, dissect_x509if_AllowedSubset },
2033 { &hf_x509if_imposedSubset, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL, dissect_x509if_ImposedSubset },
2034 { &hf_x509if_entryLimit , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL, dissect_x509if_EntryLimit },
2035 { NULL, 0, 0, 0, NULL }
2039 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_) {
2040 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2041 SearchRule_sequence, hf_index, ett_x509if_SearchRule);
2047 static const ber_sequence_t SearchRuleId_sequence[] = {
2048 { &hf_x509if_id , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x509if_INTEGER },
2049 { &hf_x509if_dmdId , BER_CLASS_CON, 0, 0, dissect_x509if_OBJECT_IDENTIFIER },
2050 { NULL, 0, 0, 0, NULL }
2054 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_) {
2055 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2056 SearchRuleId_sequence, hf_index, ett_x509if_SearchRuleId);
2063 static void dissect_DistinguishedName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2064 asn1_ctx_t asn1_ctx;
2065 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2066 dissect_x509if_DistinguishedName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509if_DistinguishedName_PDU);
2068 static void dissect_SubtreeSpecification_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2069 asn1_ctx_t asn1_ctx;
2070 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2071 dissect_x509if_SubtreeSpecification(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509if_SubtreeSpecification_PDU);
2073 static void dissect_HierarchyLevel_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2074 asn1_ctx_t asn1_ctx;
2075 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2076 dissect_x509if_HierarchyLevel(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509if_HierarchyLevel_PDU);
2078 static void dissect_HierarchyBelow_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2079 asn1_ctx_t asn1_ctx;
2080 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2081 dissect_x509if_HierarchyBelow(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509if_HierarchyBelow_PDU);
2085 /*--- End of included file: packet-x509if-fn.c ---*/
2086 #line 79 "packet-x509if-template.c"
2088 const char * x509if_get_last_dn(void)
2093 gboolean x509if_register_fmt(int hf_index, const gchar *fmt)
2097 if(idx < (MAX_FMT_VALS - 1)) {
2099 fmt_vals[idx].value = hf_index;
2100 fmt_vals[idx].strptr = fmt;
2104 fmt_vals[idx].value = 0;
2105 fmt_vals[idx].strptr = NULL;
2110 return FALSE; /* couldn't register it */
2114 const char * x509if_get_last_ava(void)
2119 /*--- proto_register_x509if ----------------------------------------------*/
2120 void proto_register_x509if(void) {
2122 /* List of fields */
2123 static hf_register_info hf[] = {
2124 { &hf_x509if_object_identifier_id,
2125 { "Id", "x509if.id", FT_OID, BASE_NONE, NULL, 0,
2126 "Object identifier Id", HFILL }},
2127 { &hf_x509if_any_string,
2128 { "AnyString", "x509if.any.String", FT_BYTES, BASE_HEX,
2129 NULL, 0, "This is any String", HFILL }},
2132 /*--- Included file: packet-x509if-hfarr.c ---*/
2133 #line 1 "packet-x509if-hfarr.c"
2134 { &hf_x509if_DistinguishedName_PDU,
2135 { "DistinguishedName", "x509if.DistinguishedName",
2136 FT_UINT32, BASE_DEC, NULL, 0,
2137 "x509if.DistinguishedName", HFILL }},
2138 { &hf_x509if_SubtreeSpecification_PDU,
2139 { "SubtreeSpecification", "x509if.SubtreeSpecification",
2140 FT_NONE, BASE_NONE, NULL, 0,
2141 "x509if.SubtreeSpecification", HFILL }},
2142 { &hf_x509if_HierarchyLevel_PDU,
2143 { "HierarchyLevel", "x509if.HierarchyLevel",
2144 FT_INT32, BASE_DEC, NULL, 0,
2145 "x509if.HierarchyLevel", HFILL }},
2146 { &hf_x509if_HierarchyBelow_PDU,
2147 { "HierarchyBelow", "x509if.HierarchyBelow",
2148 FT_BOOLEAN, 8, NULL, 0,
2149 "x509if.HierarchyBelow", HFILL }},
2151 { "type", "x509if.type",
2152 FT_OID, BASE_NONE, NULL, 0,
2153 "x509if.T_type", HFILL }},
2154 { &hf_x509if_values,
2155 { "values", "x509if.values",
2156 FT_UINT32, BASE_DEC, NULL, 0,
2157 "x509if.T_values", HFILL }},
2158 { &hf_x509if_values_item,
2159 { "values item", "x509if.values_item",
2160 FT_NONE, BASE_NONE, NULL, 0,
2161 "x509if.T_values_item", HFILL }},
2162 { &hf_x509if_valuesWithContext,
2163 { "valuesWithContext", "x509if.valuesWithContext",
2164 FT_UINT32, BASE_DEC, NULL, 0,
2165 "x509if.T_valuesWithContext", HFILL }},
2166 { &hf_x509if_valuesWithContext_item,
2167 { "valuesWithContext item", "x509if.valuesWithContext_item",
2168 FT_NONE, BASE_NONE, NULL, 0,
2169 "x509if.T_valuesWithContext_item", HFILL }},
2171 { "value", "x509if.value",
2172 FT_NONE, BASE_NONE, NULL, 0,
2173 "x509if.T_value", HFILL }},
2174 { &hf_x509if_contextList,
2175 { "contextList", "x509if.contextList",
2176 FT_UINT32, BASE_DEC, NULL, 0,
2177 "x509if.SET_SIZE_1_MAX_OF_Context", HFILL }},
2178 { &hf_x509if_contextList_item,
2179 { "Context", "x509if.Context",
2180 FT_NONE, BASE_NONE, NULL, 0,
2181 "x509if.Context", HFILL }},
2182 { &hf_x509if_contextType,
2183 { "contextType", "x509if.contextType",
2184 FT_OID, BASE_NONE, NULL, 0,
2185 "x509if.T_contextType", HFILL }},
2186 { &hf_x509if_contextValues,
2187 { "contextValues", "x509if.contextValues",
2188 FT_UINT32, BASE_DEC, NULL, 0,
2189 "x509if.T_contextValues", HFILL }},
2190 { &hf_x509if_contextValues_item,
2191 { "contextValues item", "x509if.contextValues_item",
2192 FT_NONE, BASE_NONE, NULL, 0,
2193 "x509if.T_contextValues_item", HFILL }},
2194 { &hf_x509if_fallback,
2195 { "fallback", "x509if.fallback",
2196 FT_BOOLEAN, 8, NULL, 0,
2197 "x509if.BOOLEAN", HFILL }},
2198 { &hf_x509if_type_01,
2199 { "type", "x509if.type",
2200 FT_OID, BASE_NONE, NULL, 0,
2201 "x509if.T_type_01", HFILL }},
2202 { &hf_x509if_assertion,
2203 { "assertion", "x509if.assertion",
2204 FT_NONE, BASE_NONE, NULL, 0,
2205 "x509if.T_assertion", HFILL }},
2206 { &hf_x509if_assertedContexts,
2207 { "assertedContexts", "x509if.assertedContexts",
2208 FT_UINT32, BASE_DEC, VALS(x509if_T_assertedContexts_vals), 0,
2209 "x509if.T_assertedContexts", HFILL }},
2210 { &hf_x509if_allContexts,
2211 { "allContexts", "x509if.allContexts",
2212 FT_NONE, BASE_NONE, NULL, 0,
2213 "x509if.NULL", HFILL }},
2214 { &hf_x509if_selectedContexts,
2215 { "selectedContexts", "x509if.selectedContexts",
2216 FT_UINT32, BASE_DEC, NULL, 0,
2217 "x509if.SET_SIZE_1_MAX_OF_ContextAssertion", HFILL }},
2218 { &hf_x509if_selectedContexts_item,
2219 { "ContextAssertion", "x509if.ContextAssertion",
2220 FT_NONE, BASE_NONE, NULL, 0,
2221 "x509if.ContextAssertion", HFILL }},
2222 { &hf_x509if_ca_contextType,
2223 { "contextType", "x509if.contextType",
2224 FT_OID, BASE_NONE, NULL, 0,
2225 "x509if.T_ca_contextType", HFILL }},
2226 { &hf_x509if_ca_contextValues,
2227 { "contextValues", "x509if.contextValues",
2228 FT_UINT32, BASE_DEC, NULL, 0,
2229 "x509if.T_ca_contextValues", HFILL }},
2230 { &hf_x509if_ca_contextValues_item,
2231 { "contextValues item", "x509if.contextValues_item",
2232 FT_NONE, BASE_NONE, NULL, 0,
2233 "x509if.T_ca_contextValues_item", HFILL }},
2234 { &hf_x509if_type_02,
2235 { "type", "x509if.type",
2236 FT_OID, BASE_NONE, NULL, 0,
2237 "x509if.OBJECT_IDENTIFIER", HFILL }},
2238 { &hf_x509if_ata_assertedContexts,
2239 { "assertedContexts", "x509if.assertedContexts",
2240 FT_UINT32, BASE_DEC, NULL, 0,
2241 "x509if.SEQUENCE_SIZE_1_MAX_OF_ContextAssertion", HFILL }},
2242 { &hf_x509if_ata_assertedContexts_item,
2243 { "ContextAssertion", "x509if.ContextAssertion",
2244 FT_NONE, BASE_NONE, NULL, 0,
2245 "x509if.ContextAssertion", HFILL }},
2246 { &hf_x509if_rdnSequence,
2247 { "rdnSequence", "x509if.rdnSequence",
2248 FT_UINT32, BASE_DEC, NULL, 0,
2249 "x509if.RDNSequence", HFILL }},
2250 { &hf_x509if_RDNSequence_item,
2251 { "RDNSequence item", "x509if.RDNSequence_item",
2252 FT_UINT32, BASE_DEC, NULL, 0,
2253 "x509if.RDNSequence_item", HFILL }},
2254 { &hf_x509if_RelativeDistinguishedName_item,
2255 { "RelativeDistinguishedName item", "x509if.RelativeDistinguishedName_item",
2256 FT_NONE, BASE_NONE, NULL, 0,
2257 "x509if.RelativeDistinguishedName_item", HFILL }},
2258 { &hf_x509if_type_03,
2259 { "type", "x509if.type",
2260 FT_OID, BASE_NONE, NULL, 0,
2261 "x509if.T_type_02", HFILL }},
2262 { &hf_x509if_atadv_value,
2263 { "value", "x509if.value",
2264 FT_NONE, BASE_NONE, NULL, 0,
2265 "x509if.T_atadv_value", HFILL }},
2266 { &hf_x509if_primaryDistinguished,
2267 { "primaryDistinguished", "x509if.primaryDistinguished",
2268 FT_BOOLEAN, 8, NULL, 0,
2269 "x509if.BOOLEAN", HFILL }},
2270 { &hf_x509if_valueswithContext,
2271 { "valuesWithContext", "x509if.valuesWithContext",
2272 FT_UINT32, BASE_DEC, NULL, 0,
2273 "x509if.T_valWithContext", HFILL }},
2274 { &hf_x509if_valueswithContext_item,
2275 { "valuesWithContext item", "x509if.valuesWithContext_item",
2276 FT_NONE, BASE_NONE, NULL, 0,
2277 "x509if.T_valWithContext_item", HFILL }},
2278 { &hf_x509if_distingAttrValue,
2279 { "distingAttrValue", "x509if.distingAttrValue",
2280 FT_NONE, BASE_NONE, NULL, 0,
2281 "x509if.T_distingAttrValue", HFILL }},
2282 { &hf_x509if_chopSpecificExclusions,
2283 { "specificExclusions", "x509if.specificExclusions",
2284 FT_UINT32, BASE_DEC, NULL, 0,
2285 "x509if.T_chopSpecificExclusions", HFILL }},
2286 { &hf_x509if_chopSpecificExclusions_item,
2287 { "specificExclusions item", "x509if.specificExclusions_item",
2288 FT_UINT32, BASE_DEC, VALS(x509if_T_chopSpecificExclusions_item_vals), 0,
2289 "x509if.T_chopSpecificExclusions_item", HFILL }},
2290 { &hf_x509if_chopBefore,
2291 { "chopBefore", "x509if.chopBefore",
2292 FT_UINT32, BASE_DEC, NULL, 0,
2293 "x509if.LocalName", HFILL }},
2294 { &hf_x509if_chopAfter,
2295 { "chopAfter", "x509if.chopAfter",
2296 FT_UINT32, BASE_DEC, NULL, 0,
2297 "x509if.LocalName", HFILL }},
2298 { &hf_x509if_minimum,
2299 { "minimum", "x509if.minimum",
2300 FT_UINT32, BASE_DEC, NULL, 0,
2301 "x509if.BaseDistance", HFILL }},
2302 { &hf_x509if_maximum,
2303 { "maximum", "x509if.maximum",
2304 FT_UINT32, BASE_DEC, NULL, 0,
2305 "x509if.BaseDistance", HFILL }},
2307 { "item", "x509if.item",
2308 FT_OID, BASE_NONE, NULL, 0,
2309 "x509if.OBJECT_IDENTIFIER", HFILL }},
2310 { &hf_x509if_refinement_and,
2311 { "and", "x509if.and",
2312 FT_UINT32, BASE_DEC, NULL, 0,
2313 "x509if.SET_OF_Refinement", HFILL }},
2314 { &hf_x509if_refinement_and_item,
2315 { "Refinement", "x509if.Refinement",
2316 FT_UINT32, BASE_DEC, VALS(x509if_Refinement_vals), 0,
2317 "x509if.Refinement", HFILL }},
2318 { &hf_x509if_refinement_or,
2319 { "or", "x509if.or",
2320 FT_UINT32, BASE_DEC, NULL, 0,
2321 "x509if.SET_OF_Refinement", HFILL }},
2322 { &hf_x509if_refinement_or_item,
2323 { "Refinement", "x509if.Refinement",
2324 FT_UINT32, BASE_DEC, VALS(x509if_Refinement_vals), 0,
2325 "x509if.Refinement", HFILL }},
2326 { &hf_x509if_refinement_not,
2327 { "not", "x509if.not",
2328 FT_UINT32, BASE_DEC, VALS(x509if_Refinement_vals), 0,
2329 "x509if.Refinement", HFILL }},
2330 { &hf_x509if_ruleIdentifier,
2331 { "ruleIdentifier", "x509if.ruleIdentifier",
2332 FT_INT32, BASE_DEC, NULL, 0,
2333 "x509if.RuleIdentifier", HFILL }},
2334 { &hf_x509if_nameForm,
2335 { "nameForm", "x509if.nameForm",
2336 FT_OID, BASE_NONE, NULL, 0,
2337 "x509if.OBJECT_IDENTIFIER", HFILL }},
2338 { &hf_x509if_superiorStructureRules,
2339 { "superiorStructureRules", "x509if.superiorStructureRules",
2340 FT_UINT32, BASE_DEC, NULL, 0,
2341 "x509if.SET_SIZE_1_MAX_OF_RuleIdentifier", HFILL }},
2342 { &hf_x509if_superiorStructureRules_item,
2343 { "RuleIdentifier", "x509if.RuleIdentifier",
2344 FT_INT32, BASE_DEC, NULL, 0,
2345 "x509if.RuleIdentifier", HFILL }},
2346 { &hf_x509if_structuralObjectClass,
2347 { "structuralObjectClass", "x509if.structuralObjectClass",
2348 FT_OID, BASE_NONE, NULL, 0,
2349 "x509if.OBJECT_IDENTIFIER", HFILL }},
2350 { &hf_x509if_auxiliaries,
2351 { "auxiliaries", "x509if.auxiliaries",
2352 FT_UINT32, BASE_DEC, NULL, 0,
2353 "x509if.T_auxiliaries", HFILL }},
2354 { &hf_x509if_auxiliaries_item,
2355 { "auxiliaries item", "x509if.auxiliaries_item",
2356 FT_OID, BASE_NONE, NULL, 0,
2357 "x509if.OBJECT_IDENTIFIER", HFILL }},
2358 { &hf_x509if_mandatory,
2359 { "mandatory", "x509if.mandatory",
2360 FT_UINT32, BASE_DEC, NULL, 0,
2361 "x509if.T_mandatory", HFILL }},
2362 { &hf_x509if_mandatory_item,
2363 { "mandatory item", "x509if.mandatory_item",
2364 FT_OID, BASE_NONE, NULL, 0,
2365 "x509if.OBJECT_IDENTIFIER", HFILL }},
2366 { &hf_x509if_optional,
2367 { "optional", "x509if.optional",
2368 FT_UINT32, BASE_DEC, NULL, 0,
2369 "x509if.T_optional", HFILL }},
2370 { &hf_x509if_optional_item,
2371 { "optional item", "x509if.optional_item",
2372 FT_OID, BASE_NONE, NULL, 0,
2373 "x509if.OBJECT_IDENTIFIER", HFILL }},
2374 { &hf_x509if_precluded,
2375 { "precluded", "x509if.precluded",
2376 FT_UINT32, BASE_DEC, NULL, 0,
2377 "x509if.T_precluded", HFILL }},
2378 { &hf_x509if_precluded_item,
2379 { "precluded item", "x509if.precluded_item",
2380 FT_OID, BASE_NONE, NULL, 0,
2381 "x509if.OBJECT_IDENTIFIER", HFILL }},
2382 { &hf_x509if_attributeType,
2383 { "attributeType", "x509if.attributeType",
2384 FT_OID, BASE_NONE, NULL, 0,
2385 "x509if.OBJECT_IDENTIFIER", HFILL }},
2386 { &hf_x509if_mandatoryContexts,
2387 { "mandatoryContexts", "x509if.mandatoryContexts",
2388 FT_UINT32, BASE_DEC, NULL, 0,
2389 "x509if.T_mandatoryContexts", HFILL }},
2390 { &hf_x509if_mandatoryContexts_item,
2391 { "mandatoryContexts item", "x509if.mandatoryContexts_item",
2392 FT_OID, BASE_NONE, NULL, 0,
2393 "x509if.OBJECT_IDENTIFIER", HFILL }},
2394 { &hf_x509if_optionalContexts,
2395 { "optionalContexts", "x509if.optionalContexts",
2396 FT_UINT32, BASE_DEC, NULL, 0,
2397 "x509if.T_optionalContexts", HFILL }},
2398 { &hf_x509if_optionalContexts_item,
2399 { "optionalContexts item", "x509if.optionalContexts_item",
2400 FT_OID, BASE_NONE, NULL, 0,
2401 "x509if.OBJECT_IDENTIFIER", HFILL }},
2403 { "id", "x509if.id",
2404 FT_INT32, BASE_DEC, NULL, 0,
2405 "x509if.INTEGER", HFILL }},
2407 { "dmdId", "x509if.dmdId",
2408 FT_OID, BASE_NONE, NULL, 0,
2409 "x509if.OBJECT_IDENTIFIER", HFILL }},
2410 { &hf_x509if_attributeType_01,
2411 { "attributeType", "x509if.attributeType",
2412 FT_OID, BASE_NONE, NULL, 0,
2413 "x509if.T_attributeType", HFILL }},
2414 { &hf_x509if_includeSubtypes,
2415 { "includeSubtypes", "x509if.includeSubtypes",
2416 FT_BOOLEAN, 8, NULL, 0,
2417 "x509if.BOOLEAN", HFILL }},
2418 { &hf_x509if_ra_selectedValues,
2419 { "selectedValues", "x509if.selectedValues",
2420 FT_UINT32, BASE_DEC, NULL, 0,
2421 "x509if.T_ra_selectedValues", HFILL }},
2422 { &hf_x509if_ra_selectedValues_item,
2423 { "selectedValues item", "x509if.selectedValues_item",
2424 FT_NONE, BASE_NONE, NULL, 0,
2425 "x509if.T_ra_selectedValues_item", HFILL }},
2426 { &hf_x509if_defaultValues,
2427 { "defaultValues", "x509if.defaultValues",
2428 FT_UINT32, BASE_DEC, NULL, 0,
2429 "x509if.T_defaultValues", HFILL }},
2430 { &hf_x509if_defaultValues_item,
2431 { "defaultValues item", "x509if.defaultValues_item",
2432 FT_NONE, BASE_NONE, NULL, 0,
2433 "x509if.T_defaultValues_item", HFILL }},
2434 { &hf_x509if_entryType,
2435 { "entryType", "x509if.entryType",
2436 FT_OID, BASE_NONE, NULL, 0,
2437 "x509if.T_entryType", HFILL }},
2438 { &hf_x509if_ra_values,
2439 { "values", "x509if.values",
2440 FT_UINT32, BASE_DEC, NULL, 0,
2441 "x509if.T_ra_values", HFILL }},
2442 { &hf_x509if_ra_values_item,
2443 { "values item", "x509if.values_item",
2444 FT_NONE, BASE_NONE, NULL, 0,
2445 "x509if.T_ra_values_item", HFILL }},
2446 { &hf_x509if_contexts,
2447 { "contexts", "x509if.contexts",
2448 FT_UINT32, BASE_DEC, NULL, 0,
2449 "x509if.SEQUENCE_SIZE_0_MAX_OF_ContextProfile", HFILL }},
2450 { &hf_x509if_contexts_item,
2451 { "ContextProfile", "x509if.ContextProfile",
2452 FT_NONE, BASE_NONE, NULL, 0,
2453 "x509if.ContextProfile", HFILL }},
2454 { &hf_x509if_contextCombination,
2455 { "contextCombination", "x509if.contextCombination",
2456 FT_UINT32, BASE_DEC, VALS(x509if_ContextCombination_vals), 0,
2457 "x509if.ContextCombination", HFILL }},
2458 { &hf_x509if_matchingUse,
2459 { "matchingUse", "x509if.matchingUse",
2460 FT_UINT32, BASE_DEC, NULL, 0,
2461 "x509if.SEQUENCE_SIZE_1_MAX_OF_MatchingUse", HFILL }},
2462 { &hf_x509if_matchingUse_item,
2463 { "MatchingUse", "x509if.MatchingUse",
2464 FT_NONE, BASE_NONE, NULL, 0,
2465 "x509if.MatchingUse", HFILL }},
2466 { &hf_x509if_contextType_01,
2467 { "contextType", "x509if.contextType",
2468 FT_OID, BASE_NONE, NULL, 0,
2469 "x509if.T_contextType_01", HFILL }},
2470 { &hf_x509if_contextValue,
2471 { "contextValue", "x509if.contextValue",
2472 FT_UINT32, BASE_DEC, NULL, 0,
2473 "x509if.T_contextValue", HFILL }},
2474 { &hf_x509if_contextValue_item,
2475 { "contextValue item", "x509if.contextValue_item",
2476 FT_NONE, BASE_NONE, NULL, 0,
2477 "x509if.T_contextValue_item", HFILL }},
2478 { &hf_x509if_context,
2479 { "context", "x509if.context",
2480 FT_OID, BASE_NONE, NULL, 0,
2481 "x509if.OBJECT_IDENTIFIER", HFILL }},
2482 { &hf_x509if_contextcombination_and,
2483 { "and", "x509if.and",
2484 FT_UINT32, BASE_DEC, NULL, 0,
2485 "x509if.SEQUENCE_OF_ContextCombination", HFILL }},
2486 { &hf_x509if_contextcombination_and_item,
2487 { "ContextCombination", "x509if.ContextCombination",
2488 FT_UINT32, BASE_DEC, VALS(x509if_ContextCombination_vals), 0,
2489 "x509if.ContextCombination", HFILL }},
2490 { &hf_x509if_contextcombination_or,
2491 { "or", "x509if.or",
2492 FT_UINT32, BASE_DEC, NULL, 0,
2493 "x509if.SEQUENCE_OF_ContextCombination", HFILL }},
2494 { &hf_x509if_contextcombination_or_item,
2495 { "ContextCombination", "x509if.ContextCombination",
2496 FT_UINT32, BASE_DEC, VALS(x509if_ContextCombination_vals), 0,
2497 "x509if.ContextCombination", HFILL }},
2498 { &hf_x509if_contextcombination_not,
2499 { "not", "x509if.not",
2500 FT_UINT32, BASE_DEC, VALS(x509if_ContextCombination_vals), 0,
2501 "x509if.ContextCombination", HFILL }},
2502 { &hf_x509if_restrictionType,
2503 { "restrictionType", "x509if.restrictionType",
2504 FT_OID, BASE_NONE, NULL, 0,
2505 "x509if.T_restrictionType", HFILL }},
2506 { &hf_x509if_restrictionValue,
2507 { "restrictionValue", "x509if.restrictionValue",
2508 FT_NONE, BASE_NONE, NULL, 0,
2509 "x509if.T_restrictionValue", HFILL }},
2510 { &hf_x509if_attribute,
2511 { "attribute", "x509if.attribute",
2512 FT_OID, BASE_NONE, NULL, 0,
2513 "x509if.AttributeType", HFILL }},
2515 { "and", "x509if.and",
2516 FT_UINT32, BASE_DEC, NULL, 0,
2517 "x509if.SEQUENCE_OF_AttributeCombination", HFILL }},
2518 { &hf_x509if_and_item,
2519 { "AttributeCombination", "x509if.AttributeCombination",
2520 FT_UINT32, BASE_DEC, VALS(x509if_AttributeCombination_vals), 0,
2521 "x509if.AttributeCombination", HFILL }},
2523 { "or", "x509if.or",
2524 FT_UINT32, BASE_DEC, NULL, 0,
2525 "x509if.SEQUENCE_OF_AttributeCombination", HFILL }},
2526 { &hf_x509if_or_item,
2527 { "AttributeCombination", "x509if.AttributeCombination",
2528 FT_UINT32, BASE_DEC, VALS(x509if_AttributeCombination_vals), 0,
2529 "x509if.AttributeCombination", HFILL }},
2531 { "not", "x509if.not",
2532 FT_UINT32, BASE_DEC, VALS(x509if_AttributeCombination_vals), 0,
2533 "x509if.AttributeCombination", HFILL }},
2534 { &hf_x509if_attributeType_02,
2535 { "attributeType", "x509if.attributeType",
2536 FT_OID, BASE_NONE, NULL, 0,
2537 "x509if.T_attributeType_01", HFILL }},
2538 { &hf_x509if_outputValues,
2539 { "outputValues", "x509if.outputValues",
2540 FT_UINT32, BASE_DEC, VALS(x509if_T_outputValues_vals), 0,
2541 "x509if.T_outputValues", HFILL }},
2542 { &hf_x509if_selectedValues,
2543 { "selectedValues", "x509if.selectedValues",
2544 FT_UINT32, BASE_DEC, NULL, 0,
2545 "x509if.T_selectedValues", HFILL }},
2546 { &hf_x509if_selectedValues_item,
2547 { "selectedValues item", "x509if.selectedValues_item",
2548 FT_NONE, BASE_NONE, NULL, 0,
2549 "x509if.T_selectedValues_item", HFILL }},
2550 { &hf_x509if_matchedValuesOnly,
2551 { "matchedValuesOnly", "x509if.matchedValuesOnly",
2552 FT_NONE, BASE_NONE, NULL, 0,
2553 "x509if.NULL", HFILL }},
2554 { &hf_x509if_contexts_01,
2555 { "contexts", "x509if.contexts",
2556 FT_UINT32, BASE_DEC, NULL, 0,
2557 "x509if.SEQUENCE_SIZE_1_MAX_OF_ContextProfile", HFILL }},
2558 { &hf_x509if_serviceControls,
2559 { "serviceControls", "x509if.serviceControls",
2560 FT_NONE, BASE_NONE, NULL, 0,
2561 "dap.ServiceControlOptions", HFILL }},
2562 { &hf_x509if_searchOptions,
2563 { "searchOptions", "x509if.searchOptions",
2564 FT_NONE, BASE_NONE, NULL, 0,
2565 "dap.SearchControlOptions", HFILL }},
2566 { &hf_x509if_hierarchyOptions,
2567 { "hierarchyOptions", "x509if.hierarchyOptions",
2568 FT_NONE, BASE_NONE, NULL, 0,
2569 "dap.HierarchySelections", HFILL }},
2570 { &hf_x509if_default,
2571 { "default", "x509if.default",
2572 FT_INT32, BASE_DEC, NULL, 0,
2573 "x509if.INTEGER", HFILL }},
2575 { "max", "x509if.max",
2576 FT_INT32, BASE_DEC, NULL, 0,
2577 "x509if.INTEGER", HFILL }},
2579 { "basic", "x509if.basic",
2580 FT_NONE, BASE_NONE, NULL, 0,
2581 "x509if.MRMapping", HFILL }},
2582 { &hf_x509if_tightenings,
2583 { "tightenings", "x509if.tightenings",
2584 FT_UINT32, BASE_DEC, NULL, 0,
2585 "x509if.SEQUENCE_SIZE_1_MAX_OF_MRMapping", HFILL }},
2586 { &hf_x509if_tightenings_item,
2587 { "MRMapping", "x509if.MRMapping",
2588 FT_NONE, BASE_NONE, NULL, 0,
2589 "x509if.MRMapping", HFILL }},
2590 { &hf_x509if_relaxations,
2591 { "relaxations", "x509if.relaxations",
2592 FT_UINT32, BASE_DEC, NULL, 0,
2593 "x509if.SEQUENCE_SIZE_1_MAX_OF_MRMapping", HFILL }},
2594 { &hf_x509if_relaxations_item,
2595 { "MRMapping", "x509if.MRMapping",
2596 FT_NONE, BASE_NONE, NULL, 0,
2597 "x509if.MRMapping", HFILL }},
2598 { &hf_x509if_maximum_relaxation,
2599 { "maximum", "x509if.maximum",
2600 FT_INT32, BASE_DEC, NULL, 0,
2601 "x509if.INTEGER", HFILL }},
2602 { &hf_x509if_minimum_relaxation,
2603 { "minimum", "x509if.minimum",
2604 FT_INT32, BASE_DEC, NULL, 0,
2605 "x509if.INTEGER", HFILL }},
2606 { &hf_x509if_mapping,
2607 { "mapping", "x509if.mapping",
2608 FT_UINT32, BASE_DEC, NULL, 0,
2609 "x509if.SEQUENCE_SIZE_1_MAX_OF_Mapping", HFILL }},
2610 { &hf_x509if_mapping_item,
2611 { "Mapping", "x509if.Mapping",
2612 FT_NONE, BASE_NONE, NULL, 0,
2613 "x509if.Mapping", HFILL }},
2614 { &hf_x509if_substitution,
2615 { "substitution", "x509if.substitution",
2616 FT_UINT32, BASE_DEC, NULL, 0,
2617 "x509if.SEQUENCE_SIZE_1_MAX_OF_MRSubstitution", HFILL }},
2618 { &hf_x509if_substitution_item,
2619 { "MRSubstitution", "x509if.MRSubstitution",
2620 FT_NONE, BASE_NONE, NULL, 0,
2621 "x509if.MRSubstitution", HFILL }},
2622 { &hf_x509if_mappingFunction,
2623 { "mappingFunction", "x509if.mappingFunction",
2624 FT_OID, BASE_NONE, NULL, 0,
2625 "x509if.OBJECT_IDENTIFIER", HFILL }},
2627 { "level", "x509if.level",
2628 FT_INT32, BASE_DEC, NULL, 0,
2629 "x509if.INTEGER", HFILL }},
2630 { &hf_x509if_oldMatchingRule,
2631 { "oldMatchingRule", "x509if.oldMatchingRule",
2632 FT_OID, BASE_NONE, NULL, 0,
2633 "x509if.OBJECT_IDENTIFIER", HFILL }},
2634 { &hf_x509if_newMatchingRule,
2635 { "newMatchingRule", "x509if.newMatchingRule",
2636 FT_OID, BASE_NONE, NULL, 0,
2637 "x509if.OBJECT_IDENTIFIER", HFILL }},
2639 { "base", "x509if.base",
2640 FT_UINT32, BASE_DEC, NULL, 0,
2641 "x509if.LocalName", HFILL }},
2642 { &hf_x509if_specificExclusions,
2643 { "specificExclusions", "x509if.specificExclusions",
2644 FT_UINT32, BASE_DEC, NULL, 0,
2645 "x509if.T_specificExclusions", HFILL }},
2646 { &hf_x509if_specificExclusions_item,
2647 { "specificExclusions item", "x509if.specificExclusions_item",
2648 FT_UINT32, BASE_DEC, VALS(x509if_T_specificExclusions_item_vals), 0,
2649 "x509if.T_specificExclusions_item", HFILL }},
2650 { &hf_x509if_specificationFilter,
2651 { "specificationFilter", "x509if.specificationFilter",
2652 FT_UINT32, BASE_DEC, VALS(x509if_Refinement_vals), 0,
2653 "x509if.Refinement", HFILL }},
2654 { &hf_x509if_serviceType,
2655 { "serviceType", "x509if.serviceType",
2656 FT_OID, BASE_NONE, NULL, 0,
2657 "x509if.OBJECT_IDENTIFIER", HFILL }},
2658 { &hf_x509if_userClass,
2659 { "userClass", "x509if.userClass",
2660 FT_INT32, BASE_DEC, NULL, 0,
2661 "x509if.INTEGER", HFILL }},
2662 { &hf_x509if_inputAttributeTypes,
2663 { "inputAttributeTypes", "x509if.inputAttributeTypes",
2664 FT_UINT32, BASE_DEC, NULL, 0,
2665 "x509if.SEQUENCE_SIZE_0_MAX_OF_RequestAttribute", HFILL }},
2666 { &hf_x509if_inputAttributeTypes_item,
2667 { "RequestAttribute", "x509if.RequestAttribute",
2668 FT_NONE, BASE_NONE, NULL, 0,
2669 "x509if.RequestAttribute", HFILL }},
2670 { &hf_x509if_attributeCombination,
2671 { "attributeCombination", "x509if.attributeCombination",
2672 FT_UINT32, BASE_DEC, VALS(x509if_AttributeCombination_vals), 0,
2673 "x509if.AttributeCombination", HFILL }},
2674 { &hf_x509if_outputAttributeTypes,
2675 { "outputAttributeTypes", "x509if.outputAttributeTypes",
2676 FT_UINT32, BASE_DEC, NULL, 0,
2677 "x509if.SEQUENCE_SIZE_1_MAX_OF_ResultAttribute", HFILL }},
2678 { &hf_x509if_outputAttributeTypes_item,
2679 { "ResultAttribute", "x509if.ResultAttribute",
2680 FT_NONE, BASE_NONE, NULL, 0,
2681 "x509if.ResultAttribute", HFILL }},
2682 { &hf_x509if_defaultControls,
2683 { "defaultControls", "x509if.defaultControls",
2684 FT_NONE, BASE_NONE, NULL, 0,
2685 "x509if.ControlOptions", HFILL }},
2686 { &hf_x509if_mandatoryControls,
2687 { "mandatoryControls", "x509if.mandatoryControls",
2688 FT_NONE, BASE_NONE, NULL, 0,
2689 "x509if.ControlOptions", HFILL }},
2690 { &hf_x509if_searchRuleControls,
2691 { "searchRuleControls", "x509if.searchRuleControls",
2692 FT_NONE, BASE_NONE, NULL, 0,
2693 "x509if.ControlOptions", HFILL }},
2694 { &hf_x509if_familyGrouping,
2695 { "familyGrouping", "x509if.familyGrouping",
2696 FT_NONE, BASE_NONE, NULL, 0,
2697 "dap.FamilyGrouping", HFILL }},
2698 { &hf_x509if_familyReturn,
2699 { "familyReturn", "x509if.familyReturn",
2700 FT_NONE, BASE_NONE, NULL, 0,
2701 "dap.FamilyReturn", HFILL }},
2702 { &hf_x509if_relaxation,
2703 { "relaxation", "x509if.relaxation",
2704 FT_NONE, BASE_NONE, NULL, 0,
2705 "x509if.RelaxationPolicy", HFILL }},
2706 { &hf_x509if_additionalControl,
2707 { "additionalControl", "x509if.additionalControl",
2708 FT_UINT32, BASE_DEC, NULL, 0,
2709 "x509if.SEQUENCE_SIZE_1_MAX_OF_AttributeType", HFILL }},
2710 { &hf_x509if_additionalControl_item,
2711 { "AttributeType", "x509if.AttributeType",
2712 FT_OID, BASE_NONE, NULL, 0,
2713 "x509if.AttributeType", HFILL }},
2714 { &hf_x509if_allowedSubset,
2715 { "allowedSubset", "x509if.allowedSubset",
2716 FT_BYTES, BASE_HEX, NULL, 0,
2717 "x509if.AllowedSubset", HFILL }},
2718 { &hf_x509if_imposedSubset,
2719 { "imposedSubset", "x509if.imposedSubset",
2720 FT_UINT32, BASE_DEC, VALS(x509if_ImposedSubset_vals), 0,
2721 "x509if.ImposedSubset", HFILL }},
2722 { &hf_x509if_entryLimit,
2723 { "entryLimit", "x509if.entryLimit",
2724 FT_NONE, BASE_NONE, NULL, 0,
2725 "x509if.EntryLimit", HFILL }},
2727 { "name", "x509if.name",
2728 FT_UINT32, BASE_DEC, NULL, 0,
2729 "x509if.SET_SIZE_1_MAX_OF_DirectoryString", HFILL }},
2730 { &hf_x509if_name_item,
2731 { "DirectoryString", "x509if.DirectoryString",
2732 FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
2733 "x509sat.DirectoryString", HFILL }},
2734 { &hf_x509if_description,
2735 { "description", "x509if.description",
2736 FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
2737 "x509sat.DirectoryString", HFILL }},
2738 { &hf_x509if_AllowedSubset_baseObject,
2739 { "baseObject", "x509if.baseObject",
2740 FT_BOOLEAN, 8, NULL, 0x80,
2742 { &hf_x509if_AllowedSubset_oneLevel,
2743 { "oneLevel", "x509if.oneLevel",
2744 FT_BOOLEAN, 8, NULL, 0x40,
2746 { &hf_x509if_AllowedSubset_wholeSubtree,
2747 { "wholeSubtree", "x509if.wholeSubtree",
2748 FT_BOOLEAN, 8, NULL, 0x20,
2751 /*--- End of included file: packet-x509if-hfarr.c ---*/
2752 #line 124 "packet-x509if-template.c"
2755 /* List of subtrees */
2756 static gint *ett[] = {
2758 /*--- Included file: packet-x509if-ettarr.c ---*/
2759 #line 1 "packet-x509if-ettarr.c"
2760 &ett_x509if_Attribute,
2761 &ett_x509if_T_values,
2762 &ett_x509if_T_valuesWithContext,
2763 &ett_x509if_T_valuesWithContext_item,
2764 &ett_x509if_SET_SIZE_1_MAX_OF_Context,
2765 &ett_x509if_Context,
2766 &ett_x509if_T_contextValues,
2767 &ett_x509if_AttributeValueAssertion,
2768 &ett_x509if_T_assertedContexts,
2769 &ett_x509if_SET_SIZE_1_MAX_OF_ContextAssertion,
2770 &ett_x509if_ContextAssertion,
2771 &ett_x509if_T_ca_contextValues,
2772 &ett_x509if_AttributeTypeAssertion,
2773 &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextAssertion,
2775 &ett_x509if_RDNSequence,
2776 &ett_x509if_RelativeDistinguishedName,
2777 &ett_x509if_AttributeTypeAndDistinguishedValue,
2778 &ett_x509if_T_valWithContext,
2779 &ett_x509if_T_valWithContext_item,
2780 &ett_x509if_SubtreeSpecification,
2781 &ett_x509if_ChopSpecification,
2782 &ett_x509if_T_chopSpecificExclusions,
2783 &ett_x509if_T_chopSpecificExclusions_item,
2784 &ett_x509if_Refinement,
2785 &ett_x509if_SET_OF_Refinement,
2786 &ett_x509if_DITStructureRule,
2787 &ett_x509if_SET_SIZE_1_MAX_OF_RuleIdentifier,
2788 &ett_x509if_DITContentRule,
2789 &ett_x509if_T_auxiliaries,
2790 &ett_x509if_T_mandatory,
2791 &ett_x509if_T_optional,
2792 &ett_x509if_T_precluded,
2793 &ett_x509if_DITContextUse,
2794 &ett_x509if_T_mandatoryContexts,
2795 &ett_x509if_T_optionalContexts,
2796 &ett_x509if_SearchRuleDescription,
2797 &ett_x509if_SearchRule,
2798 &ett_x509if_SearchRuleId,
2799 &ett_x509if_AllowedSubset,
2800 &ett_x509if_RequestAttribute,
2801 &ett_x509if_T_ra_selectedValues,
2802 &ett_x509if_T_defaultValues,
2803 &ett_x509if_T_defaultValues_item,
2804 &ett_x509if_T_ra_values,
2805 &ett_x509if_SEQUENCE_SIZE_0_MAX_OF_ContextProfile,
2806 &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MatchingUse,
2807 &ett_x509if_ContextProfile,
2808 &ett_x509if_T_contextValue,
2809 &ett_x509if_ContextCombination,
2810 &ett_x509if_SEQUENCE_OF_ContextCombination,
2811 &ett_x509if_MatchingUse,
2812 &ett_x509if_AttributeCombination,
2813 &ett_x509if_SEQUENCE_OF_AttributeCombination,
2814 &ett_x509if_ResultAttribute,
2815 &ett_x509if_T_outputValues,
2816 &ett_x509if_T_selectedValues,
2817 &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextProfile,
2818 &ett_x509if_ControlOptions,
2819 &ett_x509if_EntryLimit,
2820 &ett_x509if_RelaxationPolicy,
2821 &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MRMapping,
2822 &ett_x509if_MRMapping,
2823 &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_Mapping,
2824 &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MRSubstitution,
2825 &ett_x509if_Mapping,
2826 &ett_x509if_MRSubstitution,
2827 &ett_x509if_T_specificExclusions,
2828 &ett_x509if_T_specificExclusions_item,
2829 &ett_x509if_SEQUENCE_SIZE_0_MAX_OF_RequestAttribute,
2830 &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ResultAttribute,
2831 &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_AttributeType,
2832 &ett_x509if_SET_SIZE_1_MAX_OF_DirectoryString,
2834 /*--- End of included file: packet-x509if-ettarr.c ---*/
2835 #line 129 "packet-x509if-template.c"
2838 /* Register protocol */
2839 proto_x509if = proto_register_protocol(PNAME, PSNAME, PFNAME);
2841 /* Register fields and subtrees */
2842 proto_register_field_array(proto_x509if, hf, array_length(hf));
2843 proto_register_subtree_array(ett, array_length(ett));
2845 /* initialise array */
2846 fmt_vals[0].value = 0;
2847 fmt_vals[0].strptr = NULL;
2852 /*--- proto_reg_handoff_x509if -------------------------------------------*/
2853 void proto_reg_handoff_x509if(void) {
2855 /*--- Included file: packet-x509if-dis-tab.c ---*/
2856 #line 1 "packet-x509if-dis-tab.c"
2857 register_ber_oid_dissector("2.5.4.1", dissect_DistinguishedName_PDU, proto_x509if, "id-at-aliasedEntryName");
2858 register_ber_oid_dissector("2.5.4.31", dissect_DistinguishedName_PDU, proto_x509if, "id-at-member");
2859 register_ber_oid_dissector("2.5.4.32", dissect_DistinguishedName_PDU, proto_x509if, "id-at-owner");
2860 register_ber_oid_dissector("2.5.4.33", dissect_DistinguishedName_PDU, proto_x509if, "id-at-roleOccupant");
2861 register_ber_oid_dissector("2.5.4.34", dissect_DistinguishedName_PDU, proto_x509if, "id-at-seeAlso");
2862 register_ber_oid_dissector("2.5.4.49", dissect_DistinguishedName_PDU, proto_x509if, "id-at-distinguishedName");
2863 register_ber_oid_dissector("2.5.18.3", dissect_DistinguishedName_PDU, proto_x509if, "id-oa-creatorsName");
2864 register_ber_oid_dissector("2.5.18.4", dissect_DistinguishedName_PDU, proto_x509if, "id-oa-modifiersName");
2865 register_ber_oid_dissector("2.5.18.6", dissect_SubtreeSpecification_PDU, proto_x509if, "id-oa-subtreeSpecification");
2866 register_ber_oid_dissector("2.5.18.10", dissect_DistinguishedName_PDU, proto_x509if, "id-oa-subschemaSubentry");
2867 register_ber_oid_dissector("2.5.18.11", dissect_DistinguishedName_PDU, proto_x509if, "id-oa-accessControlSubentry");
2868 register_ber_oid_dissector("2.5.18.12", dissect_DistinguishedName_PDU, proto_x509if, "id-oa-collectiveAttributeSubentry");
2869 register_ber_oid_dissector("2.5.18.13", dissect_DistinguishedName_PDU, proto_x509if, "id-oa-contextDefaultSubentry");
2870 register_ber_oid_dissector("2.5.18.17", dissect_HierarchyLevel_PDU, proto_x509if, "id-oa-hierarchyLevel");
2871 register_ber_oid_dissector("2.5.18.18", dissect_HierarchyBelow_PDU, proto_x509if, "iid-oa-hierarchyBelow");
2872 register_ber_oid_dissector("2.6.5.2.5", dissect_DistinguishedName_PDU, proto_x509if, "id-at-mhs-message-store-dn");
2873 register_ber_oid_dissector("2.6.5.2.14", dissect_DistinguishedName_PDU, proto_x509if, "id-at-mhs-dl-related-lists");
2874 register_ber_oid_dissector("2.16.840.1.101.2.2.1.3", dissect_DistinguishedName_PDU, proto_x509if, "id-at-alternateRecipient");
2875 register_ber_oid_dissector("2.16.840.1.101.2.2.1.4", dissect_DistinguishedName_PDU, proto_x509if, "id-at-associatedOrganization");
2876 register_ber_oid_dissector("2.16.840.1.101.2.2.1.6", dissect_DistinguishedName_PDU, proto_x509if, "id-at-associatedPLA");
2877 register_ber_oid_dissector("2.16.840.1.101.2.2.1.49", dissect_DistinguishedName_PDU, proto_x509if, "id-at-aliasPointer");
2878 register_ber_oid_dissector("2.16.840.1.101.2.2.1.61", dissect_DistinguishedName_PDU, proto_x509if, "id-at-listPointer");
2879 register_ber_oid_dissector("2.16.840.1.101.2.2.1.110", dissect_DistinguishedName_PDU, proto_x509if, "id-at-administrator");
2880 register_ber_oid_dissector("2.16.840.1.101.2.2.1.111", dissect_DistinguishedName_PDU, proto_x509if, "id-at-aigsExpanded");
2881 register_ber_oid_dissector("2.16.840.1.101.2.2.1.113", dissect_DistinguishedName_PDU, proto_x509if, "id-at-associatedAL");
2882 register_ber_oid_dissector("2.16.840.1.101.2.2.1.114", dissect_DistinguishedName_PDU, proto_x509if, "id-at-copyMember");
2883 register_ber_oid_dissector("2.16.840.1.101.2.2.1.117", dissect_DistinguishedName_PDU, proto_x509if, "id-at-guard");
2884 register_ber_oid_dissector("2.16.840.1.101.2.2.1.121", dissect_DistinguishedName_PDU, proto_x509if, "id-at-networkDN");
2885 register_ber_oid_dissector("2.16.840.1.101.2.2.1.138", dissect_DistinguishedName_PDU, proto_x509if, "id-at-plasServed");
2886 register_ber_oid_dissector("2.16.840.1.101.2.2.1.139", dissect_DistinguishedName_PDU, proto_x509if, "id-at-deployed");
2887 register_ber_oid_dissector("2.16.840.1.101.2.2.1.140", dissect_DistinguishedName_PDU, proto_x509if, "id-at-garrison");
2890 /*--- End of included file: packet-x509if-dis-tab.c ---*/
2891 #line 148 "packet-x509if-template.c"