1 /* Do not modify this file. */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler */
3 /* ./packet-x509if.c */
4 /* ../../tools/asn2wrs.py -b -e -p x509if -c x509if.cnf -s packet-x509if-template InformationFramework.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/conversation.h>
41 #include <epan/oids.h>
42 #include <epan/asn1.h>
47 #include "packet-ber.h"
48 #include "packet-x509if.h"
49 #include "packet-x509sat.h"
50 #include <epan/emem.h>
51 #include <epan/strutil.h>
53 #define PNAME "X.509 Information Framework"
54 #define PSNAME "X509IF"
55 #define PFNAME "x509if"
57 /* Initialize the protocol and registered fields */
58 int proto_x509if = -1;
59 static int hf_x509if_object_identifier_id = -1;
60 static int hf_x509if_any_string = -1;
62 /*--- Included file: packet-x509if-hf.c ---*/
63 #line 1 "packet-x509if-hf.c"
64 static int hf_x509if_Name_PDU = -1; /* Name */
65 static int hf_x509if_DistinguishedName_PDU = -1; /* DistinguishedName */
66 static int hf_x509if_type = -1; /* AttributeId */
67 static int hf_x509if_values = -1; /* SET_OF_AttributeValue */
68 static int hf_x509if_values_item = -1; /* AttributeValue */
69 static int hf_x509if_valuesWithContext = -1; /* T_valuesWithContext */
70 static int hf_x509if_valuesWithContext_item = -1; /* T_valuesWithContext_item */
71 static int hf_x509if_value = -1; /* ValuesWithContextValue */
72 static int hf_x509if_contextList = -1; /* SET_OF_Context */
73 static int hf_x509if_contextList_item = -1; /* Context */
74 static int hf_x509if_contextType = -1; /* AttributeId */
75 static int hf_x509if_contextValues = -1; /* SET_OF_AttributeValue */
76 static int hf_x509if_contextValues_item = -1; /* AttributeValue */
77 static int hf_x509if_fallback = -1; /* BOOLEAN */
78 static int hf_x509if_assertion = -1; /* AttributeValue */
79 static int hf_x509if_assertedContexts = -1; /* T_assertedContexts */
80 static int hf_x509if_allContexts = -1; /* NULL */
81 static int hf_x509if_selectedContexts = -1; /* SET_OF_ContextAssertion */
82 static int hf_x509if_selectedContexts_item = -1; /* ContextAssertion */
83 static int hf_x509if_ca_contextType = -1; /* ContextId */
84 static int hf_x509if_ca_contextValues = -1; /* SET_OF_ContextValue */
85 static int hf_x509if_ca_contextValues_item = -1; /* ContextValue */
86 static int hf_x509if_ata_assertedContexts = -1; /* SEQUENCE_OF_ContextAssertion */
87 static int hf_x509if_ata_assertedContexts_item = -1; /* ContextAssertion */
88 static int hf_x509if_rdnSequence = -1; /* RDNSequence */
89 static int hf_x509if_RDNSequence_item = -1; /* RDNSequence_item */
90 static int hf_x509if_RelativeDistinguishedName_item = -1; /* RelativeDistinguishedName_item */
91 static int hf_x509if_atadv_value = -1; /* AttributeValue */
92 static int hf_x509if_primaryDistinguished = -1; /* BOOLEAN */
93 static int hf_x509if_valueswithContext = -1; /* T_valWithContext */
94 static int hf_x509if_valueswithContext_item = -1; /* T_valWithContext_item */
95 static int hf_x509if_distingAttrValue = -1; /* ValuesWithContextValue */
96 static int hf_x509if_base = -1; /* LocalName */
97 static int hf_x509if_specificExclusions = -1; /* T_specificExclusions */
98 static int hf_x509if_specificExclusions_item = -1; /* T_specificExclusions_item */
99 static int hf_x509if_chopBefore = -1; /* LocalName */
100 static int hf_x509if_chopAfter = -1; /* LocalName */
101 static int hf_x509if_minimum = -1; /* BaseDistance */
102 static int hf_x509if_maximum = -1; /* BaseDistance */
103 static int hf_x509if_specificationFilter = -1; /* Refinement */
104 static int hf_x509if_chopSpecificExclusions = -1; /* T_chopSpecificExclusions */
105 static int hf_x509if_chopSpecificExclusions_item = -1; /* T_chopSpecificExclusions_item */
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_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; /* SET_SIZE_1_MAX_OF_AttributeId */
120 static int hf_x509if_mandatory_item = -1; /* AttributeId */
121 static int hf_x509if_optional = -1; /* SET_SIZE_1_MAX_OF_AttributeId */
122 static int hf_x509if_optional_item = -1; /* AttributeId */
123 static int hf_x509if_precluded = -1; /* SET_SIZE_1_MAX_OF_AttributeId */
124 static int hf_x509if_precluded_item = -1; /* AttributeId */
125 static int hf_x509if_attributeType = -1; /* AttributeId */
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_serviceType = -1; /* OBJECT_IDENTIFIER */
133 static int hf_x509if_userClass = -1; /* INTEGER */
134 static int hf_x509if_inputAttributeTypes = -1; /* SEQUENCE_OF_RequestAttribute */
135 static int hf_x509if_inputAttributeTypes_item = -1; /* RequestAttribute */
136 static int hf_x509if_attributeCombination = -1; /* AttributeCombination */
137 static int hf_x509if_outputAttributeTypes = -1; /* SEQUENCE_OF_ResultAttribute */
138 static int hf_x509if_outputAttributeTypes_item = -1; /* ResultAttribute */
139 static int hf_x509if_defaultControls = -1; /* ControlOptions */
140 static int hf_x509if_mandatoryControls = -1; /* ControlOptions */
141 static int hf_x509if_searchRuleControls = -1; /* ControlOptions */
142 static int hf_x509if_relaxation = -1; /* RelaxationPolicy */
143 static int hf_x509if_additionalControl = -1; /* SEQUENCE_OF_AttributeType */
144 static int hf_x509if_additionalControl_item = -1; /* AttributeType */
145 static int hf_x509if_allowedSubset = -1; /* AllowedSubset */
146 static int hf_x509if_imposedSubset = -1; /* ImposedSubset */
147 static int hf_x509if_entryLimit = -1; /* EntryLimit */
148 static int hf_x509if_name = -1; /* SET_OF_DirectoryString */
149 static int hf_x509if_name_item = -1; /* DirectoryString */
150 static int hf_x509if_description = -1; /* DirectoryString */
151 static int hf_x509if_obsolete = -1; /* BOOLEAN */
152 static int hf_x509if_includeSubtypes = -1; /* BOOLEAN */
153 static int hf_x509if_ra_selectedValues = -1; /* SEQUENCE_OF_SelectedValues */
154 static int hf_x509if_ra_selectedValues_item = -1; /* SelectedValues */
155 static int hf_x509if_defaultValues = -1; /* T_defaultValues */
156 static int hf_x509if_defaultValues_item = -1; /* T_defaultValues_item */
157 static int hf_x509if_entryType = -1; /* DefaultValueType */
158 static int hf_x509if_ra_values = -1; /* SEQUENCE_OF_DefaultValueValues */
159 static int hf_x509if_ra_values_item = -1; /* DefaultValueValues */
160 static int hf_x509if_contexts = -1; /* SEQUENCE_OF_ContextProfile */
161 static int hf_x509if_contexts_item = -1; /* ContextProfile */
162 static int hf_x509if_contextCombination = -1; /* ContextCombination */
163 static int hf_x509if_matchingUse = -1; /* SEQUENCE_OF_MatchingUse */
164 static int hf_x509if_matchingUse_item = -1; /* MatchingUse */
165 static int hf_x509if_contextValue = -1; /* SEQUENCE_OF_AttributeValue */
166 static int hf_x509if_contextValue_item = -1; /* AttributeValue */
167 static int hf_x509if_context = -1; /* OBJECT_IDENTIFIER */
168 static int hf_x509if_contextcombination_and = -1; /* SEQUENCE_OF_ContextCombination */
169 static int hf_x509if_contextcombination_and_item = -1; /* ContextCombination */
170 static int hf_x509if_contextcombination_or = -1; /* SEQUENCE_OF_ContextCombination */
171 static int hf_x509if_contextcombination_or_item = -1; /* ContextCombination */
172 static int hf_x509if_contextcombination_not = -1; /* ContextCombination */
173 static int hf_x509if_restrictionType = -1; /* AttributeId */
174 static int hf_x509if_restrictionValue = -1; /* AttributeValue */
175 static int hf_x509if_attribute = -1; /* AttributeType */
176 static int hf_x509if_and = -1; /* SEQUENCE_OF_AttributeCombination */
177 static int hf_x509if_and_item = -1; /* AttributeCombination */
178 static int hf_x509if_or = -1; /* SEQUENCE_OF_AttributeCombination */
179 static int hf_x509if_or_item = -1; /* AttributeCombination */
180 static int hf_x509if_not = -1; /* AttributeCombination */
181 static int hf_x509if_outputValues = -1; /* T_outputValues */
182 static int hf_x509if_selectedValues = -1; /* SEQUENCE_OF_AttributeValue */
183 static int hf_x509if_selectedValues_item = -1; /* AttributeValue */
184 static int hf_x509if_matchedValuesOnly = -1; /* NULL */
185 static int hf_x509if_default = -1; /* INTEGER */
186 static int hf_x509if_max = -1; /* INTEGER */
187 static int hf_x509if_basic = -1; /* MRMapping */
188 static int hf_x509if_tightenings = -1; /* SEQUENCE_OF_MRMapping */
189 static int hf_x509if_tightenings_item = -1; /* MRMapping */
190 static int hf_x509if_relaxations = -1; /* SEQUENCE_OF_MRMapping */
191 static int hf_x509if_relaxations_item = -1; /* MRMapping */
192 static int hf_x509if_maximum_relaxation = -1; /* INTEGER */
193 static int hf_x509if_minimum_relaxation = -1; /* INTEGER */
194 static int hf_x509if_mapping = -1; /* SEQUENCE_OF_Mapping */
195 static int hf_x509if_mapping_item = -1; /* Mapping */
196 static int hf_x509if_substitution = -1; /* SEQUENCE_OF_MRSubstitution */
197 static int hf_x509if_substitution_item = -1; /* MRSubstitution */
198 static int hf_x509if_mappingFunction = -1; /* OBJECT_IDENTIFIER */
199 static int hf_x509if_level = -1; /* INTEGER */
200 static int hf_x509if_oldMatchingRule = -1; /* OBJECT_IDENTIFIER */
201 static int hf_x509if_newMatchingRule = -1; /* OBJECT_IDENTIFIER */
203 static int hf_x509if_AllowedSubset_baseObject = -1;
204 static int hf_x509if_AllowedSubset_oneLevel = -1;
205 static int hf_x509if_AllowedSubset_wholeSubtree = -1;
207 /*--- End of included file: packet-x509if-hf.c ---*/
208 #line 54 "packet-x509if-template.c"
210 /* Initialize the subtree pointers */
212 /*--- Included file: packet-x509if-ett.c ---*/
213 #line 1 "packet-x509if-ett.c"
214 static gint ett_x509if_Attribute = -1;
215 static gint ett_x509if_SET_OF_AttributeValue = -1;
216 static gint ett_x509if_T_valuesWithContext = -1;
217 static gint ett_x509if_T_valuesWithContext_item = -1;
218 static gint ett_x509if_SET_OF_Context = -1;
219 static gint ett_x509if_Context = -1;
220 static gint ett_x509if_AttributeValueAssertion = -1;
221 static gint ett_x509if_T_assertedContexts = -1;
222 static gint ett_x509if_SET_OF_ContextAssertion = -1;
223 static gint ett_x509if_ContextAssertion = -1;
224 static gint ett_x509if_SET_OF_ContextValue = -1;
225 static gint ett_x509if_AttributeTypeAssertion = -1;
226 static gint ett_x509if_SEQUENCE_OF_ContextAssertion = -1;
227 static gint ett_x509if_Name = -1;
228 static gint ett_x509if_RDNSequence = -1;
229 static gint ett_x509if_RelativeDistinguishedName = -1;
230 static gint ett_x509if_AttributeTypeAndDistinguishedValue = -1;
231 static gint ett_x509if_T_valWithContext = -1;
232 static gint ett_x509if_T_valWithContext_item = -1;
233 static gint ett_x509if_SubtreeSpecification = -1;
234 static gint ett_x509if_T_specificExclusions = -1;
235 static gint ett_x509if_T_specificExclusions_item = -1;
236 static gint ett_x509if_ChopSpecification = -1;
237 static gint ett_x509if_T_chopSpecificExclusions = -1;
238 static gint ett_x509if_T_chopSpecificExclusions_item = -1;
239 static gint ett_x509if_Refinement = -1;
240 static gint ett_x509if_SET_OF_Refinement = -1;
241 static gint ett_x509if_DITStructureRule = -1;
242 static gint ett_x509if_SET_OF_RuleIdentifier = -1;
243 static gint ett_x509if_DITContentRule = -1;
244 static gint ett_x509if_T_auxiliaries = -1;
245 static gint ett_x509if_SET_SIZE_1_MAX_OF_AttributeId = -1;
246 static gint ett_x509if_DITContextUse = -1;
247 static gint ett_x509if_T_mandatoryContexts = -1;
248 static gint ett_x509if_T_optionalContexts = -1;
249 static gint ett_x509if_SearchRuleDescription = -1;
250 static gint ett_x509if_SEQUENCE_OF_RequestAttribute = -1;
251 static gint ett_x509if_SEQUENCE_OF_ResultAttribute = -1;
252 static gint ett_x509if_SEQUENCE_OF_AttributeType = -1;
253 static gint ett_x509if_SET_OF_DirectoryString = -1;
254 static gint ett_x509if_SearchRule = -1;
255 static gint ett_x509if_SearchRuleId = -1;
256 static gint ett_x509if_AllowedSubset = -1;
257 static gint ett_x509if_RequestAttribute = -1;
258 static gint ett_x509if_SEQUENCE_OF_SelectedValues = -1;
259 static gint ett_x509if_T_defaultValues = -1;
260 static gint ett_x509if_T_defaultValues_item = -1;
261 static gint ett_x509if_SEQUENCE_OF_DefaultValueValues = -1;
262 static gint ett_x509if_SEQUENCE_OF_ContextProfile = -1;
263 static gint ett_x509if_SEQUENCE_OF_MatchingUse = -1;
264 static gint ett_x509if_ContextProfile = -1;
265 static gint ett_x509if_SEQUENCE_OF_AttributeValue = -1;
266 static gint ett_x509if_ContextCombination = -1;
267 static gint ett_x509if_SEQUENCE_OF_ContextCombination = -1;
268 static gint ett_x509if_MatchingUse = -1;
269 static gint ett_x509if_AttributeCombination = -1;
270 static gint ett_x509if_SEQUENCE_OF_AttributeCombination = -1;
271 static gint ett_x509if_ResultAttribute = -1;
272 static gint ett_x509if_T_outputValues = -1;
273 static gint ett_x509if_OutputValues = -1;
274 static gint ett_x509if_ControlOptions = -1;
275 static gint ett_x509if_EntryLimit = -1;
276 static gint ett_x509if_RelaxationPolicy = -1;
277 static gint ett_x509if_SEQUENCE_OF_MRMapping = -1;
278 static gint ett_x509if_MRMapping = -1;
279 static gint ett_x509if_SEQUENCE_OF_Mapping = -1;
280 static gint ett_x509if_SEQUENCE_OF_MRSubstitution = -1;
281 static gint ett_x509if_Mapping = -1;
282 static gint ett_x509if_MRSubstitution = -1;
284 /*--- End of included file: packet-x509if-ett.c ---*/
285 #line 57 "packet-x509if-template.c"
287 static const char *object_identifier_id;
288 static proto_tree *top_of_dn = NULL;
289 static proto_tree *top_of_rdn = NULL;
291 static gboolean rdn_one_value = FALSE; /* have we seen one value in an RDN yet */
292 static gboolean dn_one_rdn = FALSE; /* have we seen one RDN in a DN yet */
293 static gboolean doing_dn = TRUE;
295 #define MAX_RDN_STR_LEN 64
296 #define MAX_DN_STR_LEN (20 * MAX_RDN_STR_LEN)
298 static char *last_dn = NULL;
299 static char *last_rdn = NULL;
301 static int ava_hf_index;
302 #define MAX_FMT_VALS 32
303 static value_string fmt_vals[MAX_FMT_VALS];
304 #define MAX_AVA_STR_LEN 64
305 static char *last_ava = NULL;
308 /*--- Included file: packet-x509if-fn.c ---*/
309 #line 1 "packet-x509if-fn.c"
310 /*--- Cyclic dependencies ---*/
312 /* Refinement -> Refinement/and -> Refinement */
313 /* Refinement -> Refinement */
314 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_);
316 static int dissect_specificationFilter(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
317 return dissect_x509if_Refinement(FALSE, tvb, offset, actx, tree, hf_x509if_specificationFilter);
319 static int dissect_refinement_and_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
320 return dissect_x509if_Refinement(FALSE, tvb, offset, actx, tree, hf_x509if_refinement_and_item);
322 static int dissect_refinement_or_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
323 return dissect_x509if_Refinement(FALSE, tvb, offset, actx, tree, hf_x509if_refinement_or_item);
325 static int dissect_refinement_not(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
326 return dissect_x509if_Refinement(FALSE, tvb, offset, actx, tree, hf_x509if_refinement_not);
329 /* ContextCombination -> ContextCombination/and -> ContextCombination */
330 /* ContextCombination -> ContextCombination */
331 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_);
333 static int dissect_contextCombination(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
334 return dissect_x509if_ContextCombination(FALSE, tvb, offset, actx, tree, hf_x509if_contextCombination);
336 static int dissect_contextcombination_and_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
337 return dissect_x509if_ContextCombination(FALSE, tvb, offset, actx, tree, hf_x509if_contextcombination_and_item);
339 static int dissect_contextcombination_or_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
340 return dissect_x509if_ContextCombination(FALSE, tvb, offset, actx, tree, hf_x509if_contextcombination_or_item);
342 static int dissect_contextcombination_not(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
343 return dissect_x509if_ContextCombination(FALSE, tvb, offset, actx, tree, hf_x509if_contextcombination_not);
346 /* AttributeCombination -> AttributeCombination/and -> AttributeCombination */
347 /* AttributeCombination -> AttributeCombination */
348 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_);
350 static int dissect_attributeCombination(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
351 return dissect_x509if_AttributeCombination(FALSE, tvb, offset, actx, tree, hf_x509if_attributeCombination);
353 static int dissect_and_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
354 return dissect_x509if_AttributeCombination(FALSE, tvb, offset, actx, tree, hf_x509if_and_item);
356 static int dissect_or_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
357 return dissect_x509if_AttributeCombination(FALSE, tvb, offset, actx, tree, hf_x509if_or_item);
359 static int dissect_not(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
360 return dissect_x509if_AttributeCombination(FALSE, tvb, offset, actx, tree, hf_x509if_not);
364 /*--- Fields for imported types ---*/
366 static int dissect_name_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
367 return dissect_x509sat_DirectoryString(FALSE, tvb, offset, actx, tree, hf_x509if_name_item);
369 static int dissect_description(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
370 return dissect_x509sat_DirectoryString(FALSE, tvb, offset, actx, tree, hf_x509if_description);
376 dissect_x509if_AttributeId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
377 #line 137 "x509if.cnf"
381 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
384 if(object_identifier_id) {
385 /* see if we can find a nice name */
386 name = get_oid_str_name(object_identifier_id);
387 if(!name) name = object_identifier_id;
389 if(doing_dn) { /* append it to the RDN */
390 g_strlcat(last_rdn, name, MAX_RDN_STR_LEN);
391 g_strlcat(last_rdn, "=", MAX_RDN_STR_LEN);
393 /* append it to the tree */
394 proto_item_append_text(tree, " (%s=", name);
397 if((fmt = val_to_str(hf_index, fmt_vals, "")) && *fmt) {
398 /* we have a format */
399 last_ava = ep_alloc(MAX_AVA_STR_LEN); *last_ava = '\0';
401 g_snprintf(last_ava, MAX_AVA_STR_LEN, "%s %s", name, fmt);
403 proto_item_append_text(tree, " %s", last_ava);
412 static int dissect_type(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
413 return dissect_x509if_AttributeId(FALSE, tvb, offset, actx, tree, hf_x509if_type);
415 static int dissect_contextType(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
416 return dissect_x509if_AttributeId(FALSE, tvb, offset, actx, tree, hf_x509if_contextType);
418 static int dissect_mandatory_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
419 return dissect_x509if_AttributeId(FALSE, tvb, offset, actx, tree, hf_x509if_mandatory_item);
421 static int dissect_optional_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
422 return dissect_x509if_AttributeId(FALSE, tvb, offset, actx, tree, hf_x509if_optional_item);
424 static int dissect_precluded_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
425 return dissect_x509if_AttributeId(FALSE, tvb, offset, actx, tree, hf_x509if_precluded_item);
427 static int dissect_attributeType(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
428 return dissect_x509if_AttributeId(FALSE, tvb, offset, actx, tree, hf_x509if_attributeType);
430 static int dissect_restrictionType(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
431 return dissect_x509if_AttributeId(FALSE, tvb, offset, actx, tree, hf_x509if_restrictionType);
437 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_) {
438 #line 167 "x509if.cnf"
439 int old_offset = offset;
443 const char *name = NULL;
444 const char *orig_oid = object_identifier_id;
446 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
448 /* in dissecting the value we may have overridden the OID of the value - which is
449 a problem if there are multiple values */
450 object_identifier_id = orig_oid;
452 /* try and dissect as a string */
453 dissect_ber_octet_string(FALSE, actx, NULL, tvb, old_offset, hf_x509if_any_string, &out_tvb);
455 /* should also try and dissect as an OID and integer */
456 /* of course, if I can look up the syntax .... */
459 /* it was a string - format it */
460 value = tvb_format_text(out_tvb, 0, tvb_length(out_tvb));
463 g_strlcat(last_rdn, value, MAX_RDN_STR_LEN);
465 /* append it to the tree*/
466 proto_item_append_text(tree, "%s)", value);
469 if((fmt = val_to_str(ava_hf_index, fmt_vals, "")) && *fmt) {
470 /* we have a format */
472 if(!(name = get_oid_str_name(object_identifier_id)))
473 name = object_identifier_id;
474 g_snprintf(last_ava, MAX_AVA_STR_LEN, "%s %s %s", name, fmt, value);
476 proto_item_append_text(tree, " %s", last_ava);
485 static int dissect_values_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
486 return dissect_x509if_AttributeValue(FALSE, tvb, offset, actx, tree, hf_x509if_values_item);
488 static int dissect_contextValues_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
489 return dissect_x509if_AttributeValue(FALSE, tvb, offset, actx, tree, hf_x509if_contextValues_item);
491 static int dissect_assertion(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
492 return dissect_x509if_AttributeValue(FALSE, tvb, offset, actx, tree, hf_x509if_assertion);
494 static int dissect_atadv_value(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
495 return dissect_x509if_AttributeValue(FALSE, tvb, offset, actx, tree, hf_x509if_atadv_value);
497 static int dissect_contextValue_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
498 return dissect_x509if_AttributeValue(FALSE, tvb, offset, actx, tree, hf_x509if_contextValue_item);
500 static int dissect_restrictionValue(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
501 return dissect_x509if_AttributeValue(FALSE, tvb, offset, actx, tree, hf_x509if_restrictionValue);
503 static int dissect_selectedValues_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
504 return dissect_x509if_AttributeValue(FALSE, tvb, offset, actx, tree, hf_x509if_selectedValues_item);
510 dissect_x509if_ValuesWithContextValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
511 #line 219 "x509if.cnf"
512 offset=call_ber_oid_callback("unknown", tvb, offset, actx->pinfo, tree);
518 static int dissect_value(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
519 return dissect_x509if_ValuesWithContextValue(FALSE, tvb, offset, actx, tree, hf_x509if_value);
521 static int dissect_distingAttrValue(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
522 return dissect_x509if_ValuesWithContextValue(FALSE, tvb, offset, actx, tree, hf_x509if_distingAttrValue);
526 static const ber_old_sequence_t SET_OF_AttributeValue_set_of[1] = {
527 { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_values_item },
531 dissect_x509if_SET_OF_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_) {
532 offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset,
533 SET_OF_AttributeValue_set_of, hf_index, ett_x509if_SET_OF_AttributeValue);
537 static int dissect_values(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
538 return dissect_x509if_SET_OF_AttributeValue(FALSE, tvb, offset, actx, tree, hf_x509if_values);
540 static int dissect_contextValues(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
541 return dissect_x509if_SET_OF_AttributeValue(FALSE, tvb, offset, actx, tree, hf_x509if_contextValues);
547 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_) {
548 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index);
552 static int dissect_fallback(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
553 return dissect_x509if_BOOLEAN(FALSE, tvb, offset, actx, tree, hf_x509if_fallback);
555 static int dissect_primaryDistinguished(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
556 return dissect_x509if_BOOLEAN(FALSE, tvb, offset, actx, tree, hf_x509if_primaryDistinguished);
558 static int dissect_obsolete(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
559 return dissect_x509if_BOOLEAN(FALSE, tvb, offset, actx, tree, hf_x509if_obsolete);
561 static int dissect_includeSubtypes(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
562 return dissect_x509if_BOOLEAN(FALSE, tvb, offset, actx, tree, hf_x509if_includeSubtypes);
566 static const ber_old_sequence_t Context_sequence[] = {
567 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_contextType },
568 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_contextValues },
569 { BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_fallback },
574 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_) {
575 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
576 Context_sequence, hf_index, ett_x509if_Context);
580 static int dissect_contextList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
581 return dissect_x509if_Context(FALSE, tvb, offset, actx, tree, hf_x509if_contextList_item);
585 static const ber_old_sequence_t SET_OF_Context_set_of[1] = {
586 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_contextList_item },
590 dissect_x509if_SET_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_) {
591 offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset,
592 SET_OF_Context_set_of, hf_index, ett_x509if_SET_OF_Context);
596 static int dissect_contextList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
597 return dissect_x509if_SET_OF_Context(FALSE, tvb, offset, actx, tree, hf_x509if_contextList);
601 static const ber_old_sequence_t T_valuesWithContext_item_sequence[] = {
602 { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_value },
603 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_contextList },
608 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_) {
609 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
610 T_valuesWithContext_item_sequence, hf_index, ett_x509if_T_valuesWithContext_item);
614 static int dissect_valuesWithContext_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
615 return dissect_x509if_T_valuesWithContext_item(FALSE, tvb, offset, actx, tree, hf_x509if_valuesWithContext_item);
619 static const ber_old_sequence_t T_valuesWithContext_set_of[1] = {
620 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_valuesWithContext_item },
624 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_) {
625 offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset,
626 T_valuesWithContext_set_of, hf_index, ett_x509if_T_valuesWithContext);
630 static int dissect_valuesWithContext(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
631 return dissect_x509if_T_valuesWithContext(FALSE, tvb, offset, actx, tree, hf_x509if_valuesWithContext);
635 static const ber_old_sequence_t Attribute_sequence[] = {
636 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_type },
637 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_values },
638 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_valuesWithContext },
643 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_) {
644 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
645 Attribute_sequence, hf_index, ett_x509if_Attribute);
653 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_) {
654 offset = dissect_x509if_AttributeId(implicit_tag, tvb, offset, actx, tree, hf_index);
658 static int dissect_additionalControl_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
659 return dissect_x509if_AttributeType(FALSE, tvb, offset, actx, tree, hf_x509if_additionalControl_item);
661 static int dissect_attribute(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
662 return dissect_x509if_AttributeType(FALSE, tvb, offset, actx, tree, hf_x509if_attribute);
668 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_) {
669 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
673 static int dissect_allContexts(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
674 return dissect_x509if_NULL(FALSE, tvb, offset, actx, tree, hf_x509if_allContexts);
676 static int dissect_matchedValuesOnly(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
677 return dissect_x509if_NULL(FALSE, tvb, offset, actx, tree, hf_x509if_matchedValuesOnly);
683 dissect_x509if_ContextId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
684 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
688 static int dissect_ca_contextType(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
689 return dissect_x509if_ContextId(FALSE, tvb, offset, actx, tree, hf_x509if_ca_contextType);
695 dissect_x509if_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_) {
696 #line 131 "x509if.cnf"
697 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
703 static int dissect_ca_contextValues_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
704 return dissect_x509if_ContextValue(FALSE, tvb, offset, actx, tree, hf_x509if_ca_contextValues_item);
708 static const ber_old_sequence_t SET_OF_ContextValue_set_of[1] = {
709 { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_ca_contextValues_item },
713 dissect_x509if_SET_OF_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_) {
714 offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset,
715 SET_OF_ContextValue_set_of, hf_index, ett_x509if_SET_OF_ContextValue);
719 static int dissect_ca_contextValues(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
720 return dissect_x509if_SET_OF_ContextValue(FALSE, tvb, offset, actx, tree, hf_x509if_ca_contextValues);
724 static const ber_old_sequence_t ContextAssertion_sequence[] = {
725 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_ca_contextType },
726 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_ca_contextValues },
731 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_) {
732 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
733 ContextAssertion_sequence, hf_index, ett_x509if_ContextAssertion);
737 static int dissect_selectedContexts_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
738 return dissect_x509if_ContextAssertion(FALSE, tvb, offset, actx, tree, hf_x509if_selectedContexts_item);
740 static int dissect_ata_assertedContexts_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
741 return dissect_x509if_ContextAssertion(FALSE, tvb, offset, actx, tree, hf_x509if_ata_assertedContexts_item);
745 static const ber_old_sequence_t SET_OF_ContextAssertion_set_of[1] = {
746 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_selectedContexts_item },
750 dissect_x509if_SET_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_) {
751 offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset,
752 SET_OF_ContextAssertion_set_of, hf_index, ett_x509if_SET_OF_ContextAssertion);
756 static int dissect_selectedContexts(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
757 return dissect_x509if_SET_OF_ContextAssertion(FALSE, tvb, offset, actx, tree, hf_x509if_selectedContexts);
761 static const value_string x509if_T_assertedContexts_vals[] = {
762 { 0, "allContexts" },
763 { 1, "selectedContexts" },
767 static const ber_old_choice_t T_assertedContexts_choice[] = {
768 { 0, BER_CLASS_CON, 0, 0, dissect_allContexts },
769 { 1, BER_CLASS_CON, 1, 0, dissect_selectedContexts },
774 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_) {
775 offset = dissect_ber_old_choice(actx, tree, tvb, offset,
776 T_assertedContexts_choice, hf_index, ett_x509if_T_assertedContexts,
781 static int dissect_assertedContexts(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
782 return dissect_x509if_T_assertedContexts(FALSE, tvb, offset, actx, tree, hf_x509if_assertedContexts);
786 static const ber_old_sequence_t AttributeValueAssertion_sequence[] = {
787 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_type },
788 { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_assertion },
789 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_assertedContexts },
794 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_) {
795 #line 296 "x509if.cnf"
797 ava_hf_index = hf_index;
798 last_ava = ep_alloc(MAX_AVA_STR_LEN); *last_ava = '\0';
800 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
801 AttributeValueAssertion_sequence, hf_index, ett_x509if_AttributeValueAssertion);
812 static const ber_old_sequence_t SEQUENCE_OF_ContextAssertion_sequence_of[1] = {
813 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ata_assertedContexts_item },
817 dissect_x509if_SEQUENCE_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_) {
818 offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset,
819 SEQUENCE_OF_ContextAssertion_sequence_of, hf_index, ett_x509if_SEQUENCE_OF_ContextAssertion);
823 static int dissect_ata_assertedContexts(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
824 return dissect_x509if_SEQUENCE_OF_ContextAssertion(FALSE, tvb, offset, actx, tree, hf_x509if_ata_assertedContexts);
828 static const ber_old_sequence_t AttributeTypeAssertion_sequence[] = {
829 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_type },
830 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ata_assertedContexts },
835 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_) {
836 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
837 AttributeTypeAssertion_sequence, hf_index, ett_x509if_AttributeTypeAssertion);
843 static const ber_old_sequence_t T_valWithContext_item_sequence[] = {
844 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_distingAttrValue },
845 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_contextList },
850 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_) {
851 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
852 T_valWithContext_item_sequence, hf_index, ett_x509if_T_valWithContext_item);
856 static int dissect_valueswithContext_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
857 return dissect_x509if_T_valWithContext_item(FALSE, tvb, offset, actx, tree, hf_x509if_valueswithContext_item);
861 static const ber_old_sequence_t T_valWithContext_set_of[1] = {
862 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_valueswithContext_item },
866 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_) {
867 offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset,
868 T_valWithContext_set_of, hf_index, ett_x509if_T_valWithContext);
872 static int dissect_valueswithContext(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
873 return dissect_x509if_T_valWithContext(FALSE, tvb, offset, actx, tree, hf_x509if_valueswithContext);
877 static const ber_old_sequence_t AttributeTypeAndDistinguishedValue_sequence[] = {
878 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_type },
879 { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_atadv_value },
880 { BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_primaryDistinguished },
881 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_valueswithContext },
886 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_) {
887 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
888 AttributeTypeAndDistinguishedValue_sequence, hf_index, ett_x509if_AttributeTypeAndDistinguishedValue);
896 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_) {
897 #line 250 "x509if.cnf"
904 /* this is an additional value - delimit */
905 g_strlcat(last_rdn, "+", MAX_RDN_STR_LEN);
908 offset = dissect_x509if_AttributeTypeAndDistinguishedValue(implicit_tag, tvb, offset, actx, tree, hf_index);
911 rdn_one_value = TRUE;
917 static int dissect_RelativeDistinguishedName_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
918 return dissect_x509if_RelativeDistinguishedName_item(FALSE, tvb, offset, actx, tree, hf_x509if_RelativeDistinguishedName_item);
922 static const ber_old_sequence_t RelativeDistinguishedName_set_of[1] = {
923 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_RelativeDistinguishedName_item },
927 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_) {
928 #line 222 "x509if.cnf"
931 rdn_one_value = FALSE;
933 last_rdn = ep_alloc(MAX_DN_STR_LEN); *last_rdn = '\0';
936 offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset,
937 RelativeDistinguishedName_set_of, hf_index, ett_x509if_RelativeDistinguishedName);
940 /* we've finished - close the bracket */
941 proto_item_append_text(top_of_rdn, " (%s)", last_rdn);
943 /* now append this to the DN */
946 temp_dn = ep_alloc(MAX_DN_STR_LEN); /* is there a better way to use ep_alloc here ? */
947 g_snprintf(temp_dn, MAX_DN_STR_LEN, "%s,%s", last_rdn, last_dn);
949 g_strlcat(last_dn, temp_dn, MAX_DN_STR_LEN);
951 g_strlcat(last_dn, last_rdn, MAX_DN_STR_LEN);
956 last_rdn = NULL; /* it will get freed when the next packet is dissected */
966 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_) {
967 #line 285 "x509if.cnf"
970 /* this is the first element - record the top */
974 offset = dissect_x509if_RelativeDistinguishedName(implicit_tag, tvb, offset, actx, tree, hf_index);
983 static int dissect_RDNSequence_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
984 return dissect_x509if_RDNSequence_item(FALSE, tvb, offset, actx, tree, hf_x509if_RDNSequence_item);
988 static const ber_old_sequence_t RDNSequence_sequence_of[1] = {
989 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_RDNSequence_item },
993 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_) {
994 #line 265 "x509if.cnf"
997 dn_one_rdn = FALSE; /* reset */
998 last_dn = ep_alloc(MAX_DN_STR_LEN); *last_dn = '\0';
1001 offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset,
1002 RDNSequence_sequence_of, hf_index, ett_x509if_RDNSequence);
1005 /* we've finished - append the dn */
1006 proto_item_append_text(top_of_dn, " (%s)", last_dn);
1008 /* see if we should append this to the col info */
1009 if(check_col(actx->pinfo->cinfo, COL_INFO) &&
1010 (fmt = val_to_str(hf_index, fmt_vals, "")) && *fmt) {
1011 /* we have a format */
1012 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s%s", fmt, last_dn);
1020 static int dissect_rdnSequence(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1021 return dissect_x509if_RDNSequence(FALSE, tvb, offset, actx, tree, hf_x509if_rdnSequence);
1025 const value_string x509if_Name_vals[] = {
1026 { 0, "rdnSequence" },
1030 static const ber_old_choice_t Name_choice[] = {
1031 { 0, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_rdnSequence },
1032 { 0, 0, 0, 0, NULL }
1036 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_) {
1037 offset = dissect_ber_old_choice(actx, tree, tvb, offset,
1038 Name_choice, hf_index, ett_x509if_Name,
1047 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_) {
1048 offset = dissect_x509if_RDNSequence(implicit_tag, tvb, offset, actx, tree, hf_index);
1056 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_) {
1057 offset = dissect_x509if_RDNSequence(implicit_tag, tvb, offset, actx, tree, hf_index);
1061 static int dissect_base(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1062 return dissect_x509if_LocalName(FALSE, tvb, offset, actx, tree, hf_x509if_base);
1064 static int dissect_chopBefore(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1065 return dissect_x509if_LocalName(FALSE, tvb, offset, actx, tree, hf_x509if_chopBefore);
1067 static int dissect_chopAfter(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1068 return dissect_x509if_LocalName(FALSE, tvb, offset, actx, tree, hf_x509if_chopAfter);
1072 static const value_string x509if_T_specificExclusions_item_vals[] = {
1073 { 0, "chopBefore" },
1078 static const ber_old_choice_t T_specificExclusions_item_choice[] = {
1079 { 0, BER_CLASS_CON, 0, 0, dissect_chopBefore },
1080 { 1, BER_CLASS_CON, 1, 0, dissect_chopAfter },
1081 { 0, 0, 0, 0, NULL }
1085 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_) {
1086 offset = dissect_ber_old_choice(actx, tree, tvb, offset,
1087 T_specificExclusions_item_choice, hf_index, ett_x509if_T_specificExclusions_item,
1092 static int dissect_specificExclusions_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1093 return dissect_x509if_T_specificExclusions_item(FALSE, tvb, offset, actx, tree, hf_x509if_specificExclusions_item);
1097 static const ber_old_sequence_t T_specificExclusions_set_of[1] = {
1098 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_specificExclusions_item },
1102 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_) {
1103 offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset,
1104 T_specificExclusions_set_of, hf_index, ett_x509if_T_specificExclusions);
1108 static int dissect_specificExclusions(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1109 return dissect_x509if_T_specificExclusions(FALSE, tvb, offset, actx, tree, hf_x509if_specificExclusions);
1115 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_) {
1116 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1121 static int dissect_minimum(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1122 return dissect_x509if_BaseDistance(FALSE, tvb, offset, actx, tree, hf_x509if_minimum);
1124 static int dissect_maximum(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1125 return dissect_x509if_BaseDistance(FALSE, tvb, offset, actx, tree, hf_x509if_maximum);
1131 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_) {
1132 offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
1136 static int dissect_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1137 return dissect_x509if_OBJECT_IDENTIFIER(FALSE, tvb, offset, actx, tree, hf_x509if_item);
1139 static int dissect_nameForm(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1140 return dissect_x509if_OBJECT_IDENTIFIER(FALSE, tvb, offset, actx, tree, hf_x509if_nameForm);
1142 static int dissect_structuralObjectClass(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1143 return dissect_x509if_OBJECT_IDENTIFIER(FALSE, tvb, offset, actx, tree, hf_x509if_structuralObjectClass);
1145 static int dissect_auxiliaries_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1146 return dissect_x509if_OBJECT_IDENTIFIER(FALSE, tvb, offset, actx, tree, hf_x509if_auxiliaries_item);
1148 static int dissect_mandatoryContexts_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1149 return dissect_x509if_OBJECT_IDENTIFIER(FALSE, tvb, offset, actx, tree, hf_x509if_mandatoryContexts_item);
1151 static int dissect_optionalContexts_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1152 return dissect_x509if_OBJECT_IDENTIFIER(FALSE, tvb, offset, actx, tree, hf_x509if_optionalContexts_item);
1154 static int dissect_dmdId(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1155 return dissect_x509if_OBJECT_IDENTIFIER(FALSE, tvb, offset, actx, tree, hf_x509if_dmdId);
1157 static int dissect_serviceType(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1158 return dissect_x509if_OBJECT_IDENTIFIER(FALSE, tvb, offset, actx, tree, hf_x509if_serviceType);
1160 static int dissect_context(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1161 return dissect_x509if_OBJECT_IDENTIFIER(FALSE, tvb, offset, actx, tree, hf_x509if_context);
1163 static int dissect_mappingFunction(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1164 return dissect_x509if_OBJECT_IDENTIFIER(FALSE, tvb, offset, actx, tree, hf_x509if_mappingFunction);
1166 static int dissect_oldMatchingRule(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1167 return dissect_x509if_OBJECT_IDENTIFIER(FALSE, tvb, offset, actx, tree, hf_x509if_oldMatchingRule);
1169 static int dissect_newMatchingRule(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1170 return dissect_x509if_OBJECT_IDENTIFIER(FALSE, tvb, offset, actx, tree, hf_x509if_newMatchingRule);
1174 static const ber_old_sequence_t SET_OF_Refinement_set_of[1] = {
1175 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_refinement_and_item },
1179 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_) {
1180 offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset,
1181 SET_OF_Refinement_set_of, hf_index, ett_x509if_SET_OF_Refinement);
1185 static int dissect_refinement_and(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1186 return dissect_x509if_SET_OF_Refinement(FALSE, tvb, offset, actx, tree, hf_x509if_refinement_and);
1188 static int dissect_refinement_or(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1189 return dissect_x509if_SET_OF_Refinement(FALSE, tvb, offset, actx, tree, hf_x509if_refinement_or);
1193 const value_string x509if_Refinement_vals[] = {
1201 static const ber_old_choice_t Refinement_choice[] = {
1202 { 0, BER_CLASS_CON, 0, 0, dissect_item },
1203 { 1, BER_CLASS_CON, 1, 0, dissect_refinement_and },
1204 { 2, BER_CLASS_CON, 2, 0, dissect_refinement_or },
1205 { 3, BER_CLASS_CON, 3, 0, dissect_refinement_not },
1206 { 0, 0, 0, 0, NULL }
1210 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_) {
1211 offset = dissect_ber_old_choice(actx, tree, tvb, offset,
1212 Refinement_choice, hf_index, ett_x509if_Refinement,
1219 static const ber_old_sequence_t SubtreeSpecification_sequence[] = {
1220 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_base },
1221 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_specificExclusions },
1222 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_minimum },
1223 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_maximum },
1224 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_specificationFilter },
1229 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_) {
1230 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1231 SubtreeSpecification_sequence, hf_index, ett_x509if_SubtreeSpecification);
1237 static const value_string x509if_T_chopSpecificExclusions_item_vals[] = {
1238 { 0, "chopBefore" },
1243 static const ber_old_choice_t T_chopSpecificExclusions_item_choice[] = {
1244 { 0, BER_CLASS_CON, 0, 0, dissect_chopBefore },
1245 { 1, BER_CLASS_CON, 1, 0, dissect_chopAfter },
1246 { 0, 0, 0, 0, NULL }
1250 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_) {
1251 offset = dissect_ber_old_choice(actx, tree, tvb, offset,
1252 T_chopSpecificExclusions_item_choice, hf_index, ett_x509if_T_chopSpecificExclusions_item,
1257 static int dissect_chopSpecificExclusions_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1258 return dissect_x509if_T_chopSpecificExclusions_item(FALSE, tvb, offset, actx, tree, hf_x509if_chopSpecificExclusions_item);
1262 static const ber_old_sequence_t T_chopSpecificExclusions_set_of[1] = {
1263 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_chopSpecificExclusions_item },
1267 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_) {
1268 offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset,
1269 T_chopSpecificExclusions_set_of, hf_index, ett_x509if_T_chopSpecificExclusions);
1273 static int dissect_chopSpecificExclusions(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1274 return dissect_x509if_T_chopSpecificExclusions(FALSE, tvb, offset, actx, tree, hf_x509if_chopSpecificExclusions);
1278 static const ber_old_sequence_t ChopSpecification_sequence[] = {
1279 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_chopSpecificExclusions },
1280 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_minimum },
1281 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_maximum },
1286 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_) {
1287 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1288 ChopSpecification_sequence, hf_index, ett_x509if_ChopSpecification);
1294 static const value_string x509if_ObjectClassKind_vals[] = {
1296 { 1, "structural" },
1303 dissect_x509if_ObjectClassKind(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1304 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1311 const value_string x509if_AttributeUsage_vals[] = {
1312 { 0, "userApplications" },
1313 { 1, "directoryOperation" },
1314 { 2, "distributedOperation" },
1315 { 3, "dSAOperation" },
1321 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_) {
1322 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1331 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_) {
1332 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1337 static int dissect_ruleIdentifier(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1338 return dissect_x509if_RuleIdentifier(FALSE, tvb, offset, actx, tree, hf_x509if_ruleIdentifier);
1340 static int dissect_superiorStructureRules_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1341 return dissect_x509if_RuleIdentifier(FALSE, tvb, offset, actx, tree, hf_x509if_superiorStructureRules_item);
1345 static const ber_old_sequence_t SET_OF_RuleIdentifier_set_of[1] = {
1346 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_superiorStructureRules_item },
1350 dissect_x509if_SET_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_) {
1351 offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset,
1352 SET_OF_RuleIdentifier_set_of, hf_index, ett_x509if_SET_OF_RuleIdentifier);
1356 static int dissect_superiorStructureRules(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1357 return dissect_x509if_SET_OF_RuleIdentifier(FALSE, tvb, offset, actx, tree, hf_x509if_superiorStructureRules);
1361 static const ber_old_sequence_t DITStructureRule_sequence[] = {
1362 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_ruleIdentifier },
1363 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_nameForm },
1364 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_superiorStructureRules },
1369 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_) {
1370 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1371 DITStructureRule_sequence, hf_index, ett_x509if_DITStructureRule);
1377 static const ber_old_sequence_t T_auxiliaries_set_of[1] = {
1378 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_auxiliaries_item },
1382 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_) {
1383 offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset,
1384 T_auxiliaries_set_of, hf_index, ett_x509if_T_auxiliaries);
1388 static int dissect_auxiliaries(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1389 return dissect_x509if_T_auxiliaries(FALSE, tvb, offset, actx, tree, hf_x509if_auxiliaries);
1393 static const ber_old_sequence_t SET_SIZE_1_MAX_OF_AttributeId_set_of[1] = {
1394 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_mandatory_item },
1398 dissect_x509if_SET_SIZE_1_MAX_OF_AttributeId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1399 offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset,
1400 SET_SIZE_1_MAX_OF_AttributeId_set_of, hf_index, ett_x509if_SET_SIZE_1_MAX_OF_AttributeId);
1404 static int dissect_mandatory(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1405 return dissect_x509if_SET_SIZE_1_MAX_OF_AttributeId(FALSE, tvb, offset, actx, tree, hf_x509if_mandatory);
1407 static int dissect_optional(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1408 return dissect_x509if_SET_SIZE_1_MAX_OF_AttributeId(FALSE, tvb, offset, actx, tree, hf_x509if_optional);
1410 static int dissect_precluded(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1411 return dissect_x509if_SET_SIZE_1_MAX_OF_AttributeId(FALSE, tvb, offset, actx, tree, hf_x509if_precluded);
1415 static const ber_old_sequence_t DITContentRule_sequence[] = {
1416 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_structuralObjectClass },
1417 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_auxiliaries },
1418 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_mandatory },
1419 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_optional },
1420 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_precluded },
1425 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_) {
1426 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1427 DITContentRule_sequence, hf_index, ett_x509if_DITContentRule);
1433 static const ber_old_sequence_t T_mandatoryContexts_set_of[1] = {
1434 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_mandatoryContexts_item },
1438 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_) {
1439 offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset,
1440 T_mandatoryContexts_set_of, hf_index, ett_x509if_T_mandatoryContexts);
1444 static int dissect_mandatoryContexts(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1445 return dissect_x509if_T_mandatoryContexts(FALSE, tvb, offset, actx, tree, hf_x509if_mandatoryContexts);
1449 static const ber_old_sequence_t T_optionalContexts_set_of[1] = {
1450 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_optionalContexts_item },
1454 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_) {
1455 offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset,
1456 T_optionalContexts_set_of, hf_index, ett_x509if_T_optionalContexts);
1460 static int dissect_optionalContexts(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1461 return dissect_x509if_T_optionalContexts(FALSE, tvb, offset, actx, tree, hf_x509if_optionalContexts);
1465 static const ber_old_sequence_t DITContextUse_sequence[] = {
1466 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_attributeType },
1467 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_mandatoryContexts },
1468 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_optionalContexts },
1473 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_) {
1474 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1475 DITContextUse_sequence, hf_index, ett_x509if_DITContextUse);
1483 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_) {
1484 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1489 static int dissect_id(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1490 return dissect_x509if_INTEGER(FALSE, tvb, offset, actx, tree, hf_x509if_id);
1492 static int dissect_userClass(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1493 return dissect_x509if_INTEGER(FALSE, tvb, offset, actx, tree, hf_x509if_userClass);
1495 static int dissect_default(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1496 return dissect_x509if_INTEGER(FALSE, tvb, offset, actx, tree, hf_x509if_default);
1498 static int dissect_max(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1499 return dissect_x509if_INTEGER(FALSE, tvb, offset, actx, tree, hf_x509if_max);
1501 static int dissect_maximum_relaxation(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1502 return dissect_x509if_INTEGER(FALSE, tvb, offset, actx, tree, hf_x509if_maximum_relaxation);
1504 static int dissect_minimum_relaxation(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1505 return dissect_x509if_INTEGER(FALSE, tvb, offset, actx, tree, hf_x509if_minimum_relaxation);
1507 static int dissect_level(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1508 return dissect_x509if_INTEGER(FALSE, tvb, offset, actx, tree, hf_x509if_level);
1514 dissect_x509if_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_) {
1515 #line 210 "x509if.cnf"
1516 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
1522 static int dissect_ra_selectedValues_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1523 return dissect_x509if_SelectedValues(FALSE, tvb, offset, actx, tree, hf_x509if_ra_selectedValues_item);
1527 static const ber_old_sequence_t SEQUENCE_OF_SelectedValues_sequence_of[1] = {
1528 { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_ra_selectedValues_item },
1532 dissect_x509if_SEQUENCE_OF_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_) {
1533 offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset,
1534 SEQUENCE_OF_SelectedValues_sequence_of, hf_index, ett_x509if_SEQUENCE_OF_SelectedValues);
1538 static int dissect_ra_selectedValues(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1539 return dissect_x509if_SEQUENCE_OF_SelectedValues(FALSE, tvb, offset, actx, tree, hf_x509if_ra_selectedValues);
1545 dissect_x509if_DefaultValueType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1546 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
1550 static int dissect_entryType(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1551 return dissect_x509if_DefaultValueType(FALSE, tvb, offset, actx, tree, hf_x509if_entryType);
1557 dissect_x509if_DefaultValueValues(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1558 #line 216 "x509if.cnf"
1559 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
1565 static int dissect_ra_values_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1566 return dissect_x509if_DefaultValueValues(FALSE, tvb, offset, actx, tree, hf_x509if_ra_values_item);
1570 static const ber_old_sequence_t SEQUENCE_OF_DefaultValueValues_sequence_of[1] = {
1571 { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_ra_values_item },
1575 dissect_x509if_SEQUENCE_OF_DefaultValueValues(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1576 offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset,
1577 SEQUENCE_OF_DefaultValueValues_sequence_of, hf_index, ett_x509if_SEQUENCE_OF_DefaultValueValues);
1581 static int dissect_ra_values(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1582 return dissect_x509if_SEQUENCE_OF_DefaultValueValues(FALSE, tvb, offset, actx, tree, hf_x509if_ra_values);
1586 static const ber_old_sequence_t T_defaultValues_item_sequence[] = {
1587 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_entryType },
1588 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ra_values },
1593 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_) {
1594 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1595 T_defaultValues_item_sequence, hf_index, ett_x509if_T_defaultValues_item);
1599 static int dissect_defaultValues_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1600 return dissect_x509if_T_defaultValues_item(FALSE, tvb, offset, actx, tree, hf_x509if_defaultValues_item);
1604 static const ber_old_sequence_t T_defaultValues_sequence_of[1] = {
1605 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_defaultValues_item },
1609 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_) {
1610 offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset,
1611 T_defaultValues_sequence_of, hf_index, ett_x509if_T_defaultValues);
1615 static int dissect_defaultValues(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1616 return dissect_x509if_T_defaultValues(FALSE, tvb, offset, actx, tree, hf_x509if_defaultValues);
1620 static const ber_old_sequence_t SEQUENCE_OF_AttributeValue_sequence_of[1] = {
1621 { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_contextValue_item },
1625 dissect_x509if_SEQUENCE_OF_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_) {
1626 offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset,
1627 SEQUENCE_OF_AttributeValue_sequence_of, hf_index, ett_x509if_SEQUENCE_OF_AttributeValue);
1631 static int dissect_contextValue(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1632 return dissect_x509if_SEQUENCE_OF_AttributeValue(FALSE, tvb, offset, actx, tree, hf_x509if_contextValue);
1634 static int dissect_selectedValues(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1635 return dissect_x509if_SEQUENCE_OF_AttributeValue(FALSE, tvb, offset, actx, tree, hf_x509if_selectedValues);
1639 static const ber_old_sequence_t ContextProfile_sequence[] = {
1640 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_contextType },
1641 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_contextValue },
1646 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_) {
1647 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1648 ContextProfile_sequence, hf_index, ett_x509if_ContextProfile);
1652 static int dissect_contexts_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1653 return dissect_x509if_ContextProfile(FALSE, tvb, offset, actx, tree, hf_x509if_contexts_item);
1657 static const ber_old_sequence_t SEQUENCE_OF_ContextProfile_sequence_of[1] = {
1658 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_contexts_item },
1662 dissect_x509if_SEQUENCE_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_) {
1663 offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset,
1664 SEQUENCE_OF_ContextProfile_sequence_of, hf_index, ett_x509if_SEQUENCE_OF_ContextProfile);
1668 static int dissect_contexts(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1669 return dissect_x509if_SEQUENCE_OF_ContextProfile(FALSE, tvb, offset, actx, tree, hf_x509if_contexts);
1673 static const ber_old_sequence_t SEQUENCE_OF_ContextCombination_sequence_of[1] = {
1674 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_contextcombination_and_item },
1678 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_) {
1679 offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset,
1680 SEQUENCE_OF_ContextCombination_sequence_of, hf_index, ett_x509if_SEQUENCE_OF_ContextCombination);
1684 static int dissect_contextcombination_and(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1685 return dissect_x509if_SEQUENCE_OF_ContextCombination(FALSE, tvb, offset, actx, tree, hf_x509if_contextcombination_and);
1687 static int dissect_contextcombination_or(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1688 return dissect_x509if_SEQUENCE_OF_ContextCombination(FALSE, tvb, offset, actx, tree, hf_x509if_contextcombination_or);
1692 const value_string x509if_ContextCombination_vals[] = {
1700 static const ber_old_choice_t ContextCombination_choice[] = {
1701 { 0, BER_CLASS_CON, 0, 0, dissect_context },
1702 { 1, BER_CLASS_CON, 1, 0, dissect_contextcombination_and },
1703 { 2, BER_CLASS_CON, 2, 0, dissect_contextcombination_or },
1704 { 3, BER_CLASS_CON, 3, 0, dissect_contextcombination_not },
1705 { 0, 0, 0, 0, NULL }
1709 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_) {
1710 offset = dissect_ber_old_choice(actx, tree, tvb, offset,
1711 ContextCombination_choice, hf_index, ett_x509if_ContextCombination,
1718 static const ber_old_sequence_t MatchingUse_sequence[] = {
1719 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_restrictionType },
1720 { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_restrictionValue },
1725 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_) {
1726 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1727 MatchingUse_sequence, hf_index, ett_x509if_MatchingUse);
1731 static int dissect_matchingUse_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1732 return dissect_x509if_MatchingUse(FALSE, tvb, offset, actx, tree, hf_x509if_matchingUse_item);
1736 static const ber_old_sequence_t SEQUENCE_OF_MatchingUse_sequence_of[1] = {
1737 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_matchingUse_item },
1741 dissect_x509if_SEQUENCE_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_) {
1742 offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset,
1743 SEQUENCE_OF_MatchingUse_sequence_of, hf_index, ett_x509if_SEQUENCE_OF_MatchingUse);
1747 static int dissect_matchingUse(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1748 return dissect_x509if_SEQUENCE_OF_MatchingUse(FALSE, tvb, offset, actx, tree, hf_x509if_matchingUse);
1752 static const ber_old_sequence_t RequestAttribute_sequence[] = {
1753 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_attributeType },
1754 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_includeSubtypes },
1755 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_ra_selectedValues },
1756 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_defaultValues },
1757 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_contexts },
1758 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_contextCombination },
1759 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_matchingUse },
1764 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_) {
1765 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1766 RequestAttribute_sequence, hf_index, ett_x509if_RequestAttribute);
1770 static int dissect_inputAttributeTypes_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1771 return dissect_x509if_RequestAttribute(FALSE, tvb, offset, actx, tree, hf_x509if_inputAttributeTypes_item);
1775 static const ber_old_sequence_t SEQUENCE_OF_RequestAttribute_sequence_of[1] = {
1776 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_inputAttributeTypes_item },
1780 dissect_x509if_SEQUENCE_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_) {
1781 offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset,
1782 SEQUENCE_OF_RequestAttribute_sequence_of, hf_index, ett_x509if_SEQUENCE_OF_RequestAttribute);
1786 static int dissect_inputAttributeTypes(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1787 return dissect_x509if_SEQUENCE_OF_RequestAttribute(FALSE, tvb, offset, actx, tree, hf_x509if_inputAttributeTypes);
1791 static const ber_old_sequence_t SEQUENCE_OF_AttributeCombination_sequence_of[1] = {
1792 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_and_item },
1796 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_) {
1797 offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset,
1798 SEQUENCE_OF_AttributeCombination_sequence_of, hf_index, ett_x509if_SEQUENCE_OF_AttributeCombination);
1802 static int dissect_and(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1803 return dissect_x509if_SEQUENCE_OF_AttributeCombination(FALSE, tvb, offset, actx, tree, hf_x509if_and);
1805 static int dissect_or(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1806 return dissect_x509if_SEQUENCE_OF_AttributeCombination(FALSE, tvb, offset, actx, tree, hf_x509if_or);
1810 const value_string x509if_AttributeCombination_vals[] = {
1818 static const ber_old_choice_t AttributeCombination_choice[] = {
1819 { 0, BER_CLASS_CON, 0, 0, dissect_attribute },
1820 { 1, BER_CLASS_CON, 1, 0, dissect_and },
1821 { 2, BER_CLASS_CON, 2, 0, dissect_or },
1822 { 3, BER_CLASS_CON, 3, 0, dissect_not },
1823 { 0, 0, 0, 0, NULL }
1827 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_) {
1828 offset = dissect_ber_old_choice(actx, tree, tvb, offset,
1829 AttributeCombination_choice, hf_index, ett_x509if_AttributeCombination,
1836 static const value_string x509if_T_outputValues_vals[] = {
1837 { 0, "selectedValues" },
1838 { 1, "matchedValuesOnly" },
1842 static const ber_old_choice_t T_outputValues_choice[] = {
1843 { 0, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_selectedValues },
1844 { 1, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_matchedValuesOnly },
1845 { 0, 0, 0, 0, NULL }
1849 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_) {
1850 offset = dissect_ber_old_choice(actx, tree, tvb, offset,
1851 T_outputValues_choice, hf_index, ett_x509if_T_outputValues,
1856 static int dissect_outputValues(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1857 return dissect_x509if_T_outputValues(FALSE, tvb, offset, actx, tree, hf_x509if_outputValues);
1861 static const ber_old_sequence_t ResultAttribute_sequence[] = {
1862 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_attributeType },
1863 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_outputValues },
1864 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_contexts },
1869 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_) {
1870 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1871 ResultAttribute_sequence, hf_index, ett_x509if_ResultAttribute);
1875 static int dissect_outputAttributeTypes_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1876 return dissect_x509if_ResultAttribute(FALSE, tvb, offset, actx, tree, hf_x509if_outputAttributeTypes_item);
1880 static const ber_old_sequence_t SEQUENCE_OF_ResultAttribute_sequence_of[1] = {
1881 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_outputAttributeTypes_item },
1885 dissect_x509if_SEQUENCE_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_) {
1886 offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset,
1887 SEQUENCE_OF_ResultAttribute_sequence_of, hf_index, ett_x509if_SEQUENCE_OF_ResultAttribute);
1891 static int dissect_outputAttributeTypes(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1892 return dissect_x509if_SEQUENCE_OF_ResultAttribute(FALSE, tvb, offset, actx, tree, hf_x509if_outputAttributeTypes);
1896 static const ber_old_sequence_t ControlOptions_sequence[] = {
1901 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_) {
1902 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1903 ControlOptions_sequence, hf_index, ett_x509if_ControlOptions);
1907 static int dissect_defaultControls(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1908 return dissect_x509if_ControlOptions(FALSE, tvb, offset, actx, tree, hf_x509if_defaultControls);
1910 static int dissect_mandatoryControls(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1911 return dissect_x509if_ControlOptions(FALSE, tvb, offset, actx, tree, hf_x509if_mandatoryControls);
1913 static int dissect_searchRuleControls(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1914 return dissect_x509if_ControlOptions(FALSE, tvb, offset, actx, tree, hf_x509if_searchRuleControls);
1918 static const ber_old_sequence_t Mapping_sequence[] = {
1919 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_mappingFunction },
1920 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_level },
1925 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_) {
1926 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1927 Mapping_sequence, hf_index, ett_x509if_Mapping);
1931 static int dissect_mapping_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1932 return dissect_x509if_Mapping(FALSE, tvb, offset, actx, tree, hf_x509if_mapping_item);
1936 static const ber_old_sequence_t SEQUENCE_OF_Mapping_sequence_of[1] = {
1937 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mapping_item },
1941 dissect_x509if_SEQUENCE_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_) {
1942 offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset,
1943 SEQUENCE_OF_Mapping_sequence_of, hf_index, ett_x509if_SEQUENCE_OF_Mapping);
1947 static int dissect_mapping(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1948 return dissect_x509if_SEQUENCE_OF_Mapping(FALSE, tvb, offset, actx, tree, hf_x509if_mapping);
1952 static const ber_old_sequence_t MRSubstitution_sequence[] = {
1953 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_attribute },
1954 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_oldMatchingRule },
1955 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_newMatchingRule },
1960 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_) {
1961 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1962 MRSubstitution_sequence, hf_index, ett_x509if_MRSubstitution);
1966 static int dissect_substitution_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1967 return dissect_x509if_MRSubstitution(FALSE, tvb, offset, actx, tree, hf_x509if_substitution_item);
1971 static const ber_old_sequence_t SEQUENCE_OF_MRSubstitution_sequence_of[1] = {
1972 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_substitution_item },
1976 dissect_x509if_SEQUENCE_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_) {
1977 offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset,
1978 SEQUENCE_OF_MRSubstitution_sequence_of, hf_index, ett_x509if_SEQUENCE_OF_MRSubstitution);
1982 static int dissect_substitution(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1983 return dissect_x509if_SEQUENCE_OF_MRSubstitution(FALSE, tvb, offset, actx, tree, hf_x509if_substitution);
1987 static const ber_old_sequence_t MRMapping_sequence[] = {
1988 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_mapping },
1989 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_substitution },
1994 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_) {
1995 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1996 MRMapping_sequence, hf_index, ett_x509if_MRMapping);
2000 static int dissect_basic(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2001 return dissect_x509if_MRMapping(FALSE, tvb, offset, actx, tree, hf_x509if_basic);
2003 static int dissect_tightenings_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2004 return dissect_x509if_MRMapping(FALSE, tvb, offset, actx, tree, hf_x509if_tightenings_item);
2006 static int dissect_relaxations_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2007 return dissect_x509if_MRMapping(FALSE, tvb, offset, actx, tree, hf_x509if_relaxations_item);
2011 static const ber_old_sequence_t SEQUENCE_OF_MRMapping_sequence_of[1] = {
2012 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_tightenings_item },
2016 dissect_x509if_SEQUENCE_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_) {
2017 offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset,
2018 SEQUENCE_OF_MRMapping_sequence_of, hf_index, ett_x509if_SEQUENCE_OF_MRMapping);
2022 static int dissect_tightenings(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2023 return dissect_x509if_SEQUENCE_OF_MRMapping(FALSE, tvb, offset, actx, tree, hf_x509if_tightenings);
2025 static int dissect_relaxations(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2026 return dissect_x509if_SEQUENCE_OF_MRMapping(FALSE, tvb, offset, actx, tree, hf_x509if_relaxations);
2030 static const ber_old_sequence_t RelaxationPolicy_sequence[] = {
2031 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_basic },
2032 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_tightenings },
2033 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_relaxations },
2034 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_maximum_relaxation },
2035 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_minimum_relaxation },
2040 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_) {
2041 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
2042 RelaxationPolicy_sequence, hf_index, ett_x509if_RelaxationPolicy);
2046 static int dissect_relaxation(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2047 return dissect_x509if_RelaxationPolicy(FALSE, tvb, offset, actx, tree, hf_x509if_relaxation);
2051 static const ber_old_sequence_t SEQUENCE_OF_AttributeType_sequence_of[1] = {
2052 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_additionalControl_item },
2056 dissect_x509if_SEQUENCE_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_) {
2057 offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset,
2058 SEQUENCE_OF_AttributeType_sequence_of, hf_index, ett_x509if_SEQUENCE_OF_AttributeType);
2062 static int dissect_additionalControl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2063 return dissect_x509if_SEQUENCE_OF_AttributeType(FALSE, tvb, offset, actx, tree, hf_x509if_additionalControl);
2067 static const asn_namedbit AllowedSubset_bits[] = {
2068 { 0, &hf_x509if_AllowedSubset_baseObject, -1, -1, "baseObject", NULL },
2069 { 1, &hf_x509if_AllowedSubset_oneLevel, -1, -1, "oneLevel", NULL },
2070 { 2, &hf_x509if_AllowedSubset_wholeSubtree, -1, -1, "wholeSubtree", NULL },
2071 { 0, NULL, 0, 0, NULL, NULL }
2075 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_) {
2076 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
2077 AllowedSubset_bits, hf_index, ett_x509if_AllowedSubset,
2082 static int dissect_allowedSubset(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2083 return dissect_x509if_AllowedSubset(FALSE, tvb, offset, actx, tree, hf_x509if_allowedSubset);
2087 const value_string x509if_ImposedSubset_vals[] = {
2088 { 0, "baseObject" },
2090 { 2, "wholeSubtree" },
2096 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_) {
2097 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2102 static int dissect_imposedSubset(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2103 return dissect_x509if_ImposedSubset(FALSE, tvb, offset, actx, tree, hf_x509if_imposedSubset);
2107 static const ber_old_sequence_t EntryLimit_sequence[] = {
2108 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_default },
2109 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_max },
2114 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_) {
2115 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
2116 EntryLimit_sequence, hf_index, ett_x509if_EntryLimit);
2120 static int dissect_entryLimit(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2121 return dissect_x509if_EntryLimit(FALSE, tvb, offset, actx, tree, hf_x509if_entryLimit);
2125 static const ber_old_sequence_t SET_OF_DirectoryString_set_of[1] = {
2126 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_name_item },
2130 dissect_x509if_SET_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_) {
2131 offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset,
2132 SET_OF_DirectoryString_set_of, hf_index, ett_x509if_SET_OF_DirectoryString);
2136 static int dissect_name(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2137 return dissect_x509if_SET_OF_DirectoryString(FALSE, tvb, offset, actx, tree, hf_x509if_name);
2141 static const ber_old_sequence_t SearchRuleDescription_sequence[] = {
2142 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_id },
2143 { BER_CLASS_CON, 0, 0, dissect_dmdId },
2144 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_serviceType },
2145 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_userClass },
2146 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_inputAttributeTypes },
2147 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_attributeCombination },
2148 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_outputAttributeTypes },
2149 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_defaultControls },
2150 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_mandatoryControls },
2151 { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_searchRuleControls },
2152 { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL, dissect_relaxation },
2153 { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL, dissect_additionalControl },
2154 { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL, dissect_allowedSubset },
2155 { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL, dissect_imposedSubset },
2156 { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL, dissect_entryLimit },
2157 { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_name },
2158 { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_description },
2159 { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_obsolete },
2164 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_) {
2165 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
2166 SearchRuleDescription_sequence, hf_index, ett_x509if_SearchRuleDescription);
2172 static const ber_old_sequence_t SearchRule_sequence[] = {
2173 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_id },
2174 { BER_CLASS_CON, 0, 0, dissect_dmdId },
2175 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_serviceType },
2176 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_userClass },
2177 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_inputAttributeTypes },
2178 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_attributeCombination },
2179 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_outputAttributeTypes },
2180 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_defaultControls },
2181 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_mandatoryControls },
2182 { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_searchRuleControls },
2183 { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL, dissect_relaxation },
2184 { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL, dissect_additionalControl },
2185 { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL, dissect_allowedSubset },
2186 { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL, dissect_imposedSubset },
2187 { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL, dissect_entryLimit },
2192 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_) {
2193 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
2194 SearchRule_sequence, hf_index, ett_x509if_SearchRule);
2200 static const ber_old_sequence_t SearchRuleId_sequence[] = {
2201 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_id },
2202 { BER_CLASS_CON, 0, 0, dissect_dmdId },
2207 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_) {
2208 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
2209 SearchRuleId_sequence, hf_index, ett_x509if_SearchRuleId);
2215 const value_string x509if_OutputValues_vals[] = {
2216 { 0, "selectedValues" },
2217 { 1, "matchedValuesOnly" },
2221 static const ber_old_choice_t OutputValues_choice[] = {
2222 { 0, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_selectedValues },
2223 { 1, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_matchedValuesOnly },
2224 { 0, 0, 0, 0, NULL }
2228 dissect_x509if_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_) {
2229 offset = dissect_ber_old_choice(actx, tree, tvb, offset,
2230 OutputValues_choice, hf_index, ett_x509if_OutputValues,
2238 static void dissect_Name_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2239 asn1_ctx_t asn1_ctx;
2240 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2241 dissect_x509if_Name(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509if_Name_PDU);
2243 static void dissect_DistinguishedName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2244 asn1_ctx_t asn1_ctx;
2245 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2246 dissect_x509if_DistinguishedName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509if_DistinguishedName_PDU);
2250 /*--- End of included file: packet-x509if-fn.c ---*/
2251 #line 79 "packet-x509if-template.c"
2253 const char * x509if_get_last_dn(void)
2258 gboolean x509if_register_fmt(int hf_index, const gchar *fmt)
2262 if(idx < (MAX_FMT_VALS - 1)) {
2264 fmt_vals[idx].value = hf_index;
2265 fmt_vals[idx].strptr = fmt;
2269 fmt_vals[idx].value = 0;
2270 fmt_vals[idx].strptr = NULL;
2275 return FALSE; /* couldn't register it */
2279 const char * x509if_get_last_ava(void)
2284 /*--- proto_register_x509if ----------------------------------------------*/
2285 void proto_register_x509if(void) {
2287 /* List of fields */
2288 static hf_register_info hf[] = {
2289 { &hf_x509if_object_identifier_id,
2290 { "Id", "x509if.id", FT_OID, BASE_NONE, NULL, 0,
2291 "Object identifier Id", HFILL }},
2292 { &hf_x509if_any_string,
2293 { "AnyString", "x509if.any.String", FT_BYTES, BASE_HEX,
2294 NULL, 0, "This is any String", HFILL }},
2297 /*--- Included file: packet-x509if-hfarr.c ---*/
2298 #line 1 "packet-x509if-hfarr.c"
2299 { &hf_x509if_Name_PDU,
2300 { "Name", "x509if.Name",
2301 FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
2302 "x509if.Name", HFILL }},
2303 { &hf_x509if_DistinguishedName_PDU,
2304 { "DistinguishedName", "x509if.DistinguishedName",
2305 FT_UINT32, BASE_DEC, NULL, 0,
2306 "x509if.DistinguishedName", HFILL }},
2308 { "type", "x509if.type",
2309 FT_OID, BASE_NONE, NULL, 0,
2310 "x509if.AttributeId", HFILL }},
2311 { &hf_x509if_values,
2312 { "values", "x509if.values",
2313 FT_UINT32, BASE_DEC, NULL, 0,
2314 "x509if.SET_OF_AttributeValue", HFILL }},
2315 { &hf_x509if_values_item,
2316 { "Item", "x509if.values_item",
2317 FT_NONE, BASE_NONE, NULL, 0,
2318 "x509if.AttributeValue", HFILL }},
2319 { &hf_x509if_valuesWithContext,
2320 { "valuesWithContext", "x509if.valuesWithContext",
2321 FT_UINT32, BASE_DEC, NULL, 0,
2322 "x509if.T_valuesWithContext", HFILL }},
2323 { &hf_x509if_valuesWithContext_item,
2324 { "Item", "x509if.valuesWithContext_item",
2325 FT_NONE, BASE_NONE, NULL, 0,
2326 "x509if.T_valuesWithContext_item", HFILL }},
2328 { "value", "x509if.value",
2329 FT_NONE, BASE_NONE, NULL, 0,
2330 "x509if.ValuesWithContextValue", HFILL }},
2331 { &hf_x509if_contextList,
2332 { "contextList", "x509if.contextList",
2333 FT_UINT32, BASE_DEC, NULL, 0,
2334 "x509if.SET_OF_Context", HFILL }},
2335 { &hf_x509if_contextList_item,
2336 { "Item", "x509if.contextList_item",
2337 FT_NONE, BASE_NONE, NULL, 0,
2338 "x509if.Context", HFILL }},
2339 { &hf_x509if_contextType,
2340 { "contextType", "x509if.contextType",
2341 FT_OID, BASE_NONE, NULL, 0,
2342 "x509if.AttributeId", HFILL }},
2343 { &hf_x509if_contextValues,
2344 { "contextValues", "x509if.contextValues",
2345 FT_UINT32, BASE_DEC, NULL, 0,
2346 "x509if.SET_OF_AttributeValue", HFILL }},
2347 { &hf_x509if_contextValues_item,
2348 { "Item", "x509if.contextValues_item",
2349 FT_NONE, BASE_NONE, NULL, 0,
2350 "x509if.AttributeValue", HFILL }},
2351 { &hf_x509if_fallback,
2352 { "fallback", "x509if.fallback",
2353 FT_BOOLEAN, 8, NULL, 0,
2354 "x509if.BOOLEAN", HFILL }},
2355 { &hf_x509if_assertion,
2356 { "assertion", "x509if.assertion",
2357 FT_NONE, BASE_NONE, NULL, 0,
2358 "x509if.AttributeValue", HFILL }},
2359 { &hf_x509if_assertedContexts,
2360 { "assertedContexts", "x509if.assertedContexts",
2361 FT_UINT32, BASE_DEC, VALS(x509if_T_assertedContexts_vals), 0,
2362 "x509if.T_assertedContexts", HFILL }},
2363 { &hf_x509if_allContexts,
2364 { "allContexts", "x509if.allContexts",
2365 FT_NONE, BASE_NONE, NULL, 0,
2366 "x509if.NULL", HFILL }},
2367 { &hf_x509if_selectedContexts,
2368 { "selectedContexts", "x509if.selectedContexts",
2369 FT_UINT32, BASE_DEC, NULL, 0,
2370 "x509if.SET_OF_ContextAssertion", HFILL }},
2371 { &hf_x509if_selectedContexts_item,
2372 { "Item", "x509if.selectedContexts_item",
2373 FT_NONE, BASE_NONE, NULL, 0,
2374 "x509if.ContextAssertion", HFILL }},
2375 { &hf_x509if_ca_contextType,
2376 { "contextType", "x509if.contextType",
2377 FT_OID, BASE_NONE, NULL, 0,
2378 "x509if.ContextId", HFILL }},
2379 { &hf_x509if_ca_contextValues,
2380 { "contextValues", "x509if.contextValues",
2381 FT_UINT32, BASE_DEC, NULL, 0,
2382 "x509if.SET_OF_ContextValue", HFILL }},
2383 { &hf_x509if_ca_contextValues_item,
2384 { "Item", "x509if.contextValues_item",
2385 FT_NONE, BASE_NONE, NULL, 0,
2386 "x509if.ContextValue", HFILL }},
2387 { &hf_x509if_ata_assertedContexts,
2388 { "assertedContexts", "x509if.assertedContexts",
2389 FT_UINT32, BASE_DEC, NULL, 0,
2390 "x509if.SEQUENCE_OF_ContextAssertion", HFILL }},
2391 { &hf_x509if_ata_assertedContexts_item,
2392 { "Item", "x509if.assertedContexts_item",
2393 FT_NONE, BASE_NONE, NULL, 0,
2394 "x509if.ContextAssertion", HFILL }},
2395 { &hf_x509if_rdnSequence,
2396 { "rdnSequence", "x509if.rdnSequence",
2397 FT_UINT32, BASE_DEC, NULL, 0,
2398 "x509if.RDNSequence", HFILL }},
2399 { &hf_x509if_RDNSequence_item,
2400 { "Item", "x509if.RDNSequence_item",
2401 FT_UINT32, BASE_DEC, NULL, 0,
2402 "x509if.RDNSequence_item", HFILL }},
2403 { &hf_x509if_RelativeDistinguishedName_item,
2404 { "Item", "x509if.RelativeDistinguishedName_item",
2405 FT_NONE, BASE_NONE, NULL, 0,
2406 "x509if.RelativeDistinguishedName_item", HFILL }},
2407 { &hf_x509if_atadv_value,
2408 { "value", "x509if.value",
2409 FT_NONE, BASE_NONE, NULL, 0,
2410 "x509if.AttributeValue", HFILL }},
2411 { &hf_x509if_primaryDistinguished,
2412 { "primaryDistinguished", "x509if.primaryDistinguished",
2413 FT_BOOLEAN, 8, NULL, 0,
2414 "x509if.BOOLEAN", HFILL }},
2415 { &hf_x509if_valueswithContext,
2416 { "valuesWithContext", "x509if.valuesWithContext",
2417 FT_UINT32, BASE_DEC, NULL, 0,
2418 "x509if.T_valWithContext", HFILL }},
2419 { &hf_x509if_valueswithContext_item,
2420 { "Item", "x509if.valuesWithContext_item",
2421 FT_NONE, BASE_NONE, NULL, 0,
2422 "x509if.T_valWithContext_item", HFILL }},
2423 { &hf_x509if_distingAttrValue,
2424 { "distingAttrValue", "x509if.distingAttrValue",
2425 FT_NONE, BASE_NONE, NULL, 0,
2426 "x509if.ValuesWithContextValue", HFILL }},
2428 { "base", "x509if.base",
2429 FT_UINT32, BASE_DEC, NULL, 0,
2430 "x509if.LocalName", HFILL }},
2431 { &hf_x509if_specificExclusions,
2432 { "specificExclusions", "x509if.specificExclusions",
2433 FT_UINT32, BASE_DEC, NULL, 0,
2434 "x509if.T_specificExclusions", HFILL }},
2435 { &hf_x509if_specificExclusions_item,
2436 { "Item", "x509if.specificExclusions_item",
2437 FT_UINT32, BASE_DEC, VALS(x509if_T_specificExclusions_item_vals), 0,
2438 "x509if.T_specificExclusions_item", HFILL }},
2439 { &hf_x509if_chopBefore,
2440 { "chopBefore", "x509if.chopBefore",
2441 FT_UINT32, BASE_DEC, NULL, 0,
2442 "x509if.LocalName", HFILL }},
2443 { &hf_x509if_chopAfter,
2444 { "chopAfter", "x509if.chopAfter",
2445 FT_UINT32, BASE_DEC, NULL, 0,
2446 "x509if.LocalName", HFILL }},
2447 { &hf_x509if_minimum,
2448 { "minimum", "x509if.minimum",
2449 FT_INT32, BASE_DEC, NULL, 0,
2450 "x509if.BaseDistance", HFILL }},
2451 { &hf_x509if_maximum,
2452 { "maximum", "x509if.maximum",
2453 FT_INT32, BASE_DEC, NULL, 0,
2454 "x509if.BaseDistance", HFILL }},
2455 { &hf_x509if_specificationFilter,
2456 { "specificationFilter", "x509if.specificationFilter",
2457 FT_UINT32, BASE_DEC, VALS(x509if_Refinement_vals), 0,
2458 "x509if.Refinement", HFILL }},
2459 { &hf_x509if_chopSpecificExclusions,
2460 { "specificExclusions", "x509if.specificExclusions",
2461 FT_UINT32, BASE_DEC, NULL, 0,
2462 "x509if.T_chopSpecificExclusions", HFILL }},
2463 { &hf_x509if_chopSpecificExclusions_item,
2464 { "Item", "x509if.specificExclusions_item",
2465 FT_UINT32, BASE_DEC, VALS(x509if_T_chopSpecificExclusions_item_vals), 0,
2466 "x509if.T_chopSpecificExclusions_item", HFILL }},
2468 { "item", "x509if.item",
2469 FT_OID, BASE_NONE, NULL, 0,
2470 "x509if.OBJECT_IDENTIFIER", HFILL }},
2471 { &hf_x509if_refinement_and,
2472 { "and", "x509if.and",
2473 FT_UINT32, BASE_DEC, NULL, 0,
2474 "x509if.SET_OF_Refinement", HFILL }},
2475 { &hf_x509if_refinement_and_item,
2476 { "Item", "x509if.and_item",
2477 FT_UINT32, BASE_DEC, VALS(x509if_Refinement_vals), 0,
2478 "x509if.Refinement", HFILL }},
2479 { &hf_x509if_refinement_or,
2480 { "or", "x509if.or",
2481 FT_UINT32, BASE_DEC, NULL, 0,
2482 "x509if.SET_OF_Refinement", HFILL }},
2483 { &hf_x509if_refinement_or_item,
2484 { "Item", "x509if.or_item",
2485 FT_UINT32, BASE_DEC, VALS(x509if_Refinement_vals), 0,
2486 "x509if.Refinement", HFILL }},
2487 { &hf_x509if_refinement_not,
2488 { "not", "x509if.not",
2489 FT_UINT32, BASE_DEC, VALS(x509if_Refinement_vals), 0,
2490 "x509if.Refinement", HFILL }},
2491 { &hf_x509if_ruleIdentifier,
2492 { "ruleIdentifier", "x509if.ruleIdentifier",
2493 FT_INT32, BASE_DEC, NULL, 0,
2494 "x509if.RuleIdentifier", HFILL }},
2495 { &hf_x509if_nameForm,
2496 { "nameForm", "x509if.nameForm",
2497 FT_OID, BASE_NONE, NULL, 0,
2498 "x509if.OBJECT_IDENTIFIER", HFILL }},
2499 { &hf_x509if_superiorStructureRules,
2500 { "superiorStructureRules", "x509if.superiorStructureRules",
2501 FT_UINT32, BASE_DEC, NULL, 0,
2502 "x509if.SET_OF_RuleIdentifier", HFILL }},
2503 { &hf_x509if_superiorStructureRules_item,
2504 { "Item", "x509if.superiorStructureRules_item",
2505 FT_INT32, BASE_DEC, NULL, 0,
2506 "x509if.RuleIdentifier", HFILL }},
2507 { &hf_x509if_structuralObjectClass,
2508 { "structuralObjectClass", "x509if.structuralObjectClass",
2509 FT_OID, BASE_NONE, NULL, 0,
2510 "x509if.OBJECT_IDENTIFIER", HFILL }},
2511 { &hf_x509if_auxiliaries,
2512 { "auxiliaries", "x509if.auxiliaries",
2513 FT_UINT32, BASE_DEC, NULL, 0,
2514 "x509if.T_auxiliaries", HFILL }},
2515 { &hf_x509if_auxiliaries_item,
2516 { "Item", "x509if.auxiliaries_item",
2517 FT_OID, BASE_NONE, NULL, 0,
2518 "x509if.OBJECT_IDENTIFIER", HFILL }},
2519 { &hf_x509if_mandatory,
2520 { "mandatory", "x509if.mandatory",
2521 FT_UINT32, BASE_DEC, NULL, 0,
2522 "x509if.SET_SIZE_1_MAX_OF_AttributeId", HFILL }},
2523 { &hf_x509if_mandatory_item,
2524 { "Item", "x509if.mandatory_item",
2525 FT_OID, BASE_NONE, NULL, 0,
2526 "x509if.AttributeId", HFILL }},
2527 { &hf_x509if_optional,
2528 { "optional", "x509if.optional",
2529 FT_UINT32, BASE_DEC, NULL, 0,
2530 "x509if.SET_SIZE_1_MAX_OF_AttributeId", HFILL }},
2531 { &hf_x509if_optional_item,
2532 { "Item", "x509if.optional_item",
2533 FT_OID, BASE_NONE, NULL, 0,
2534 "x509if.AttributeId", HFILL }},
2535 { &hf_x509if_precluded,
2536 { "precluded", "x509if.precluded",
2537 FT_UINT32, BASE_DEC, NULL, 0,
2538 "x509if.SET_SIZE_1_MAX_OF_AttributeId", HFILL }},
2539 { &hf_x509if_precluded_item,
2540 { "Item", "x509if.precluded_item",
2541 FT_OID, BASE_NONE, NULL, 0,
2542 "x509if.AttributeId", HFILL }},
2543 { &hf_x509if_attributeType,
2544 { "attributeType", "x509if.attributeType",
2545 FT_OID, BASE_NONE, NULL, 0,
2546 "x509if.AttributeId", HFILL }},
2547 { &hf_x509if_mandatoryContexts,
2548 { "mandatoryContexts", "x509if.mandatoryContexts",
2549 FT_UINT32, BASE_DEC, NULL, 0,
2550 "x509if.T_mandatoryContexts", HFILL }},
2551 { &hf_x509if_mandatoryContexts_item,
2552 { "Item", "x509if.mandatoryContexts_item",
2553 FT_OID, BASE_NONE, NULL, 0,
2554 "x509if.OBJECT_IDENTIFIER", HFILL }},
2555 { &hf_x509if_optionalContexts,
2556 { "optionalContexts", "x509if.optionalContexts",
2557 FT_UINT32, BASE_DEC, NULL, 0,
2558 "x509if.T_optionalContexts", HFILL }},
2559 { &hf_x509if_optionalContexts_item,
2560 { "Item", "x509if.optionalContexts_item",
2561 FT_OID, BASE_NONE, NULL, 0,
2562 "x509if.OBJECT_IDENTIFIER", HFILL }},
2564 { "id", "x509if.id",
2565 FT_INT32, BASE_DEC, NULL, 0,
2566 "x509if.INTEGER", HFILL }},
2568 { "dmdId", "x509if.dmdId",
2569 FT_OID, BASE_NONE, NULL, 0,
2570 "x509if.OBJECT_IDENTIFIER", HFILL }},
2571 { &hf_x509if_serviceType,
2572 { "serviceType", "x509if.serviceType",
2573 FT_OID, BASE_NONE, NULL, 0,
2574 "x509if.OBJECT_IDENTIFIER", HFILL }},
2575 { &hf_x509if_userClass,
2576 { "userClass", "x509if.userClass",
2577 FT_INT32, BASE_DEC, NULL, 0,
2578 "x509if.INTEGER", HFILL }},
2579 { &hf_x509if_inputAttributeTypes,
2580 { "inputAttributeTypes", "x509if.inputAttributeTypes",
2581 FT_UINT32, BASE_DEC, NULL, 0,
2582 "x509if.SEQUENCE_OF_RequestAttribute", HFILL }},
2583 { &hf_x509if_inputAttributeTypes_item,
2584 { "Item", "x509if.inputAttributeTypes_item",
2585 FT_NONE, BASE_NONE, NULL, 0,
2586 "x509if.RequestAttribute", HFILL }},
2587 { &hf_x509if_attributeCombination,
2588 { "attributeCombination", "x509if.attributeCombination",
2589 FT_UINT32, BASE_DEC, VALS(x509if_AttributeCombination_vals), 0,
2590 "x509if.AttributeCombination", HFILL }},
2591 { &hf_x509if_outputAttributeTypes,
2592 { "outputAttributeTypes", "x509if.outputAttributeTypes",
2593 FT_UINT32, BASE_DEC, NULL, 0,
2594 "x509if.SEQUENCE_OF_ResultAttribute", HFILL }},
2595 { &hf_x509if_outputAttributeTypes_item,
2596 { "Item", "x509if.outputAttributeTypes_item",
2597 FT_NONE, BASE_NONE, NULL, 0,
2598 "x509if.ResultAttribute", HFILL }},
2599 { &hf_x509if_defaultControls,
2600 { "defaultControls", "x509if.defaultControls",
2601 FT_NONE, BASE_NONE, NULL, 0,
2602 "x509if.ControlOptions", HFILL }},
2603 { &hf_x509if_mandatoryControls,
2604 { "mandatoryControls", "x509if.mandatoryControls",
2605 FT_NONE, BASE_NONE, NULL, 0,
2606 "x509if.ControlOptions", HFILL }},
2607 { &hf_x509if_searchRuleControls,
2608 { "searchRuleControls", "x509if.searchRuleControls",
2609 FT_NONE, BASE_NONE, NULL, 0,
2610 "x509if.ControlOptions", HFILL }},
2611 { &hf_x509if_relaxation,
2612 { "relaxation", "x509if.relaxation",
2613 FT_NONE, BASE_NONE, NULL, 0,
2614 "x509if.RelaxationPolicy", HFILL }},
2615 { &hf_x509if_additionalControl,
2616 { "additionalControl", "x509if.additionalControl",
2617 FT_UINT32, BASE_DEC, NULL, 0,
2618 "x509if.SEQUENCE_OF_AttributeType", HFILL }},
2619 { &hf_x509if_additionalControl_item,
2620 { "Item", "x509if.additionalControl_item",
2621 FT_OID, BASE_NONE, NULL, 0,
2622 "x509if.AttributeType", HFILL }},
2623 { &hf_x509if_allowedSubset,
2624 { "allowedSubset", "x509if.allowedSubset",
2625 FT_BYTES, BASE_HEX, NULL, 0,
2626 "x509if.AllowedSubset", HFILL }},
2627 { &hf_x509if_imposedSubset,
2628 { "imposedSubset", "x509if.imposedSubset",
2629 FT_UINT32, BASE_DEC, VALS(x509if_ImposedSubset_vals), 0,
2630 "x509if.ImposedSubset", HFILL }},
2631 { &hf_x509if_entryLimit,
2632 { "entryLimit", "x509if.entryLimit",
2633 FT_NONE, BASE_NONE, NULL, 0,
2634 "x509if.EntryLimit", HFILL }},
2636 { "name", "x509if.name",
2637 FT_UINT32, BASE_DEC, NULL, 0,
2638 "x509if.SET_OF_DirectoryString", HFILL }},
2639 { &hf_x509if_name_item,
2640 { "Item", "x509if.name_item",
2641 FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
2642 "x509sat.DirectoryString", HFILL }},
2643 { &hf_x509if_description,
2644 { "description", "x509if.description",
2645 FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
2646 "x509sat.DirectoryString", HFILL }},
2647 { &hf_x509if_obsolete,
2648 { "obsolete", "x509if.obsolete",
2649 FT_BOOLEAN, 8, NULL, 0,
2650 "x509if.BOOLEAN", HFILL }},
2651 { &hf_x509if_includeSubtypes,
2652 { "includeSubtypes", "x509if.includeSubtypes",
2653 FT_BOOLEAN, 8, NULL, 0,
2654 "x509if.BOOLEAN", HFILL }},
2655 { &hf_x509if_ra_selectedValues,
2656 { "selectedValues", "x509if.selectedValues",
2657 FT_UINT32, BASE_DEC, NULL, 0,
2658 "x509if.SEQUENCE_OF_SelectedValues", HFILL }},
2659 { &hf_x509if_ra_selectedValues_item,
2660 { "Item", "x509if.selectedValues_item",
2661 FT_NONE, BASE_NONE, NULL, 0,
2662 "x509if.SelectedValues", HFILL }},
2663 { &hf_x509if_defaultValues,
2664 { "defaultValues", "x509if.defaultValues",
2665 FT_UINT32, BASE_DEC, NULL, 0,
2666 "x509if.T_defaultValues", HFILL }},
2667 { &hf_x509if_defaultValues_item,
2668 { "Item", "x509if.defaultValues_item",
2669 FT_NONE, BASE_NONE, NULL, 0,
2670 "x509if.T_defaultValues_item", HFILL }},
2671 { &hf_x509if_entryType,
2672 { "entryType", "x509if.entryType",
2673 FT_OID, BASE_NONE, NULL, 0,
2674 "x509if.DefaultValueType", HFILL }},
2675 { &hf_x509if_ra_values,
2676 { "values", "x509if.values",
2677 FT_UINT32, BASE_DEC, NULL, 0,
2678 "x509if.SEQUENCE_OF_DefaultValueValues", HFILL }},
2679 { &hf_x509if_ra_values_item,
2680 { "Item", "x509if.values_item",
2681 FT_NONE, BASE_NONE, NULL, 0,
2682 "x509if.DefaultValueValues", HFILL }},
2683 { &hf_x509if_contexts,
2684 { "contexts", "x509if.contexts",
2685 FT_UINT32, BASE_DEC, NULL, 0,
2686 "x509if.SEQUENCE_OF_ContextProfile", HFILL }},
2687 { &hf_x509if_contexts_item,
2688 { "Item", "x509if.contexts_item",
2689 FT_NONE, BASE_NONE, NULL, 0,
2690 "x509if.ContextProfile", HFILL }},
2691 { &hf_x509if_contextCombination,
2692 { "contextCombination", "x509if.contextCombination",
2693 FT_UINT32, BASE_DEC, VALS(x509if_ContextCombination_vals), 0,
2694 "x509if.ContextCombination", HFILL }},
2695 { &hf_x509if_matchingUse,
2696 { "matchingUse", "x509if.matchingUse",
2697 FT_UINT32, BASE_DEC, NULL, 0,
2698 "x509if.SEQUENCE_OF_MatchingUse", HFILL }},
2699 { &hf_x509if_matchingUse_item,
2700 { "Item", "x509if.matchingUse_item",
2701 FT_NONE, BASE_NONE, NULL, 0,
2702 "x509if.MatchingUse", HFILL }},
2703 { &hf_x509if_contextValue,
2704 { "contextValue", "x509if.contextValue",
2705 FT_UINT32, BASE_DEC, NULL, 0,
2706 "x509if.SEQUENCE_OF_AttributeValue", HFILL }},
2707 { &hf_x509if_contextValue_item,
2708 { "Item", "x509if.contextValue_item",
2709 FT_NONE, BASE_NONE, NULL, 0,
2710 "x509if.AttributeValue", HFILL }},
2711 { &hf_x509if_context,
2712 { "context", "x509if.context",
2713 FT_OID, BASE_NONE, NULL, 0,
2714 "x509if.OBJECT_IDENTIFIER", HFILL }},
2715 { &hf_x509if_contextcombination_and,
2716 { "and", "x509if.and",
2717 FT_UINT32, BASE_DEC, NULL, 0,
2718 "x509if.SEQUENCE_OF_ContextCombination", HFILL }},
2719 { &hf_x509if_contextcombination_and_item,
2720 { "Item", "x509if.and_item",
2721 FT_UINT32, BASE_DEC, VALS(x509if_ContextCombination_vals), 0,
2722 "x509if.ContextCombination", HFILL }},
2723 { &hf_x509if_contextcombination_or,
2724 { "or", "x509if.or",
2725 FT_UINT32, BASE_DEC, NULL, 0,
2726 "x509if.SEQUENCE_OF_ContextCombination", HFILL }},
2727 { &hf_x509if_contextcombination_or_item,
2728 { "Item", "x509if.or_item",
2729 FT_UINT32, BASE_DEC, VALS(x509if_ContextCombination_vals), 0,
2730 "x509if.ContextCombination", HFILL }},
2731 { &hf_x509if_contextcombination_not,
2732 { "not", "x509if.not",
2733 FT_UINT32, BASE_DEC, VALS(x509if_ContextCombination_vals), 0,
2734 "x509if.ContextCombination", HFILL }},
2735 { &hf_x509if_restrictionType,
2736 { "restrictionType", "x509if.restrictionType",
2737 FT_OID, BASE_NONE, NULL, 0,
2738 "x509if.AttributeId", HFILL }},
2739 { &hf_x509if_restrictionValue,
2740 { "restrictionValue", "x509if.restrictionValue",
2741 FT_NONE, BASE_NONE, NULL, 0,
2742 "x509if.AttributeValue", HFILL }},
2743 { &hf_x509if_attribute,
2744 { "attribute", "x509if.attribute",
2745 FT_OID, BASE_NONE, NULL, 0,
2746 "x509if.AttributeType", HFILL }},
2748 { "and", "x509if.and",
2749 FT_UINT32, BASE_DEC, NULL, 0,
2750 "x509if.SEQUENCE_OF_AttributeCombination", HFILL }},
2751 { &hf_x509if_and_item,
2752 { "Item", "x509if.and_item",
2753 FT_UINT32, BASE_DEC, VALS(x509if_AttributeCombination_vals), 0,
2754 "x509if.AttributeCombination", HFILL }},
2756 { "or", "x509if.or",
2757 FT_UINT32, BASE_DEC, NULL, 0,
2758 "x509if.SEQUENCE_OF_AttributeCombination", HFILL }},
2759 { &hf_x509if_or_item,
2760 { "Item", "x509if.or_item",
2761 FT_UINT32, BASE_DEC, VALS(x509if_AttributeCombination_vals), 0,
2762 "x509if.AttributeCombination", HFILL }},
2764 { "not", "x509if.not",
2765 FT_UINT32, BASE_DEC, VALS(x509if_AttributeCombination_vals), 0,
2766 "x509if.AttributeCombination", HFILL }},
2767 { &hf_x509if_outputValues,
2768 { "outputValues", "x509if.outputValues",
2769 FT_UINT32, BASE_DEC, VALS(x509if_T_outputValues_vals), 0,
2770 "x509if.T_outputValues", HFILL }},
2771 { &hf_x509if_selectedValues,
2772 { "selectedValues", "x509if.selectedValues",
2773 FT_UINT32, BASE_DEC, NULL, 0,
2774 "x509if.SEQUENCE_OF_AttributeValue", HFILL }},
2775 { &hf_x509if_selectedValues_item,
2776 { "Item", "x509if.selectedValues_item",
2777 FT_NONE, BASE_NONE, NULL, 0,
2778 "x509if.AttributeValue", HFILL }},
2779 { &hf_x509if_matchedValuesOnly,
2780 { "matchedValuesOnly", "x509if.matchedValuesOnly",
2781 FT_NONE, BASE_NONE, NULL, 0,
2782 "x509if.NULL", HFILL }},
2783 { &hf_x509if_default,
2784 { "default", "x509if.default",
2785 FT_INT32, BASE_DEC, NULL, 0,
2786 "x509if.INTEGER", HFILL }},
2788 { "max", "x509if.max",
2789 FT_INT32, BASE_DEC, NULL, 0,
2790 "x509if.INTEGER", HFILL }},
2792 { "basic", "x509if.basic",
2793 FT_NONE, BASE_NONE, NULL, 0,
2794 "x509if.MRMapping", HFILL }},
2795 { &hf_x509if_tightenings,
2796 { "tightenings", "x509if.tightenings",
2797 FT_UINT32, BASE_DEC, NULL, 0,
2798 "x509if.SEQUENCE_OF_MRMapping", HFILL }},
2799 { &hf_x509if_tightenings_item,
2800 { "Item", "x509if.tightenings_item",
2801 FT_NONE, BASE_NONE, NULL, 0,
2802 "x509if.MRMapping", HFILL }},
2803 { &hf_x509if_relaxations,
2804 { "relaxations", "x509if.relaxations",
2805 FT_UINT32, BASE_DEC, NULL, 0,
2806 "x509if.SEQUENCE_OF_MRMapping", HFILL }},
2807 { &hf_x509if_relaxations_item,
2808 { "Item", "x509if.relaxations_item",
2809 FT_NONE, BASE_NONE, NULL, 0,
2810 "x509if.MRMapping", HFILL }},
2811 { &hf_x509if_maximum_relaxation,
2812 { "maximum", "x509if.maximum",
2813 FT_INT32, BASE_DEC, NULL, 0,
2814 "x509if.INTEGER", HFILL }},
2815 { &hf_x509if_minimum_relaxation,
2816 { "minimum", "x509if.minimum",
2817 FT_INT32, BASE_DEC, NULL, 0,
2818 "x509if.INTEGER", HFILL }},
2819 { &hf_x509if_mapping,
2820 { "mapping", "x509if.mapping",
2821 FT_UINT32, BASE_DEC, NULL, 0,
2822 "x509if.SEQUENCE_OF_Mapping", HFILL }},
2823 { &hf_x509if_mapping_item,
2824 { "Item", "x509if.mapping_item",
2825 FT_NONE, BASE_NONE, NULL, 0,
2826 "x509if.Mapping", HFILL }},
2827 { &hf_x509if_substitution,
2828 { "substitution", "x509if.substitution",
2829 FT_UINT32, BASE_DEC, NULL, 0,
2830 "x509if.SEQUENCE_OF_MRSubstitution", HFILL }},
2831 { &hf_x509if_substitution_item,
2832 { "Item", "x509if.substitution_item",
2833 FT_NONE, BASE_NONE, NULL, 0,
2834 "x509if.MRSubstitution", HFILL }},
2835 { &hf_x509if_mappingFunction,
2836 { "mappingFunction", "x509if.mappingFunction",
2837 FT_OID, BASE_NONE, NULL, 0,
2838 "x509if.OBJECT_IDENTIFIER", HFILL }},
2840 { "level", "x509if.level",
2841 FT_INT32, BASE_DEC, NULL, 0,
2842 "x509if.INTEGER", HFILL }},
2843 { &hf_x509if_oldMatchingRule,
2844 { "oldMatchingRule", "x509if.oldMatchingRule",
2845 FT_OID, BASE_NONE, NULL, 0,
2846 "x509if.OBJECT_IDENTIFIER", HFILL }},
2847 { &hf_x509if_newMatchingRule,
2848 { "newMatchingRule", "x509if.newMatchingRule",
2849 FT_OID, BASE_NONE, NULL, 0,
2850 "x509if.OBJECT_IDENTIFIER", HFILL }},
2851 { &hf_x509if_AllowedSubset_baseObject,
2852 { "baseObject", "x509if.baseObject",
2853 FT_BOOLEAN, 8, NULL, 0x80,
2855 { &hf_x509if_AllowedSubset_oneLevel,
2856 { "oneLevel", "x509if.oneLevel",
2857 FT_BOOLEAN, 8, NULL, 0x40,
2859 { &hf_x509if_AllowedSubset_wholeSubtree,
2860 { "wholeSubtree", "x509if.wholeSubtree",
2861 FT_BOOLEAN, 8, NULL, 0x20,
2864 /*--- End of included file: packet-x509if-hfarr.c ---*/
2865 #line 124 "packet-x509if-template.c"
2868 /* List of subtrees */
2869 static gint *ett[] = {
2871 /*--- Included file: packet-x509if-ettarr.c ---*/
2872 #line 1 "packet-x509if-ettarr.c"
2873 &ett_x509if_Attribute,
2874 &ett_x509if_SET_OF_AttributeValue,
2875 &ett_x509if_T_valuesWithContext,
2876 &ett_x509if_T_valuesWithContext_item,
2877 &ett_x509if_SET_OF_Context,
2878 &ett_x509if_Context,
2879 &ett_x509if_AttributeValueAssertion,
2880 &ett_x509if_T_assertedContexts,
2881 &ett_x509if_SET_OF_ContextAssertion,
2882 &ett_x509if_ContextAssertion,
2883 &ett_x509if_SET_OF_ContextValue,
2884 &ett_x509if_AttributeTypeAssertion,
2885 &ett_x509if_SEQUENCE_OF_ContextAssertion,
2887 &ett_x509if_RDNSequence,
2888 &ett_x509if_RelativeDistinguishedName,
2889 &ett_x509if_AttributeTypeAndDistinguishedValue,
2890 &ett_x509if_T_valWithContext,
2891 &ett_x509if_T_valWithContext_item,
2892 &ett_x509if_SubtreeSpecification,
2893 &ett_x509if_T_specificExclusions,
2894 &ett_x509if_T_specificExclusions_item,
2895 &ett_x509if_ChopSpecification,
2896 &ett_x509if_T_chopSpecificExclusions,
2897 &ett_x509if_T_chopSpecificExclusions_item,
2898 &ett_x509if_Refinement,
2899 &ett_x509if_SET_OF_Refinement,
2900 &ett_x509if_DITStructureRule,
2901 &ett_x509if_SET_OF_RuleIdentifier,
2902 &ett_x509if_DITContentRule,
2903 &ett_x509if_T_auxiliaries,
2904 &ett_x509if_SET_SIZE_1_MAX_OF_AttributeId,
2905 &ett_x509if_DITContextUse,
2906 &ett_x509if_T_mandatoryContexts,
2907 &ett_x509if_T_optionalContexts,
2908 &ett_x509if_SearchRuleDescription,
2909 &ett_x509if_SEQUENCE_OF_RequestAttribute,
2910 &ett_x509if_SEQUENCE_OF_ResultAttribute,
2911 &ett_x509if_SEQUENCE_OF_AttributeType,
2912 &ett_x509if_SET_OF_DirectoryString,
2913 &ett_x509if_SearchRule,
2914 &ett_x509if_SearchRuleId,
2915 &ett_x509if_AllowedSubset,
2916 &ett_x509if_RequestAttribute,
2917 &ett_x509if_SEQUENCE_OF_SelectedValues,
2918 &ett_x509if_T_defaultValues,
2919 &ett_x509if_T_defaultValues_item,
2920 &ett_x509if_SEQUENCE_OF_DefaultValueValues,
2921 &ett_x509if_SEQUENCE_OF_ContextProfile,
2922 &ett_x509if_SEQUENCE_OF_MatchingUse,
2923 &ett_x509if_ContextProfile,
2924 &ett_x509if_SEQUENCE_OF_AttributeValue,
2925 &ett_x509if_ContextCombination,
2926 &ett_x509if_SEQUENCE_OF_ContextCombination,
2927 &ett_x509if_MatchingUse,
2928 &ett_x509if_AttributeCombination,
2929 &ett_x509if_SEQUENCE_OF_AttributeCombination,
2930 &ett_x509if_ResultAttribute,
2931 &ett_x509if_T_outputValues,
2932 &ett_x509if_OutputValues,
2933 &ett_x509if_ControlOptions,
2934 &ett_x509if_EntryLimit,
2935 &ett_x509if_RelaxationPolicy,
2936 &ett_x509if_SEQUENCE_OF_MRMapping,
2937 &ett_x509if_MRMapping,
2938 &ett_x509if_SEQUENCE_OF_Mapping,
2939 &ett_x509if_SEQUENCE_OF_MRSubstitution,
2940 &ett_x509if_Mapping,
2941 &ett_x509if_MRSubstitution,
2943 /*--- End of included file: packet-x509if-ettarr.c ---*/
2944 #line 129 "packet-x509if-template.c"
2947 /* Register protocol */
2948 proto_x509if = proto_register_protocol(PNAME, PSNAME, PFNAME);
2950 /* Register fields and subtrees */
2951 proto_register_field_array(proto_x509if, hf, array_length(hf));
2952 proto_register_subtree_array(ett, array_length(ett));
2954 /* initialise array */
2955 fmt_vals[0].value = 0;
2956 fmt_vals[0].strptr = NULL;
2961 /*--- proto_reg_handoff_x509if -------------------------------------------*/
2962 void proto_reg_handoff_x509if(void) {
2964 /*--- Included file: packet-x509if-dis-tab.c ---*/
2965 #line 1 "packet-x509if-dis-tab.c"
2966 register_ber_oid_dissector("2.5.4.1", dissect_DistinguishedName_PDU, proto_x509if, "id-at-aliasedEntryName");
2967 register_ber_oid_dissector("2.5.4.31", dissect_DistinguishedName_PDU, proto_x509if, "id-at-member");
2968 register_ber_oid_dissector("2.5.4.32", dissect_DistinguishedName_PDU, proto_x509if, "id-at-owner");
2969 register_ber_oid_dissector("2.5.4.33", dissect_DistinguishedName_PDU, proto_x509if, "id-at-roleOccupant");
2970 register_ber_oid_dissector("2.5.4.34", dissect_DistinguishedName_PDU, proto_x509if, "id-at-seeAlso");
2971 register_ber_oid_dissector("2.5.4.49", dissect_DistinguishedName_PDU, proto_x509if, "id-at-distinguishedName");
2972 register_ber_oid_dissector("2.5.18.3", dissect_DistinguishedName_PDU, proto_x509if, "id-oa-creatorsName");
2973 register_ber_oid_dissector("2.5.18.4", dissect_DistinguishedName_PDU, proto_x509if, "id-oa-modifiersName");
2974 register_ber_oid_dissector("2.5.18.10", dissect_DistinguishedName_PDU, proto_x509if, "id-oa-subschemaSubentry");
2975 register_ber_oid_dissector("2.5.18.11", dissect_DistinguishedName_PDU, proto_x509if, "id-oa-subschemaSubentry");
2976 register_ber_oid_dissector("2.5.18.12", dissect_DistinguishedName_PDU, proto_x509if, "id-oa-collectiveAttributeSubentry");
2977 register_ber_oid_dissector("2.5.18.13", dissect_DistinguishedName_PDU, proto_x509if, "id-oa-contextDefaultSubentry");
2978 register_ber_oid_dissector("2.6.5.2.5", dissect_DistinguishedName_PDU, proto_x509if, "id-at-mhs-message-store-dn");
2979 register_ber_oid_dissector("2.6.5.2.14", dissect_DistinguishedName_PDU, proto_x509if, "id-at-mhs-dl-related-lists");
2980 register_ber_oid_dissector("2.16.840.1.101.2.2.1.3", dissect_DistinguishedName_PDU, proto_x509if, "id-at-alternateRecipient");
2981 register_ber_oid_dissector("2.16.840.1.101.2.2.1.4", dissect_DistinguishedName_PDU, proto_x509if, "id-at-associatedOrganization");
2982 register_ber_oid_dissector("2.16.840.1.101.2.2.1.6", dissect_DistinguishedName_PDU, proto_x509if, "id-at-associatedPLA");
2983 register_ber_oid_dissector("2.16.840.1.101.2.2.1.49", dissect_DistinguishedName_PDU, proto_x509if, "id-at-aliasPointer");
2984 register_ber_oid_dissector("2.16.840.1.101.2.2.1.61", dissect_DistinguishedName_PDU, proto_x509if, "id-at-listPointer");
2985 register_ber_oid_dissector("2.16.840.1.101.2.2.1.110", dissect_DistinguishedName_PDU, proto_x509if, "id-at-administrator");
2986 register_ber_oid_dissector("2.16.840.1.101.2.2.1.111", dissect_DistinguishedName_PDU, proto_x509if, "id-at-aigsExpanded");
2987 register_ber_oid_dissector("2.16.840.1.101.2.2.1.113", dissect_DistinguishedName_PDU, proto_x509if, "id-at-associatedAL");
2988 register_ber_oid_dissector("2.16.840.1.101.2.2.1.114", dissect_DistinguishedName_PDU, proto_x509if, "id-at-copyMember");
2989 register_ber_oid_dissector("2.16.840.1.101.2.2.1.117", dissect_DistinguishedName_PDU, proto_x509if, "id-at-guard");
2990 register_ber_oid_dissector("2.16.840.1.101.2.2.1.121", dissect_DistinguishedName_PDU, proto_x509if, "id-at-networkDN");
2991 register_ber_oid_dissector("2.16.840.1.101.2.2.1.138", dissect_DistinguishedName_PDU, proto_x509if, "id-at-plasServed");
2992 register_ber_oid_dissector("2.16.840.1.101.2.2.1.139", dissect_DistinguishedName_PDU, proto_x509if, "id-at-deployed");
2993 register_ber_oid_dissector("2.16.840.1.101.2.2.1.140", dissect_DistinguishedName_PDU, proto_x509if, "id-at-garrison");
2996 /*--- End of included file: packet-x509if-dis-tab.c ---*/
2997 #line 148 "packet-x509if-template.c"