Revert "TODO epan/dissectors/asn1/kerberos/packet-kerberos-template.c new GSS flags"
[wireshark-sm.git] / epan / dissectors / packet-x509sat.c
blobfc053dce7d4a2d72c8328ffc6c2047c8c6bc68ba
1 /* Do not modify this file. Changes will be overwritten. */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler */
3 /* packet-x509sat.c */
4 /* asn2wrs.py -b -r Syntax -q -L -p x509sat -c ./x509sat.cnf -s ./packet-x509sat-template -D . -O ../.. SelectedAttributeTypes.asn */
6 /* packet-x509sat.c
7 * Routines for X.509 Selected Attribute Types packet dissection
8 * Ronnie Sahlberg 2004
10 * Wireshark - Network traffic analyzer
11 * By Gerald Combs <gerald@wireshark.org>
12 * Copyright 1998 Gerald Combs
14 * SPDX-License-Identifier: GPL-2.0-or-later
17 #include "config.h"
19 #include <epan/packet.h>
20 #include <epan/oids.h>
21 #include <epan/asn1.h>
22 #include <epan/proto_data.h>
23 #include <epan/strutil.h>
24 #include <wsutil/array.h>
26 #include "packet-ber.h"
27 #include "packet-p1.h"
28 #include "packet-x509sat.h"
29 #include "packet-x509if.h"
31 #define PNAME "X.509 Selected Attribute Types"
32 #define PSNAME "X509SAT"
33 #define PFNAME "x509sat"
35 void proto_register_x509sat(void);
36 void proto_reg_handoff_x509sat(void);
38 /* Initialize the protocol and registered fields */
39 static int proto_x509sat;
40 static int hf_x509sat_DirectoryString_PDU; /* DirectoryString */
41 static int hf_x509sat_UniqueIdentifier_PDU; /* UniqueIdentifier */
42 static int hf_x509sat_CountryName_PDU; /* CountryName */
43 static int hf_x509sat_Guide_PDU; /* Guide */
44 static int hf_x509sat_EnhancedGuide_PDU; /* EnhancedGuide */
45 static int hf_x509sat_PostalAddress_PDU; /* PostalAddress */
46 static int hf_x509sat_TelephoneNumber_PDU; /* TelephoneNumber */
47 static int hf_x509sat_TelexNumber_PDU; /* TelexNumber */
48 static int hf_x509sat_FacsimileTelephoneNumber_PDU; /* FacsimileTelephoneNumber */
49 static int hf_x509sat_X121Address_PDU; /* X121Address */
50 static int hf_x509sat_InternationalISDNNumber_PDU; /* InternationalISDNNumber */
51 static int hf_x509sat_DestinationIndicator_PDU; /* DestinationIndicator */
52 static int hf_x509sat_PreferredDeliveryMethod_PDU; /* PreferredDeliveryMethod */
53 static int hf_x509sat_PresentationAddress_PDU; /* PresentationAddress */
54 static int hf_x509sat_ProtocolInformation_PDU; /* ProtocolInformation */
55 static int hf_x509sat_NameAndOptionalUID_PDU; /* NameAndOptionalUID */
56 static int hf_x509sat_CaseIgnoreListMatch_PDU; /* CaseIgnoreListMatch */
57 static int hf_x509sat_ObjectIdentifier_PDU; /* ObjectIdentifier */
58 static int hf_x509sat_OctetString_PDU; /* OctetString */
59 static int hf_x509sat_BitString_PDU; /* BitString */
60 static int hf_x509sat_Integer_PDU; /* Integer */
61 static int hf_x509sat_Boolean_PDU; /* Boolean */
62 static int hf_x509sat_SyntaxGeneralizedTime_PDU; /* SyntaxGeneralizedTime */
63 static int hf_x509sat_SyntaxUTCTime_PDU; /* SyntaxUTCTime */
64 static int hf_x509sat_SyntaxNumericString_PDU; /* SyntaxNumericString */
65 static int hf_x509sat_SyntaxPrintableString_PDU; /* SyntaxPrintableString */
66 static int hf_x509sat_SyntaxIA5String_PDU; /* SyntaxIA5String */
67 static int hf_x509sat_SyntaxBMPString_PDU; /* SyntaxBMPString */
68 static int hf_x509sat_SyntaxUniversalString_PDU; /* SyntaxUniversalString */
69 static int hf_x509sat_SyntaxUTF8String_PDU; /* SyntaxUTF8String */
70 static int hf_x509sat_SyntaxTeletexString_PDU; /* SyntaxTeletexString */
71 static int hf_x509sat_SyntaxT61String_PDU; /* SyntaxT61String */
72 static int hf_x509sat_SyntaxVideotexString_PDU; /* SyntaxVideotexString */
73 static int hf_x509sat_SyntaxGraphicString_PDU; /* SyntaxGraphicString */
74 static int hf_x509sat_SyntaxISO646String_PDU; /* SyntaxISO646String */
75 static int hf_x509sat_SyntaxVisibleString_PDU; /* SyntaxVisibleString */
76 static int hf_x509sat_SyntaxGeneralString_PDU; /* SyntaxGeneralString */
77 static int hf_x509sat_GUID_PDU; /* GUID */
78 static int hf_x509sat_teletexString; /* TeletexString */
79 static int hf_x509sat_printableString; /* PrintableString */
80 static int hf_x509sat_universalString; /* UniversalString */
81 static int hf_x509sat_bmpString; /* BMPString */
82 static int hf_x509sat_uTF8String; /* UTF8String */
83 static int hf_x509sat_objectClass; /* OBJECT_IDENTIFIER */
84 static int hf_x509sat_criteria; /* Criteria */
85 static int hf_x509sat_type; /* CriteriaItem */
86 static int hf_x509sat_and; /* SET_OF_Criteria */
87 static int hf_x509sat_and_item; /* Criteria */
88 static int hf_x509sat_or; /* SET_OF_Criteria */
89 static int hf_x509sat_or_item; /* Criteria */
90 static int hf_x509sat_not; /* Criteria */
91 static int hf_x509sat_equality; /* AttributeType */
92 static int hf_x509sat_substrings; /* AttributeType */
93 static int hf_x509sat_greaterOrEqual; /* AttributeType */
94 static int hf_x509sat_lessOrEqual; /* AttributeType */
95 static int hf_x509sat_approximateMatch; /* AttributeType */
96 static int hf_x509sat_subset; /* T_subset */
97 static int hf_x509sat_PostalAddress_item; /* DirectoryString */
98 static int hf_x509sat_telexNumber; /* PrintableString */
99 static int hf_x509sat_countryCode; /* PrintableString */
100 static int hf_x509sat_answerback; /* PrintableString */
101 static int hf_x509sat_telephoneNumber; /* TelephoneNumber */
102 static int hf_x509sat_parameters; /* G3FacsimileNonBasicParameters */
103 static int hf_x509sat_PreferredDeliveryMethod_item; /* PreferredDeliveryMethod_item */
104 static int hf_x509sat_pSelector; /* OCTET_STRING */
105 static int hf_x509sat_sSelector; /* OCTET_STRING */
106 static int hf_x509sat_tSelector; /* OCTET_STRING */
107 static int hf_x509sat_nAddresses; /* T_nAddresses */
108 static int hf_x509sat_nAddresses_item; /* OCTET_STRING */
109 static int hf_x509sat_nAddress; /* OCTET_STRING */
110 static int hf_x509sat_profiles; /* T_profiles */
111 static int hf_x509sat_profiles_item; /* OBJECT_IDENTIFIER */
112 static int hf_x509sat_dn; /* DistinguishedName */
113 static int hf_x509sat_uid; /* UniqueIdentifier */
114 static int hf_x509sat_matchingRuleUsed; /* OBJECT_IDENTIFIER */
115 static int hf_x509sat_attributeList; /* SEQUENCE_OF_AttributeValueAssertion */
116 static int hf_x509sat_attributeList_item; /* AttributeValueAssertion */
117 static int hf_x509sat_SubstringAssertion_item; /* SubstringAssertion_item */
118 static int hf_x509sat_initial; /* DirectoryString */
119 static int hf_x509sat_any; /* DirectoryString */
120 static int hf_x509sat_final; /* DirectoryString */
121 static int hf_x509sat_control; /* Attribute */
122 static int hf_x509sat_CaseIgnoreListMatch_item; /* DirectoryString */
123 static int hf_x509sat_OctetSubstringAssertion_item; /* OctetSubstringAssertion_item */
124 static int hf_x509sat_initial_substring; /* OCTET_STRING */
125 static int hf_x509sat_any_substring; /* OCTET_STRING */
126 static int hf_x509sat_finall_substring; /* OCTET_STRING */
127 static int hf_x509sat_ZonalSelect_item; /* AttributeType */
128 static int hf_x509sat_time; /* T_time */
129 static int hf_x509sat_absolute; /* T_absolute */
130 static int hf_x509sat_startTime; /* GeneralizedTime */
131 static int hf_x509sat_endTime; /* GeneralizedTime */
132 static int hf_x509sat_periodic; /* SET_OF_Period */
133 static int hf_x509sat_periodic_item; /* Period */
134 static int hf_x509sat_notThisTime; /* BOOLEAN */
135 static int hf_x509sat_timeZone; /* TimeZone */
136 static int hf_x509sat_timesOfDay; /* SET_OF_DayTimeBand */
137 static int hf_x509sat_timesOfDay_item; /* DayTimeBand */
138 static int hf_x509sat_days; /* T_days */
139 static int hf_x509sat_intDay; /* T_intDay */
140 static int hf_x509sat_intDay_item; /* INTEGER */
141 static int hf_x509sat_bitDay; /* T_bitDay */
142 static int hf_x509sat_dayOf; /* XDayOf */
143 static int hf_x509sat_weeks; /* T_weeks */
144 static int hf_x509sat_allWeeks; /* NULL */
145 static int hf_x509sat_intWeek; /* T_intWeek */
146 static int hf_x509sat_intWeek_item; /* INTEGER */
147 static int hf_x509sat_bitWeek; /* T_bitWeek */
148 static int hf_x509sat_months; /* T_months */
149 static int hf_x509sat_allMonths; /* NULL */
150 static int hf_x509sat_intMonth; /* T_intMonth */
151 static int hf_x509sat_intMonth_item; /* INTEGER */
152 static int hf_x509sat_bitMonth; /* T_bitMonth */
153 static int hf_x509sat_years; /* T_years */
154 static int hf_x509sat_years_item; /* INTEGER */
155 static int hf_x509sat_first_dayof; /* NamedDay */
156 static int hf_x509sat_second_dayof; /* NamedDay */
157 static int hf_x509sat_third_dayof; /* NamedDay */
158 static int hf_x509sat_fourth_dayof; /* NamedDay */
159 static int hf_x509sat_fifth_dayof; /* NamedDay */
160 static int hf_x509sat_intNamedDays; /* T_intNamedDays */
161 static int hf_x509sat_bitNamedDays; /* T_bitNamedDays */
162 static int hf_x509sat_startDayTime; /* DayTime */
163 static int hf_x509sat_endDayTime; /* DayTime */
164 static int hf_x509sat_hour; /* INTEGER */
165 static int hf_x509sat_minute; /* INTEGER */
166 static int hf_x509sat_second; /* INTEGER */
167 static int hf_x509sat_now; /* NULL */
168 static int hf_x509sat_at; /* GeneralizedTime */
169 static int hf_x509sat_between; /* T_between */
170 static int hf_x509sat_entirely; /* BOOLEAN */
171 static int hf_x509sat_localeID1; /* OBJECT_IDENTIFIER */
172 static int hf_x509sat_localeID2; /* DirectoryString */
173 /* named bits */
174 static int hf_x509sat_T_bitDay_sunday;
175 static int hf_x509sat_T_bitDay_monday;
176 static int hf_x509sat_T_bitDay_tuesday;
177 static int hf_x509sat_T_bitDay_wednesday;
178 static int hf_x509sat_T_bitDay_thursday;
179 static int hf_x509sat_T_bitDay_friday;
180 static int hf_x509sat_T_bitDay_saturday;
181 static int hf_x509sat_T_bitWeek_week1;
182 static int hf_x509sat_T_bitWeek_week2;
183 static int hf_x509sat_T_bitWeek_week3;
184 static int hf_x509sat_T_bitWeek_week4;
185 static int hf_x509sat_T_bitWeek_week5;
186 static int hf_x509sat_T_bitMonth_january;
187 static int hf_x509sat_T_bitMonth_february;
188 static int hf_x509sat_T_bitMonth_march;
189 static int hf_x509sat_T_bitMonth_april;
190 static int hf_x509sat_T_bitMonth_may;
191 static int hf_x509sat_T_bitMonth_june;
192 static int hf_x509sat_T_bitMonth_july;
193 static int hf_x509sat_T_bitMonth_august;
194 static int hf_x509sat_T_bitMonth_september;
195 static int hf_x509sat_T_bitMonth_october;
196 static int hf_x509sat_T_bitMonth_november;
197 static int hf_x509sat_T_bitMonth_december;
198 static int hf_x509sat_T_bitNamedDays_sunday;
199 static int hf_x509sat_T_bitNamedDays_monday;
200 static int hf_x509sat_T_bitNamedDays_tuesday;
201 static int hf_x509sat_T_bitNamedDays_wednesday;
202 static int hf_x509sat_T_bitNamedDays_thursday;
203 static int hf_x509sat_T_bitNamedDays_friday;
204 static int hf_x509sat_T_bitNamedDays_saturday;
206 /* Initialize the subtree pointers */
207 static int ett_x509sat_DirectoryString;
208 static int ett_x509sat_Guide;
209 static int ett_x509sat_Criteria;
210 static int ett_x509sat_SET_OF_Criteria;
211 static int ett_x509sat_CriteriaItem;
212 static int ett_x509sat_EnhancedGuide;
213 static int ett_x509sat_PostalAddress;
214 static int ett_x509sat_TelexNumber;
215 static int ett_x509sat_FacsimileTelephoneNumber;
216 static int ett_x509sat_PreferredDeliveryMethod;
217 static int ett_x509sat_PresentationAddress;
218 static int ett_x509sat_T_nAddresses;
219 static int ett_x509sat_ProtocolInformation;
220 static int ett_x509sat_T_profiles;
221 static int ett_x509sat_NameAndOptionalUID;
222 static int ett_x509sat_MultipleMatchingLocalities;
223 static int ett_x509sat_SEQUENCE_OF_AttributeValueAssertion;
224 static int ett_x509sat_SubstringAssertion;
225 static int ett_x509sat_SubstringAssertion_item;
226 static int ett_x509sat_CaseIgnoreListMatch;
227 static int ett_x509sat_OctetSubstringAssertion;
228 static int ett_x509sat_OctetSubstringAssertion_item;
229 static int ett_x509sat_ZonalSelect;
230 static int ett_x509sat_TimeSpecification;
231 static int ett_x509sat_T_time;
232 static int ett_x509sat_T_absolute;
233 static int ett_x509sat_SET_OF_Period;
234 static int ett_x509sat_Period;
235 static int ett_x509sat_SET_OF_DayTimeBand;
236 static int ett_x509sat_T_days;
237 static int ett_x509sat_T_intDay;
238 static int ett_x509sat_T_bitDay;
239 static int ett_x509sat_T_weeks;
240 static int ett_x509sat_T_intWeek;
241 static int ett_x509sat_T_bitWeek;
242 static int ett_x509sat_T_months;
243 static int ett_x509sat_T_intMonth;
244 static int ett_x509sat_T_bitMonth;
245 static int ett_x509sat_T_years;
246 static int ett_x509sat_XDayOf;
247 static int ett_x509sat_NamedDay;
248 static int ett_x509sat_T_bitNamedDays;
249 static int ett_x509sat_DayTimeBand;
250 static int ett_x509sat_DayTime;
251 static int ett_x509sat_TimeAssertion;
252 static int ett_x509sat_T_between;
253 static int ett_x509sat_LocaleContextSyntax;
255 /*--- Cyclic dependencies ---*/
257 /* Criteria -> Criteria/and -> Criteria */
258 /* Criteria -> Criteria */
259 /*int dissect_x509sat_Criteria(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);*/
264 static int
265 dissect_x509sat_TeletexString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
266 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
267 actx, tree, tvb, offset, hf_index,
268 NULL);
270 return offset;
275 static int
276 dissect_x509sat_PrintableString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
277 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
278 actx, tree, tvb, offset, hf_index,
279 NULL);
281 return offset;
286 static int
287 dissect_x509sat_UniversalString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
288 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UniversalString,
289 actx, tree, tvb, offset, hf_index,
290 NULL);
292 return offset;
297 static int
298 dissect_x509sat_BMPString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
299 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_BMPString,
300 actx, tree, tvb, offset, hf_index,
301 NULL);
303 return offset;
308 static int
309 dissect_x509sat_UTF8String(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
310 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UTF8String,
311 actx, tree, tvb, offset, hf_index,
312 NULL);
314 return offset;
318 const value_string x509sat_DirectoryString_vals[] = {
319 { 0, "teletexString" },
320 { 1, "printableString" },
321 { 2, "universalString" },
322 { 3, "bmpString" },
323 { 4, "uTF8String" },
324 { 0, NULL }
327 static const ber_choice_t DirectoryString_choice[] = {
328 { 0, &hf_x509sat_teletexString, BER_CLASS_UNI, BER_UNI_TAG_TeletexString, BER_FLAGS_NOOWNTAG, dissect_x509sat_TeletexString },
329 { 1, &hf_x509sat_printableString, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_x509sat_PrintableString },
330 { 2, &hf_x509sat_universalString, BER_CLASS_UNI, BER_UNI_TAG_UniversalString, BER_FLAGS_NOOWNTAG, dissect_x509sat_UniversalString },
331 { 3, &hf_x509sat_bmpString , BER_CLASS_UNI, BER_UNI_TAG_BMPString, BER_FLAGS_NOOWNTAG, dissect_x509sat_BMPString },
332 { 4, &hf_x509sat_uTF8String , BER_CLASS_UNI, BER_UNI_TAG_UTF8String, BER_FLAGS_NOOWNTAG, dissect_x509sat_UTF8String },
333 { 0, NULL, 0, 0, 0, NULL }
337 dissect_x509sat_DirectoryString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
338 offset = dissect_ber_choice(actx, tree, tvb, offset,
339 DirectoryString_choice, hf_index, ett_x509sat_DirectoryString,
340 NULL);
342 return offset;
348 dissect_x509sat_UniqueIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
349 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
350 NULL, 0, hf_index, -1,
351 NULL);
353 return offset;
359 dissect_x509sat_CountryName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
360 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
361 actx, tree, tvb, offset, hf_index,
362 NULL);
364 return offset;
369 static int
370 dissect_x509sat_OBJECT_IDENTIFIER(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
371 offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
373 return offset;
377 static const value_string x509sat_CriteriaItem_vals[] = {
378 { 0, "equality" },
379 { 1, "substrings" },
380 { 2, "greaterOrEqual" },
381 { 3, "lessOrEqual" },
382 { 4, "approximateMatch" },
383 { 0, NULL }
386 static const ber_choice_t CriteriaItem_choice[] = {
387 { 0, &hf_x509sat_equality , BER_CLASS_CON, 0, 0, dissect_x509if_AttributeType },
388 { 1, &hf_x509sat_substrings , BER_CLASS_CON, 1, 0, dissect_x509if_AttributeType },
389 { 2, &hf_x509sat_greaterOrEqual, BER_CLASS_CON, 2, 0, dissect_x509if_AttributeType },
390 { 3, &hf_x509sat_lessOrEqual , BER_CLASS_CON, 3, 0, dissect_x509if_AttributeType },
391 { 4, &hf_x509sat_approximateMatch, BER_CLASS_CON, 4, 0, dissect_x509if_AttributeType },
392 { 0, NULL, 0, 0, 0, NULL }
395 static int
396 dissect_x509sat_CriteriaItem(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
397 offset = dissect_ber_choice(actx, tree, tvb, offset,
398 CriteriaItem_choice, hf_index, ett_x509sat_CriteriaItem,
399 NULL);
401 return offset;
405 static const ber_sequence_t SET_OF_Criteria_set_of[1] = {
406 { &hf_x509sat_and_item , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509sat_Criteria },
409 static int
410 dissect_x509sat_SET_OF_Criteria(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
411 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
412 SET_OF_Criteria_set_of, hf_index, ett_x509sat_SET_OF_Criteria);
414 return offset;
418 const value_string x509sat_Criteria_vals[] = {
419 { 0, "type" },
420 { 1, "and" },
421 { 2, "or" },
422 { 3, "not" },
423 { 0, NULL }
426 static const ber_choice_t Criteria_choice[] = {
427 { 0, &hf_x509sat_type , BER_CLASS_CON, 0, 0, dissect_x509sat_CriteriaItem },
428 { 1, &hf_x509sat_and , BER_CLASS_CON, 1, 0, dissect_x509sat_SET_OF_Criteria },
429 { 2, &hf_x509sat_or , BER_CLASS_CON, 2, 0, dissect_x509sat_SET_OF_Criteria },
430 { 3, &hf_x509sat_not , BER_CLASS_CON, 3, 0, dissect_x509sat_Criteria },
431 { 0, NULL, 0, 0, 0, NULL }
435 dissect_x509sat_Criteria(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
436 // Criteria -> Criteria/and -> Criteria
437 actx->pinfo->dissection_depth += 2;
438 increment_dissection_depth(actx->pinfo);
439 offset = dissect_ber_choice(actx, tree, tvb, offset,
440 Criteria_choice, hf_index, ett_x509sat_Criteria,
441 NULL);
443 actx->pinfo->dissection_depth -= 2;
444 decrement_dissection_depth(actx->pinfo);
445 return offset;
449 static const ber_sequence_t Guide_set[] = {
450 { &hf_x509sat_objectClass , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509sat_OBJECT_IDENTIFIER },
451 { &hf_x509sat_criteria , BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_x509sat_Criteria },
452 { NULL, 0, 0, 0, NULL }
455 static int
456 dissect_x509sat_Guide(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
457 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
458 Guide_set, hf_index, ett_x509sat_Guide);
460 return offset;
464 static const value_string x509sat_T_subset_vals[] = {
465 { 0, "baseObject" },
466 { 1, "oneLevel" },
467 { 2, "wholeSubtree" },
468 { 0, NULL }
472 static int
473 dissect_x509sat_T_subset(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
474 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
475 NULL);
477 return offset;
481 static const ber_sequence_t EnhancedGuide_sequence[] = {
482 { &hf_x509sat_objectClass , BER_CLASS_CON, 0, 0, dissect_x509sat_OBJECT_IDENTIFIER },
483 { &hf_x509sat_criteria , BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_x509sat_Criteria },
484 { &hf_x509sat_subset , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509sat_T_subset },
485 { NULL, 0, 0, 0, NULL }
489 dissect_x509sat_EnhancedGuide(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
490 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
491 EnhancedGuide_sequence, hf_index, ett_x509sat_EnhancedGuide);
493 return offset;
497 static const ber_sequence_t PostalAddress_sequence_of[1] = {
498 { &hf_x509sat_PostalAddress_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509sat_DirectoryString },
502 dissect_x509sat_PostalAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
503 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
504 PostalAddress_sequence_of, hf_index, ett_x509sat_PostalAddress);
506 return offset;
511 static int
512 dissect_x509sat_TelephoneNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
513 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
514 actx, tree, tvb, offset, hf_index,
515 NULL);
517 return offset;
521 static const ber_sequence_t TelexNumber_sequence[] = {
522 { &hf_x509sat_telexNumber , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_x509sat_PrintableString },
523 { &hf_x509sat_countryCode , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_x509sat_PrintableString },
524 { &hf_x509sat_answerback , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_x509sat_PrintableString },
525 { NULL, 0, 0, 0, NULL }
528 static int
529 dissect_x509sat_TelexNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
530 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
531 TelexNumber_sequence, hf_index, ett_x509sat_TelexNumber);
533 return offset;
537 static const ber_sequence_t FacsimileTelephoneNumber_sequence[] = {
538 { &hf_x509sat_telephoneNumber, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_x509sat_TelephoneNumber },
539 { &hf_x509sat_parameters , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_G3FacsimileNonBasicParameters },
540 { NULL, 0, 0, 0, NULL }
544 dissect_x509sat_FacsimileTelephoneNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
545 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
546 FacsimileTelephoneNumber_sequence, hf_index, ett_x509sat_FacsimileTelephoneNumber);
548 return offset;
554 dissect_x509sat_X121Address(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
555 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
556 actx, tree, tvb, offset, hf_index,
557 NULL);
559 return offset;
565 dissect_x509sat_InternationalISDNNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
566 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
567 actx, tree, tvb, offset, hf_index,
568 NULL);
570 return offset;
576 dissect_x509sat_DestinationIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
577 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
578 actx, tree, tvb, offset, hf_index,
579 NULL);
581 return offset;
585 static const value_string x509sat_PreferredDeliveryMethod_item_vals[] = {
586 { 0, "any-delivery-method" },
587 { 1, "mhs-delivery" },
588 { 2, "physical-delivery" },
589 { 3, "telex-delivery" },
590 { 4, "teletex-delivery" },
591 { 5, "g3-facsimile-delivery" },
592 { 6, "g4-facsimile-delivery" },
593 { 7, "ia5-terminal-delivery" },
594 { 8, "videotex-delivery" },
595 { 9, "telephone-delivery" },
596 { 0, NULL }
600 static int
601 dissect_x509sat_PreferredDeliveryMethod_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
602 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
603 NULL);
605 return offset;
609 static const ber_sequence_t PreferredDeliveryMethod_sequence_of[1] = {
610 { &hf_x509sat_PreferredDeliveryMethod_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x509sat_PreferredDeliveryMethod_item },
614 dissect_x509sat_PreferredDeliveryMethod(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
615 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
616 PreferredDeliveryMethod_sequence_of, hf_index, ett_x509sat_PreferredDeliveryMethod);
618 return offset;
623 static int
624 dissect_x509sat_OCTET_STRING(bool 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_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
626 NULL);
628 return offset;
632 static const ber_sequence_t T_nAddresses_set_of[1] = {
633 { &hf_x509sat_nAddresses_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_x509sat_OCTET_STRING },
636 static int
637 dissect_x509sat_T_nAddresses(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
638 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
639 T_nAddresses_set_of, hf_index, ett_x509sat_T_nAddresses);
641 return offset;
645 static const ber_sequence_t PresentationAddress_sequence[] = {
646 { &hf_x509sat_pSelector , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509sat_OCTET_STRING },
647 { &hf_x509sat_sSelector , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509sat_OCTET_STRING },
648 { &hf_x509sat_tSelector , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509sat_OCTET_STRING },
649 { &hf_x509sat_nAddresses , BER_CLASS_CON, 3, 0, dissect_x509sat_T_nAddresses },
650 { NULL, 0, 0, 0, NULL }
654 dissect_x509sat_PresentationAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
655 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
656 PresentationAddress_sequence, hf_index, ett_x509sat_PresentationAddress);
658 return offset;
662 static const ber_sequence_t T_profiles_set_of[1] = {
663 { &hf_x509sat_profiles_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509sat_OBJECT_IDENTIFIER },
666 static int
667 dissect_x509sat_T_profiles(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
668 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
669 T_profiles_set_of, hf_index, ett_x509sat_T_profiles);
671 return offset;
675 static const ber_sequence_t ProtocolInformation_sequence[] = {
676 { &hf_x509sat_nAddress , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_x509sat_OCTET_STRING },
677 { &hf_x509sat_profiles , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509sat_T_profiles },
678 { NULL, 0, 0, 0, NULL }
682 dissect_x509sat_ProtocolInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
683 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
684 ProtocolInformation_sequence, hf_index, ett_x509sat_ProtocolInformation);
686 return offset;
690 static const ber_sequence_t NameAndOptionalUID_sequence[] = {
691 { &hf_x509sat_dn , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_DistinguishedName },
692 { &hf_x509sat_uid , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509sat_UniqueIdentifier },
693 { NULL, 0, 0, 0, NULL }
697 dissect_x509sat_NameAndOptionalUID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
698 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
699 NameAndOptionalUID_sequence, hf_index, ett_x509sat_NameAndOptionalUID);
701 return offset;
705 static const ber_sequence_t SEQUENCE_OF_AttributeValueAssertion_sequence_of[1] = {
706 { &hf_x509sat_attributeList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeValueAssertion },
709 static int
710 dissect_x509sat_SEQUENCE_OF_AttributeValueAssertion(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
711 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
712 SEQUENCE_OF_AttributeValueAssertion_sequence_of, hf_index, ett_x509sat_SEQUENCE_OF_AttributeValueAssertion);
714 return offset;
718 static const ber_sequence_t MultipleMatchingLocalities_sequence[] = {
719 { &hf_x509sat_matchingRuleUsed, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509sat_OBJECT_IDENTIFIER },
720 { &hf_x509sat_attributeList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509sat_SEQUENCE_OF_AttributeValueAssertion },
721 { NULL, 0, 0, 0, NULL }
725 dissect_x509sat_MultipleMatchingLocalities(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
726 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
727 MultipleMatchingLocalities_sequence, hf_index, ett_x509sat_MultipleMatchingLocalities);
729 return offset;
733 static const value_string x509sat_SubstringAssertion_item_vals[] = {
734 { 0, "initial" },
735 { 1, "any" },
736 { 2, "final" },
737 { 3, "control" },
738 { 0, NULL }
741 static const ber_choice_t SubstringAssertion_item_choice[] = {
742 { 0, &hf_x509sat_initial , BER_CLASS_CON, 0, 0, dissect_x509sat_DirectoryString },
743 { 1, &hf_x509sat_any , BER_CLASS_CON, 1, 0, dissect_x509sat_DirectoryString },
744 { 2, &hf_x509sat_final , BER_CLASS_CON, 2, 0, dissect_x509sat_DirectoryString },
745 { 3, &hf_x509sat_control , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_Attribute },
746 { 0, NULL, 0, 0, 0, NULL }
749 static int
750 dissect_x509sat_SubstringAssertion_item(bool 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_choice(actx, tree, tvb, offset,
752 SubstringAssertion_item_choice, hf_index, ett_x509sat_SubstringAssertion_item,
753 NULL);
755 return offset;
759 static const ber_sequence_t SubstringAssertion_sequence_of[1] = {
760 { &hf_x509sat_SubstringAssertion_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509sat_SubstringAssertion_item },
764 dissect_x509sat_SubstringAssertion(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
765 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
766 SubstringAssertion_sequence_of, hf_index, ett_x509sat_SubstringAssertion);
768 return offset;
772 static const ber_sequence_t CaseIgnoreListMatch_sequence_of[1] = {
773 { &hf_x509sat_CaseIgnoreListMatch_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509sat_DirectoryString },
777 dissect_x509sat_CaseIgnoreListMatch(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
778 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
779 CaseIgnoreListMatch_sequence_of, hf_index, ett_x509sat_CaseIgnoreListMatch);
781 return offset;
785 static const value_string x509sat_OctetSubstringAssertion_item_vals[] = {
786 { 0, "initial" },
787 { 1, "any" },
788 { 2, "final" },
789 { 0, NULL }
792 static const ber_choice_t OctetSubstringAssertion_item_choice[] = {
793 { 0, &hf_x509sat_initial_substring, BER_CLASS_CON, 0, 0, dissect_x509sat_OCTET_STRING },
794 { 1, &hf_x509sat_any_substring, BER_CLASS_CON, 1, 0, dissect_x509sat_OCTET_STRING },
795 { 2, &hf_x509sat_finall_substring, BER_CLASS_CON, 2, 0, dissect_x509sat_OCTET_STRING },
796 { 0, NULL, 0, 0, 0, NULL }
799 static int
800 dissect_x509sat_OctetSubstringAssertion_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
801 offset = dissect_ber_choice(actx, tree, tvb, offset,
802 OctetSubstringAssertion_item_choice, hf_index, ett_x509sat_OctetSubstringAssertion_item,
803 NULL);
805 return offset;
809 static const ber_sequence_t OctetSubstringAssertion_sequence_of[1] = {
810 { &hf_x509sat_OctetSubstringAssertion_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509sat_OctetSubstringAssertion_item },
814 dissect_x509sat_OctetSubstringAssertion(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
815 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
816 OctetSubstringAssertion_sequence_of, hf_index, ett_x509sat_OctetSubstringAssertion);
818 return offset;
822 static const ber_sequence_t ZonalSelect_sequence_of[1] = {
823 { &hf_x509sat_ZonalSelect_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
827 dissect_x509sat_ZonalSelect(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
828 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
829 ZonalSelect_sequence_of, hf_index, ett_x509sat_ZonalSelect);
831 return offset;
835 const value_string x509sat_ZonalResult_vals[] = {
836 { 0, "cannot-select-mapping" },
837 { 2, "zero-mappings" },
838 { 3, "multiple-mappings" },
839 { 0, NULL }
844 dissect_x509sat_ZonalResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
845 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
846 NULL);
848 return offset;
854 dissect_x509sat_LanguageContextSyntax(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
855 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
856 actx, tree, tvb, offset, hf_index,
857 NULL);
859 return offset;
864 static int
865 dissect_x509sat_GeneralizedTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
866 offset = dissect_ber_GeneralizedTime(implicit_tag, actx, tree, tvb, offset, hf_index);
868 return offset;
872 static const ber_sequence_t T_absolute_sequence[] = {
873 { &hf_x509sat_startTime , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509sat_GeneralizedTime },
874 { &hf_x509sat_endTime , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509sat_GeneralizedTime },
875 { NULL, 0, 0, 0, NULL }
878 static int
879 dissect_x509sat_T_absolute(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
880 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
881 T_absolute_sequence, hf_index, ett_x509sat_T_absolute);
883 return offset;
888 static int
889 dissect_x509sat_INTEGER(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
890 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
891 NULL);
893 return offset;
897 static const ber_sequence_t DayTime_sequence[] = {
898 { &hf_x509sat_hour , BER_CLASS_CON, 0, 0, dissect_x509sat_INTEGER },
899 { &hf_x509sat_minute , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509sat_INTEGER },
900 { &hf_x509sat_second , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509sat_INTEGER },
901 { NULL, 0, 0, 0, NULL }
904 static int
905 dissect_x509sat_DayTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
906 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
907 DayTime_sequence, hf_index, ett_x509sat_DayTime);
909 return offset;
913 static const ber_sequence_t DayTimeBand_sequence[] = {
914 { &hf_x509sat_startDayTime, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509sat_DayTime },
915 { &hf_x509sat_endDayTime , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509sat_DayTime },
916 { NULL, 0, 0, 0, NULL }
920 dissect_x509sat_DayTimeBand(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
921 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
922 DayTimeBand_sequence, hf_index, ett_x509sat_DayTimeBand);
924 return offset;
928 static const ber_sequence_t SET_OF_DayTimeBand_set_of[1] = {
929 { &hf_x509sat_timesOfDay_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509sat_DayTimeBand },
932 static int
933 dissect_x509sat_SET_OF_DayTimeBand(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
934 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
935 SET_OF_DayTimeBand_set_of, hf_index, ett_x509sat_SET_OF_DayTimeBand);
937 return offset;
941 static const ber_sequence_t T_intDay_set_of[1] = {
942 { &hf_x509sat_intDay_item , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x509sat_INTEGER },
945 static int
946 dissect_x509sat_T_intDay(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
947 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
948 T_intDay_set_of, hf_index, ett_x509sat_T_intDay);
950 return offset;
954 static int * const T_bitDay_bits[] = {
955 &hf_x509sat_T_bitDay_sunday,
956 &hf_x509sat_T_bitDay_monday,
957 &hf_x509sat_T_bitDay_tuesday,
958 &hf_x509sat_T_bitDay_wednesday,
959 &hf_x509sat_T_bitDay_thursday,
960 &hf_x509sat_T_bitDay_friday,
961 &hf_x509sat_T_bitDay_saturday,
962 NULL
965 static int
966 dissect_x509sat_T_bitDay(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
967 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
968 T_bitDay_bits, 7, hf_index, ett_x509sat_T_bitDay,
969 NULL);
971 return offset;
975 static const value_string x509sat_T_intNamedDays_vals[] = {
976 { 1, "sunday" },
977 { 2, "monday" },
978 { 3, "tuesday" },
979 { 4, "wednesday" },
980 { 5, "thursday" },
981 { 6, "friday" },
982 { 7, "saturday" },
983 { 0, NULL }
987 static int
988 dissect_x509sat_T_intNamedDays(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
989 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
990 NULL);
992 return offset;
996 static int * const T_bitNamedDays_bits[] = {
997 &hf_x509sat_T_bitNamedDays_sunday,
998 &hf_x509sat_T_bitNamedDays_monday,
999 &hf_x509sat_T_bitNamedDays_tuesday,
1000 &hf_x509sat_T_bitNamedDays_wednesday,
1001 &hf_x509sat_T_bitNamedDays_thursday,
1002 &hf_x509sat_T_bitNamedDays_friday,
1003 &hf_x509sat_T_bitNamedDays_saturday,
1004 NULL
1007 static int
1008 dissect_x509sat_T_bitNamedDays(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1009 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
1010 T_bitNamedDays_bits, 7, hf_index, ett_x509sat_T_bitNamedDays,
1011 NULL);
1013 return offset;
1017 const value_string x509sat_NamedDay_vals[] = {
1018 { 0, "intNamedDays" },
1019 { 1, "bitNamedDays" },
1020 { 0, NULL }
1023 static const ber_choice_t NamedDay_choice[] = {
1024 { 0, &hf_x509sat_intNamedDays, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_x509sat_T_intNamedDays },
1025 { 1, &hf_x509sat_bitNamedDays, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_x509sat_T_bitNamedDays },
1026 { 0, NULL, 0, 0, 0, NULL }
1030 dissect_x509sat_NamedDay(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1031 offset = dissect_ber_choice(actx, tree, tvb, offset,
1032 NamedDay_choice, hf_index, ett_x509sat_NamedDay,
1033 NULL);
1035 return offset;
1039 const value_string x509sat_XDayOf_vals[] = {
1040 { 1, "first" },
1041 { 2, "second" },
1042 { 3, "third" },
1043 { 4, "fourth" },
1044 { 5, "fifth" },
1045 { 0, NULL }
1048 static const ber_choice_t XDayOf_choice[] = {
1049 { 1, &hf_x509sat_first_dayof , BER_CLASS_CON, 1, 0, dissect_x509sat_NamedDay },
1050 { 2, &hf_x509sat_second_dayof, BER_CLASS_CON, 2, 0, dissect_x509sat_NamedDay },
1051 { 3, &hf_x509sat_third_dayof , BER_CLASS_CON, 3, 0, dissect_x509sat_NamedDay },
1052 { 4, &hf_x509sat_fourth_dayof, BER_CLASS_CON, 4, 0, dissect_x509sat_NamedDay },
1053 { 5, &hf_x509sat_fifth_dayof , BER_CLASS_CON, 5, 0, dissect_x509sat_NamedDay },
1054 { 0, NULL, 0, 0, 0, NULL }
1058 dissect_x509sat_XDayOf(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1059 offset = dissect_ber_choice(actx, tree, tvb, offset,
1060 XDayOf_choice, hf_index, ett_x509sat_XDayOf,
1061 NULL);
1063 return offset;
1067 static const value_string x509sat_T_days_vals[] = {
1068 { 0, "intDay" },
1069 { 1, "bitDay" },
1070 { 2, "dayOf" },
1071 { 0, NULL }
1074 static const ber_choice_t T_days_choice[] = {
1075 { 0, &hf_x509sat_intDay , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509sat_T_intDay },
1076 { 1, &hf_x509sat_bitDay , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_x509sat_T_bitDay },
1077 { 2, &hf_x509sat_dayOf , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_x509sat_XDayOf },
1078 { 0, NULL, 0, 0, 0, NULL }
1081 static int
1082 dissect_x509sat_T_days(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1083 offset = dissect_ber_choice(actx, tree, tvb, offset,
1084 T_days_choice, hf_index, ett_x509sat_T_days,
1085 NULL);
1087 return offset;
1092 static int
1093 dissect_x509sat_NULL(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1094 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
1096 return offset;
1100 static const ber_sequence_t T_intWeek_set_of[1] = {
1101 { &hf_x509sat_intWeek_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x509sat_INTEGER },
1104 static int
1105 dissect_x509sat_T_intWeek(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1106 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1107 T_intWeek_set_of, hf_index, ett_x509sat_T_intWeek);
1109 return offset;
1113 static int * const T_bitWeek_bits[] = {
1114 &hf_x509sat_T_bitWeek_week1,
1115 &hf_x509sat_T_bitWeek_week2,
1116 &hf_x509sat_T_bitWeek_week3,
1117 &hf_x509sat_T_bitWeek_week4,
1118 &hf_x509sat_T_bitWeek_week5,
1119 NULL
1122 static int
1123 dissect_x509sat_T_bitWeek(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1124 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
1125 T_bitWeek_bits, 5, hf_index, ett_x509sat_T_bitWeek,
1126 NULL);
1128 return offset;
1132 static const value_string x509sat_T_weeks_vals[] = {
1133 { 0, "allWeeks" },
1134 { 1, "intWeek" },
1135 { 2, "bitWeek" },
1136 { 0, NULL }
1139 static const ber_choice_t T_weeks_choice[] = {
1140 { 0, &hf_x509sat_allWeeks , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_x509sat_NULL },
1141 { 1, &hf_x509sat_intWeek , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509sat_T_intWeek },
1142 { 2, &hf_x509sat_bitWeek , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_x509sat_T_bitWeek },
1143 { 0, NULL, 0, 0, 0, NULL }
1146 static int
1147 dissect_x509sat_T_weeks(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1148 offset = dissect_ber_choice(actx, tree, tvb, offset,
1149 T_weeks_choice, hf_index, ett_x509sat_T_weeks,
1150 NULL);
1152 return offset;
1156 static const ber_sequence_t T_intMonth_set_of[1] = {
1157 { &hf_x509sat_intMonth_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x509sat_INTEGER },
1160 static int
1161 dissect_x509sat_T_intMonth(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1162 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1163 T_intMonth_set_of, hf_index, ett_x509sat_T_intMonth);
1165 return offset;
1169 static int * const T_bitMonth_bits[] = {
1170 &hf_x509sat_T_bitMonth_january,
1171 &hf_x509sat_T_bitMonth_february,
1172 &hf_x509sat_T_bitMonth_march,
1173 &hf_x509sat_T_bitMonth_april,
1174 &hf_x509sat_T_bitMonth_may,
1175 &hf_x509sat_T_bitMonth_june,
1176 &hf_x509sat_T_bitMonth_july,
1177 &hf_x509sat_T_bitMonth_august,
1178 &hf_x509sat_T_bitMonth_september,
1179 &hf_x509sat_T_bitMonth_october,
1180 &hf_x509sat_T_bitMonth_november,
1181 &hf_x509sat_T_bitMonth_december,
1182 NULL
1185 static int
1186 dissect_x509sat_T_bitMonth(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1187 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
1188 T_bitMonth_bits, 12, hf_index, ett_x509sat_T_bitMonth,
1189 NULL);
1191 return offset;
1195 static const value_string x509sat_T_months_vals[] = {
1196 { 0, "allMonths" },
1197 { 1, "intMonth" },
1198 { 2, "bitMonth" },
1199 { 0, NULL }
1202 static const ber_choice_t T_months_choice[] = {
1203 { 0, &hf_x509sat_allMonths , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_x509sat_NULL },
1204 { 1, &hf_x509sat_intMonth , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509sat_T_intMonth },
1205 { 2, &hf_x509sat_bitMonth , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_x509sat_T_bitMonth },
1206 { 0, NULL, 0, 0, 0, NULL }
1209 static int
1210 dissect_x509sat_T_months(bool 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_choice(actx, tree, tvb, offset,
1212 T_months_choice, hf_index, ett_x509sat_T_months,
1213 NULL);
1215 return offset;
1219 static const ber_sequence_t T_years_set_of[1] = {
1220 { &hf_x509sat_years_item , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x509sat_INTEGER },
1223 static int
1224 dissect_x509sat_T_years(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1225 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1226 T_years_set_of, hf_index, ett_x509sat_T_years);
1228 return offset;
1232 static const ber_sequence_t Period_sequence[] = {
1233 { &hf_x509sat_timesOfDay , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509sat_SET_OF_DayTimeBand },
1234 { &hf_x509sat_days , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509sat_T_days },
1235 { &hf_x509sat_weeks , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509sat_T_weeks },
1236 { &hf_x509sat_months , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_x509sat_T_months },
1237 { &hf_x509sat_years , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_x509sat_T_years },
1238 { NULL, 0, 0, 0, NULL }
1242 dissect_x509sat_Period(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1243 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1244 Period_sequence, hf_index, ett_x509sat_Period);
1246 return offset;
1250 static const ber_sequence_t SET_OF_Period_set_of[1] = {
1251 { &hf_x509sat_periodic_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509sat_Period },
1254 static int
1255 dissect_x509sat_SET_OF_Period(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1256 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1257 SET_OF_Period_set_of, hf_index, ett_x509sat_SET_OF_Period);
1259 return offset;
1263 static const value_string x509sat_T_time_vals[] = {
1264 { 0, "absolute" },
1265 { 1, "periodic" },
1266 { 0, NULL }
1269 static const ber_choice_t T_time_choice[] = {
1270 { 0, &hf_x509sat_absolute , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509sat_T_absolute },
1271 { 1, &hf_x509sat_periodic , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509sat_SET_OF_Period },
1272 { 0, NULL, 0, 0, 0, NULL }
1275 static int
1276 dissect_x509sat_T_time(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1277 offset = dissect_ber_choice(actx, tree, tvb, offset,
1278 T_time_choice, hf_index, ett_x509sat_T_time,
1279 NULL);
1281 return offset;
1286 static int
1287 dissect_x509sat_BOOLEAN(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1288 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
1290 return offset;
1296 dissect_x509sat_TimeZone(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1297 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1298 NULL);
1300 return offset;
1304 static const ber_sequence_t TimeSpecification_sequence[] = {
1305 { &hf_x509sat_time , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509sat_T_time },
1306 { &hf_x509sat_notThisTime , BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509sat_BOOLEAN },
1307 { &hf_x509sat_timeZone , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509sat_TimeZone },
1308 { NULL, 0, 0, 0, NULL }
1312 dissect_x509sat_TimeSpecification(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1313 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1314 TimeSpecification_sequence, hf_index, ett_x509sat_TimeSpecification);
1316 return offset;
1320 static const ber_sequence_t T_between_sequence[] = {
1321 { &hf_x509sat_startTime , BER_CLASS_CON, 0, 0, dissect_x509sat_GeneralizedTime },
1322 { &hf_x509sat_endTime , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509sat_GeneralizedTime },
1323 { &hf_x509sat_entirely , BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509sat_BOOLEAN },
1324 { NULL, 0, 0, 0, NULL }
1327 static int
1328 dissect_x509sat_T_between(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1329 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1330 T_between_sequence, hf_index, ett_x509sat_T_between);
1332 return offset;
1336 const value_string x509sat_TimeAssertion_vals[] = {
1337 { 0, "now" },
1338 { 1, "at" },
1339 { 2, "between" },
1340 { 0, NULL }
1343 static const ber_choice_t TimeAssertion_choice[] = {
1344 { 0, &hf_x509sat_now , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_x509sat_NULL },
1345 { 1, &hf_x509sat_at , BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_x509sat_GeneralizedTime },
1346 { 2, &hf_x509sat_between , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509sat_T_between },
1347 { 0, NULL, 0, 0, 0, NULL }
1351 dissect_x509sat_TimeAssertion(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1352 offset = dissect_ber_choice(actx, tree, tvb, offset,
1353 TimeAssertion_choice, hf_index, ett_x509sat_TimeAssertion,
1354 NULL);
1356 return offset;
1360 const value_string x509sat_LocaleContextSyntax_vals[] = {
1361 { 0, "localeID1" },
1362 { 1, "localeID2" },
1363 { 0, NULL }
1366 static const ber_choice_t LocaleContextSyntax_choice[] = {
1367 { 0, &hf_x509sat_localeID1 , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509sat_OBJECT_IDENTIFIER },
1368 { 1, &hf_x509sat_localeID2 , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_x509sat_DirectoryString },
1369 { 0, NULL, 0, 0, 0, NULL }
1373 dissect_x509sat_LocaleContextSyntax(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1374 offset = dissect_ber_choice(actx, tree, tvb, offset,
1375 LocaleContextSyntax_choice, hf_index, ett_x509sat_LocaleContextSyntax,
1376 NULL);
1378 return offset;
1383 static int
1384 dissect_x509sat_ObjectIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1385 offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
1387 return offset;
1392 static int
1393 dissect_x509sat_OctetString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1394 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1395 NULL);
1397 return offset;
1402 static int
1403 dissect_x509sat_BitString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1404 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
1405 NULL, 0, hf_index, -1,
1406 NULL);
1408 return offset;
1413 static int
1414 dissect_x509sat_Integer(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1415 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1416 NULL);
1418 return offset;
1423 static int
1424 dissect_x509sat_Boolean(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1425 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
1427 return offset;
1432 static int
1433 dissect_x509sat_SyntaxGeneralizedTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1434 offset = dissect_ber_GeneralizedTime(implicit_tag, actx, tree, tvb, offset, hf_index);
1436 return offset;
1441 static int
1442 dissect_x509sat_SyntaxUTCTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1443 char *outstr, *newstr;
1444 uint32_t tvblen;
1446 /* the 2-digit year can only be in the range 1950..2049 https://tools.ietf.org/html/rfc5280#section-4.1.2.5.1 */
1447 offset = dissect_ber_UTCTime(implicit_tag, actx, tree, tvb, offset, hf_index, &outstr, &tvblen);
1448 if (hf_index > 0 && outstr) {
1449 newstr = wmem_strconcat(actx->pinfo->pool, outstr[0] < '5' ? "20": "19", outstr, NULL);
1450 proto_tree_add_string(tree, hf_index, tvb, offset - tvblen, tvblen, newstr);
1454 return offset;
1459 static int
1460 dissect_x509sat_SyntaxNumericString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1461 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
1462 actx, tree, tvb, offset, hf_index,
1463 NULL);
1465 return offset;
1470 static int
1471 dissect_x509sat_SyntaxPrintableString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1472 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1473 actx, tree, tvb, offset, hf_index,
1474 NULL);
1476 return offset;
1481 static int
1482 dissect_x509sat_SyntaxIA5String(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1483 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
1484 actx, tree, tvb, offset, hf_index,
1485 NULL);
1487 return offset;
1492 static int
1493 dissect_x509sat_SyntaxBMPString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1494 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_BMPString,
1495 actx, tree, tvb, offset, hf_index,
1496 NULL);
1498 return offset;
1503 static int
1504 dissect_x509sat_SyntaxUniversalString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1505 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UniversalString,
1506 actx, tree, tvb, offset, hf_index,
1507 NULL);
1509 return offset;
1514 static int
1515 dissect_x509sat_SyntaxUTF8String(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1516 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UTF8String,
1517 actx, tree, tvb, offset, hf_index,
1518 NULL);
1520 return offset;
1525 static int
1526 dissect_x509sat_SyntaxTeletexString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1527 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
1528 actx, tree, tvb, offset, hf_index,
1529 NULL);
1531 return offset;
1536 static int
1537 dissect_x509sat_SyntaxT61String(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1538 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
1539 actx, tree, tvb, offset, hf_index,
1540 NULL);
1542 return offset;
1547 static int
1548 dissect_x509sat_SyntaxVideotexString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1549 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_VideotexString,
1550 actx, tree, tvb, offset, hf_index,
1551 NULL);
1553 return offset;
1558 static int
1559 dissect_x509sat_SyntaxGraphicString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1560 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GraphicString,
1561 actx, tree, tvb, offset, hf_index,
1562 NULL);
1564 return offset;
1569 static int
1570 dissect_x509sat_SyntaxISO646String(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1571 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_VisibleString,
1572 actx, tree, tvb, offset, hf_index,
1573 NULL);
1575 return offset;
1580 static int
1581 dissect_x509sat_SyntaxVisibleString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1582 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_VisibleString,
1583 actx, tree, tvb, offset, hf_index,
1584 NULL);
1586 return offset;
1591 static int
1592 dissect_x509sat_SyntaxGeneralString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1593 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GeneralString,
1594 actx, tree, tvb, offset, hf_index,
1595 NULL);
1597 return offset;
1602 static int
1603 dissect_x509sat_GUID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1604 int8_t ber_class;
1605 bool pc;
1606 int32_t tag;
1607 uint32_t len;
1608 e_guid_t uuid;
1610 if(!implicit_tag){
1611 offset=dissect_ber_identifier(actx->pinfo, tree, tvb, offset, &ber_class, &pc, &tag);
1612 offset=dissect_ber_length(actx->pinfo, tree, tvb, offset, &len, NULL);
1613 } else {
1614 int32_t remaining=tvb_reported_length_remaining(tvb, offset);
1615 len=remaining>0 ? remaining : 0;
1618 tvb_get_ntohguid (tvb, offset, &uuid);
1619 actx->created_item = proto_tree_add_guid(tree, hf_index, tvb, offset, len, &uuid);
1621 return offset;
1624 /*--- PDUs ---*/
1626 static int dissect_DirectoryString_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1627 int offset = 0;
1628 asn1_ctx_t asn1_ctx;
1629 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1630 offset = dissect_x509sat_DirectoryString(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_DirectoryString_PDU);
1631 return offset;
1633 static int dissect_UniqueIdentifier_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1634 int offset = 0;
1635 asn1_ctx_t asn1_ctx;
1636 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1637 offset = dissect_x509sat_UniqueIdentifier(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_UniqueIdentifier_PDU);
1638 return offset;
1640 static int dissect_CountryName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1641 int offset = 0;
1642 asn1_ctx_t asn1_ctx;
1643 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1644 offset = dissect_x509sat_CountryName(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_CountryName_PDU);
1645 return offset;
1647 static int dissect_Guide_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1648 int offset = 0;
1649 asn1_ctx_t asn1_ctx;
1650 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1651 offset = dissect_x509sat_Guide(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_Guide_PDU);
1652 return offset;
1654 static int dissect_EnhancedGuide_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1655 int offset = 0;
1656 asn1_ctx_t asn1_ctx;
1657 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1658 offset = dissect_x509sat_EnhancedGuide(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_EnhancedGuide_PDU);
1659 return offset;
1661 static int dissect_PostalAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1662 int offset = 0;
1663 asn1_ctx_t asn1_ctx;
1664 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1665 offset = dissect_x509sat_PostalAddress(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_PostalAddress_PDU);
1666 return offset;
1668 static int dissect_TelephoneNumber_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1669 int offset = 0;
1670 asn1_ctx_t asn1_ctx;
1671 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1672 offset = dissect_x509sat_TelephoneNumber(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_TelephoneNumber_PDU);
1673 return offset;
1675 static int dissect_TelexNumber_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1676 int offset = 0;
1677 asn1_ctx_t asn1_ctx;
1678 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1679 offset = dissect_x509sat_TelexNumber(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_TelexNumber_PDU);
1680 return offset;
1682 static int dissect_FacsimileTelephoneNumber_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1683 int offset = 0;
1684 asn1_ctx_t asn1_ctx;
1685 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1686 offset = dissect_x509sat_FacsimileTelephoneNumber(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_FacsimileTelephoneNumber_PDU);
1687 return offset;
1689 static int dissect_X121Address_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1690 int offset = 0;
1691 asn1_ctx_t asn1_ctx;
1692 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1693 offset = dissect_x509sat_X121Address(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_X121Address_PDU);
1694 return offset;
1696 static int dissect_InternationalISDNNumber_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1697 int offset = 0;
1698 asn1_ctx_t asn1_ctx;
1699 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1700 offset = dissect_x509sat_InternationalISDNNumber(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_InternationalISDNNumber_PDU);
1701 return offset;
1703 static int dissect_DestinationIndicator_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1704 int offset = 0;
1705 asn1_ctx_t asn1_ctx;
1706 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1707 offset = dissect_x509sat_DestinationIndicator(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_DestinationIndicator_PDU);
1708 return offset;
1710 static int dissect_PreferredDeliveryMethod_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1711 int offset = 0;
1712 asn1_ctx_t asn1_ctx;
1713 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1714 offset = dissect_x509sat_PreferredDeliveryMethod(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_PreferredDeliveryMethod_PDU);
1715 return offset;
1717 static int dissect_PresentationAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1718 int offset = 0;
1719 asn1_ctx_t asn1_ctx;
1720 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1721 offset = dissect_x509sat_PresentationAddress(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_PresentationAddress_PDU);
1722 return offset;
1724 static int dissect_ProtocolInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1725 int offset = 0;
1726 asn1_ctx_t asn1_ctx;
1727 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1728 offset = dissect_x509sat_ProtocolInformation(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_ProtocolInformation_PDU);
1729 return offset;
1731 static int dissect_NameAndOptionalUID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1732 int offset = 0;
1733 asn1_ctx_t asn1_ctx;
1734 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1735 offset = dissect_x509sat_NameAndOptionalUID(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_NameAndOptionalUID_PDU);
1736 return offset;
1738 static int dissect_CaseIgnoreListMatch_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1739 int offset = 0;
1740 asn1_ctx_t asn1_ctx;
1741 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1742 offset = dissect_x509sat_CaseIgnoreListMatch(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_CaseIgnoreListMatch_PDU);
1743 return offset;
1745 static int dissect_ObjectIdentifier_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1746 int offset = 0;
1747 asn1_ctx_t asn1_ctx;
1748 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1749 offset = dissect_x509sat_ObjectIdentifier(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_ObjectIdentifier_PDU);
1750 return offset;
1752 static int dissect_OctetString_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1753 int offset = 0;
1754 asn1_ctx_t asn1_ctx;
1755 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1756 offset = dissect_x509sat_OctetString(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_OctetString_PDU);
1757 return offset;
1759 static int dissect_BitString_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1760 int offset = 0;
1761 asn1_ctx_t asn1_ctx;
1762 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1763 offset = dissect_x509sat_BitString(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_BitString_PDU);
1764 return offset;
1766 static int dissect_Integer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1767 int offset = 0;
1768 asn1_ctx_t asn1_ctx;
1769 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1770 offset = dissect_x509sat_Integer(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_Integer_PDU);
1771 return offset;
1773 static int dissect_Boolean_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1774 int offset = 0;
1775 asn1_ctx_t asn1_ctx;
1776 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1777 offset = dissect_x509sat_Boolean(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_Boolean_PDU);
1778 return offset;
1780 static int dissect_SyntaxGeneralizedTime_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1781 int offset = 0;
1782 asn1_ctx_t asn1_ctx;
1783 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1784 offset = dissect_x509sat_SyntaxGeneralizedTime(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_SyntaxGeneralizedTime_PDU);
1785 return offset;
1787 static int dissect_SyntaxUTCTime_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1788 int offset = 0;
1789 asn1_ctx_t asn1_ctx;
1790 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1791 offset = dissect_x509sat_SyntaxUTCTime(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_SyntaxUTCTime_PDU);
1792 return offset;
1794 static int dissect_SyntaxNumericString_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1795 int offset = 0;
1796 asn1_ctx_t asn1_ctx;
1797 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1798 offset = dissect_x509sat_SyntaxNumericString(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_SyntaxNumericString_PDU);
1799 return offset;
1801 static int dissect_SyntaxPrintableString_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1802 int offset = 0;
1803 asn1_ctx_t asn1_ctx;
1804 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1805 offset = dissect_x509sat_SyntaxPrintableString(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_SyntaxPrintableString_PDU);
1806 return offset;
1808 static int dissect_SyntaxIA5String_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1809 int offset = 0;
1810 asn1_ctx_t asn1_ctx;
1811 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1812 offset = dissect_x509sat_SyntaxIA5String(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_SyntaxIA5String_PDU);
1813 return offset;
1815 static int dissect_SyntaxBMPString_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1816 int offset = 0;
1817 asn1_ctx_t asn1_ctx;
1818 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1819 offset = dissect_x509sat_SyntaxBMPString(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_SyntaxBMPString_PDU);
1820 return offset;
1822 static int dissect_SyntaxUniversalString_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1823 int offset = 0;
1824 asn1_ctx_t asn1_ctx;
1825 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1826 offset = dissect_x509sat_SyntaxUniversalString(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_SyntaxUniversalString_PDU);
1827 return offset;
1829 static int dissect_SyntaxUTF8String_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1830 int offset = 0;
1831 asn1_ctx_t asn1_ctx;
1832 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1833 offset = dissect_x509sat_SyntaxUTF8String(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_SyntaxUTF8String_PDU);
1834 return offset;
1836 static int dissect_SyntaxTeletexString_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1837 int offset = 0;
1838 asn1_ctx_t asn1_ctx;
1839 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1840 offset = dissect_x509sat_SyntaxTeletexString(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_SyntaxTeletexString_PDU);
1841 return offset;
1843 static int dissect_SyntaxT61String_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1844 int offset = 0;
1845 asn1_ctx_t asn1_ctx;
1846 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1847 offset = dissect_x509sat_SyntaxT61String(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_SyntaxT61String_PDU);
1848 return offset;
1850 static int dissect_SyntaxVideotexString_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1851 int offset = 0;
1852 asn1_ctx_t asn1_ctx;
1853 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1854 offset = dissect_x509sat_SyntaxVideotexString(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_SyntaxVideotexString_PDU);
1855 return offset;
1857 static int dissect_SyntaxGraphicString_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1858 int offset = 0;
1859 asn1_ctx_t asn1_ctx;
1860 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1861 offset = dissect_x509sat_SyntaxGraphicString(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_SyntaxGraphicString_PDU);
1862 return offset;
1864 static int dissect_SyntaxISO646String_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1865 int offset = 0;
1866 asn1_ctx_t asn1_ctx;
1867 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1868 offset = dissect_x509sat_SyntaxISO646String(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_SyntaxISO646String_PDU);
1869 return offset;
1871 static int dissect_SyntaxVisibleString_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1872 int offset = 0;
1873 asn1_ctx_t asn1_ctx;
1874 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1875 offset = dissect_x509sat_SyntaxVisibleString(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_SyntaxVisibleString_PDU);
1876 return offset;
1878 static int dissect_SyntaxGeneralString_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1879 int offset = 0;
1880 asn1_ctx_t asn1_ctx;
1881 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1882 offset = dissect_x509sat_SyntaxGeneralString(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_SyntaxGeneralString_PDU);
1883 return offset;
1885 static int dissect_GUID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1886 int offset = 0;
1887 asn1_ctx_t asn1_ctx;
1888 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1889 offset = dissect_x509sat_GUID(false, tvb, offset, &asn1_ctx, tree, hf_x509sat_GUID_PDU);
1890 return offset;
1895 /*--- proto_register_x509sat ----------------------------------------------*/
1896 void proto_register_x509sat(void) {
1898 /* List of fields */
1899 static hf_register_info hf[] = {
1900 { &hf_x509sat_DirectoryString_PDU,
1901 { "DirectoryString", "x509sat.DirectoryString",
1902 FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
1903 NULL, HFILL }},
1904 { &hf_x509sat_UniqueIdentifier_PDU,
1905 { "UniqueIdentifier", "x509sat.UniqueIdentifier",
1906 FT_BYTES, BASE_NONE, NULL, 0,
1907 NULL, HFILL }},
1908 { &hf_x509sat_CountryName_PDU,
1909 { "CountryName", "x509sat.CountryName",
1910 FT_STRING, BASE_NONE, NULL, 0,
1911 NULL, HFILL }},
1912 { &hf_x509sat_Guide_PDU,
1913 { "Guide", "x509sat.Guide_element",
1914 FT_NONE, BASE_NONE, NULL, 0,
1915 NULL, HFILL }},
1916 { &hf_x509sat_EnhancedGuide_PDU,
1917 { "EnhancedGuide", "x509sat.EnhancedGuide_element",
1918 FT_NONE, BASE_NONE, NULL, 0,
1919 NULL, HFILL }},
1920 { &hf_x509sat_PostalAddress_PDU,
1921 { "PostalAddress", "x509sat.PostalAddress",
1922 FT_UINT32, BASE_DEC, NULL, 0,
1923 NULL, HFILL }},
1924 { &hf_x509sat_TelephoneNumber_PDU,
1925 { "TelephoneNumber", "x509sat.TelephoneNumber",
1926 FT_STRING, BASE_NONE, NULL, 0,
1927 NULL, HFILL }},
1928 { &hf_x509sat_TelexNumber_PDU,
1929 { "TelexNumber", "x509sat.TelexNumber_element",
1930 FT_NONE, BASE_NONE, NULL, 0,
1931 NULL, HFILL }},
1932 { &hf_x509sat_FacsimileTelephoneNumber_PDU,
1933 { "FacsimileTelephoneNumber", "x509sat.FacsimileTelephoneNumber_element",
1934 FT_NONE, BASE_NONE, NULL, 0,
1935 NULL, HFILL }},
1936 { &hf_x509sat_X121Address_PDU,
1937 { "X121Address", "x509sat.X121Address",
1938 FT_STRING, BASE_NONE, NULL, 0,
1939 NULL, HFILL }},
1940 { &hf_x509sat_InternationalISDNNumber_PDU,
1941 { "InternationalISDNNumber", "x509sat.InternationalISDNNumber",
1942 FT_STRING, BASE_NONE, NULL, 0,
1943 NULL, HFILL }},
1944 { &hf_x509sat_DestinationIndicator_PDU,
1945 { "DestinationIndicator", "x509sat.DestinationIndicator",
1946 FT_STRING, BASE_NONE, NULL, 0,
1947 NULL, HFILL }},
1948 { &hf_x509sat_PreferredDeliveryMethod_PDU,
1949 { "PreferredDeliveryMethod", "x509sat.PreferredDeliveryMethod",
1950 FT_UINT32, BASE_DEC, NULL, 0,
1951 NULL, HFILL }},
1952 { &hf_x509sat_PresentationAddress_PDU,
1953 { "PresentationAddress", "x509sat.PresentationAddress_element",
1954 FT_NONE, BASE_NONE, NULL, 0,
1955 NULL, HFILL }},
1956 { &hf_x509sat_ProtocolInformation_PDU,
1957 { "ProtocolInformation", "x509sat.ProtocolInformation_element",
1958 FT_NONE, BASE_NONE, NULL, 0,
1959 NULL, HFILL }},
1960 { &hf_x509sat_NameAndOptionalUID_PDU,
1961 { "NameAndOptionalUID", "x509sat.NameAndOptionalUID_element",
1962 FT_NONE, BASE_NONE, NULL, 0,
1963 NULL, HFILL }},
1964 { &hf_x509sat_CaseIgnoreListMatch_PDU,
1965 { "CaseIgnoreListMatch", "x509sat.CaseIgnoreListMatch",
1966 FT_UINT32, BASE_DEC, NULL, 0,
1967 NULL, HFILL }},
1968 { &hf_x509sat_ObjectIdentifier_PDU,
1969 { "ObjectIdentifier", "x509sat.ObjectIdentifier",
1970 FT_OID, BASE_NONE, NULL, 0,
1971 NULL, HFILL }},
1972 { &hf_x509sat_OctetString_PDU,
1973 { "OctetString", "x509sat.OctetString",
1974 FT_BYTES, BASE_NONE, NULL, 0,
1975 NULL, HFILL }},
1976 { &hf_x509sat_BitString_PDU,
1977 { "BitString", "x509sat.BitString",
1978 FT_BYTES, BASE_NONE, NULL, 0,
1979 NULL, HFILL }},
1980 { &hf_x509sat_Integer_PDU,
1981 { "Integer", "x509sat.Integer",
1982 FT_INT32, BASE_DEC, NULL, 0,
1983 NULL, HFILL }},
1984 { &hf_x509sat_Boolean_PDU,
1985 { "Boolean", "x509sat.Boolean",
1986 FT_BOOLEAN, BASE_NONE, NULL, 0,
1987 NULL, HFILL }},
1988 { &hf_x509sat_SyntaxGeneralizedTime_PDU,
1989 { "GeneralizedTime", "x509sat.GeneralizedTime",
1990 FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
1991 NULL, HFILL }},
1992 { &hf_x509sat_SyntaxUTCTime_PDU,
1993 { "UTCTime", "x509sat.UTCTime",
1994 FT_STRING, BASE_NONE, NULL, 0,
1995 NULL, HFILL }},
1996 { &hf_x509sat_SyntaxNumericString_PDU,
1997 { "NumericString", "x509sat.NumericString",
1998 FT_STRING, BASE_NONE, NULL, 0,
1999 NULL, HFILL }},
2000 { &hf_x509sat_SyntaxPrintableString_PDU,
2001 { "PrintableString", "x509sat.PrintableString",
2002 FT_STRING, BASE_NONE, NULL, 0,
2003 NULL, HFILL }},
2004 { &hf_x509sat_SyntaxIA5String_PDU,
2005 { "IA5String", "x509sat.IA5String",
2006 FT_STRING, BASE_NONE, NULL, 0,
2007 NULL, HFILL }},
2008 { &hf_x509sat_SyntaxBMPString_PDU,
2009 { "BMPString", "x509sat.BMPString",
2010 FT_STRING, BASE_NONE, NULL, 0,
2011 NULL, HFILL }},
2012 { &hf_x509sat_SyntaxUniversalString_PDU,
2013 { "UniversalString", "x509sat.UniversalString",
2014 FT_STRING, BASE_NONE, NULL, 0,
2015 NULL, HFILL }},
2016 { &hf_x509sat_SyntaxUTF8String_PDU,
2017 { "UTF8String", "x509sat.UTF8String",
2018 FT_STRING, BASE_NONE, NULL, 0,
2019 NULL, HFILL }},
2020 { &hf_x509sat_SyntaxTeletexString_PDU,
2021 { "TeletexString", "x509sat.TeletexString",
2022 FT_STRING, BASE_NONE, NULL, 0,
2023 NULL, HFILL }},
2024 { &hf_x509sat_SyntaxT61String_PDU,
2025 { "T61String", "x509sat.T61String",
2026 FT_STRING, BASE_NONE, NULL, 0,
2027 NULL, HFILL }},
2028 { &hf_x509sat_SyntaxVideotexString_PDU,
2029 { "VideotexString", "x509sat.VideotexString",
2030 FT_STRING, BASE_NONE, NULL, 0,
2031 NULL, HFILL }},
2032 { &hf_x509sat_SyntaxGraphicString_PDU,
2033 { "GraphicString", "x509sat.GraphicString",
2034 FT_STRING, BASE_NONE, NULL, 0,
2035 NULL, HFILL }},
2036 { &hf_x509sat_SyntaxISO646String_PDU,
2037 { "ISO646String", "x509sat.ISO646String",
2038 FT_STRING, BASE_NONE, NULL, 0,
2039 NULL, HFILL }},
2040 { &hf_x509sat_SyntaxVisibleString_PDU,
2041 { "VisibleString", "x509sat.VisibleString",
2042 FT_STRING, BASE_NONE, NULL, 0,
2043 NULL, HFILL }},
2044 { &hf_x509sat_SyntaxGeneralString_PDU,
2045 { "GeneralString", "x509sat.GeneralString",
2046 FT_STRING, BASE_NONE, NULL, 0,
2047 NULL, HFILL }},
2048 { &hf_x509sat_GUID_PDU,
2049 { "GUID", "x509sat.GUID",
2050 FT_GUID, BASE_NONE, NULL, 0,
2051 NULL, HFILL }},
2052 { &hf_x509sat_teletexString,
2053 { "teletexString", "x509sat.teletexString",
2054 FT_STRING, BASE_NONE, NULL, 0,
2055 NULL, HFILL }},
2056 { &hf_x509sat_printableString,
2057 { "printableString", "x509sat.printableString",
2058 FT_STRING, BASE_NONE, NULL, 0,
2059 NULL, HFILL }},
2060 { &hf_x509sat_universalString,
2061 { "universalString", "x509sat.universalString",
2062 FT_STRING, BASE_NONE, NULL, 0,
2063 NULL, HFILL }},
2064 { &hf_x509sat_bmpString,
2065 { "bmpString", "x509sat.bmpString",
2066 FT_STRING, BASE_NONE, NULL, 0,
2067 NULL, HFILL }},
2068 { &hf_x509sat_uTF8String,
2069 { "uTF8String", "x509sat.uTF8String",
2070 FT_STRING, BASE_NONE, NULL, 0,
2071 NULL, HFILL }},
2072 { &hf_x509sat_objectClass,
2073 { "objectClass", "x509sat.objectClass",
2074 FT_OID, BASE_NONE, NULL, 0,
2075 "OBJECT_IDENTIFIER", HFILL }},
2076 { &hf_x509sat_criteria,
2077 { "criteria", "x509sat.criteria",
2078 FT_UINT32, BASE_DEC, VALS(x509sat_Criteria_vals), 0,
2079 NULL, HFILL }},
2080 { &hf_x509sat_type,
2081 { "type", "x509sat.type",
2082 FT_UINT32, BASE_DEC, VALS(x509sat_CriteriaItem_vals), 0,
2083 "CriteriaItem", HFILL }},
2084 { &hf_x509sat_and,
2085 { "and", "x509sat.and",
2086 FT_UINT32, BASE_DEC, NULL, 0,
2087 "SET_OF_Criteria", HFILL }},
2088 { &hf_x509sat_and_item,
2089 { "Criteria", "x509sat.Criteria",
2090 FT_UINT32, BASE_DEC, VALS(x509sat_Criteria_vals), 0,
2091 NULL, HFILL }},
2092 { &hf_x509sat_or,
2093 { "or", "x509sat.or",
2094 FT_UINT32, BASE_DEC, NULL, 0,
2095 "SET_OF_Criteria", HFILL }},
2096 { &hf_x509sat_or_item,
2097 { "Criteria", "x509sat.Criteria",
2098 FT_UINT32, BASE_DEC, VALS(x509sat_Criteria_vals), 0,
2099 NULL, HFILL }},
2100 { &hf_x509sat_not,
2101 { "not", "x509sat.not",
2102 FT_UINT32, BASE_DEC, VALS(x509sat_Criteria_vals), 0,
2103 "Criteria", HFILL }},
2104 { &hf_x509sat_equality,
2105 { "equality", "x509sat.equality",
2106 FT_OID, BASE_NONE, NULL, 0,
2107 "AttributeType", HFILL }},
2108 { &hf_x509sat_substrings,
2109 { "substrings", "x509sat.substrings",
2110 FT_OID, BASE_NONE, NULL, 0,
2111 "AttributeType", HFILL }},
2112 { &hf_x509sat_greaterOrEqual,
2113 { "greaterOrEqual", "x509sat.greaterOrEqual",
2114 FT_OID, BASE_NONE, NULL, 0,
2115 "AttributeType", HFILL }},
2116 { &hf_x509sat_lessOrEqual,
2117 { "lessOrEqual", "x509sat.lessOrEqual",
2118 FT_OID, BASE_NONE, NULL, 0,
2119 "AttributeType", HFILL }},
2120 { &hf_x509sat_approximateMatch,
2121 { "approximateMatch", "x509sat.approximateMatch",
2122 FT_OID, BASE_NONE, NULL, 0,
2123 "AttributeType", HFILL }},
2124 { &hf_x509sat_subset,
2125 { "subset", "x509sat.subset",
2126 FT_INT32, BASE_DEC, VALS(x509sat_T_subset_vals), 0,
2127 NULL, HFILL }},
2128 { &hf_x509sat_PostalAddress_item,
2129 { "DirectoryString", "x509sat.DirectoryString",
2130 FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
2131 NULL, HFILL }},
2132 { &hf_x509sat_telexNumber,
2133 { "telexNumber", "x509sat.telexNumber",
2134 FT_STRING, BASE_NONE, NULL, 0,
2135 "PrintableString", HFILL }},
2136 { &hf_x509sat_countryCode,
2137 { "countryCode", "x509sat.countryCode",
2138 FT_STRING, BASE_NONE, NULL, 0,
2139 "PrintableString", HFILL }},
2140 { &hf_x509sat_answerback,
2141 { "answerback", "x509sat.answerback",
2142 FT_STRING, BASE_NONE, NULL, 0,
2143 "PrintableString", HFILL }},
2144 { &hf_x509sat_telephoneNumber,
2145 { "telephoneNumber", "x509sat.telephoneNumber",
2146 FT_STRING, BASE_NONE, NULL, 0,
2147 NULL, HFILL }},
2148 { &hf_x509sat_parameters,
2149 { "parameters", "x509sat.parameters",
2150 FT_BYTES, BASE_NONE, NULL, 0,
2151 "G3FacsimileNonBasicParameters", HFILL }},
2152 { &hf_x509sat_PreferredDeliveryMethod_item,
2153 { "PreferredDeliveryMethod item", "x509sat.PreferredDeliveryMethod_item",
2154 FT_INT32, BASE_DEC, VALS(x509sat_PreferredDeliveryMethod_item_vals), 0,
2155 NULL, HFILL }},
2156 { &hf_x509sat_pSelector,
2157 { "pSelector", "x509sat.pSelector",
2158 FT_BYTES, BASE_NONE, NULL, 0,
2159 "OCTET_STRING", HFILL }},
2160 { &hf_x509sat_sSelector,
2161 { "sSelector", "x509sat.sSelector",
2162 FT_BYTES, BASE_NONE, NULL, 0,
2163 "OCTET_STRING", HFILL }},
2164 { &hf_x509sat_tSelector,
2165 { "tSelector", "x509sat.tSelector",
2166 FT_BYTES, BASE_NONE, NULL, 0,
2167 "OCTET_STRING", HFILL }},
2168 { &hf_x509sat_nAddresses,
2169 { "nAddresses", "x509sat.nAddresses",
2170 FT_UINT32, BASE_DEC, NULL, 0,
2171 NULL, HFILL }},
2172 { &hf_x509sat_nAddresses_item,
2173 { "nAddresses item", "x509sat.nAddresses_item",
2174 FT_BYTES, BASE_NONE, NULL, 0,
2175 "OCTET_STRING", HFILL }},
2176 { &hf_x509sat_nAddress,
2177 { "nAddress", "x509sat.nAddress",
2178 FT_BYTES, BASE_NONE, NULL, 0,
2179 "OCTET_STRING", HFILL }},
2180 { &hf_x509sat_profiles,
2181 { "profiles", "x509sat.profiles",
2182 FT_UINT32, BASE_DEC, NULL, 0,
2183 NULL, HFILL }},
2184 { &hf_x509sat_profiles_item,
2185 { "profiles item", "x509sat.profiles_item",
2186 FT_OID, BASE_NONE, NULL, 0,
2187 "OBJECT_IDENTIFIER", HFILL }},
2188 { &hf_x509sat_dn,
2189 { "dn", "x509sat.dn",
2190 FT_UINT32, BASE_DEC, NULL, 0,
2191 "DistinguishedName", HFILL }},
2192 { &hf_x509sat_uid,
2193 { "uid", "x509sat.uid",
2194 FT_BYTES, BASE_NONE, NULL, 0,
2195 "UniqueIdentifier", HFILL }},
2196 { &hf_x509sat_matchingRuleUsed,
2197 { "matchingRuleUsed", "x509sat.matchingRuleUsed",
2198 FT_OID, BASE_NONE, NULL, 0,
2199 "OBJECT_IDENTIFIER", HFILL }},
2200 { &hf_x509sat_attributeList,
2201 { "attributeList", "x509sat.attributeList",
2202 FT_UINT32, BASE_DEC, NULL, 0,
2203 "SEQUENCE_OF_AttributeValueAssertion", HFILL }},
2204 { &hf_x509sat_attributeList_item,
2205 { "AttributeValueAssertion", "x509sat.AttributeValueAssertion_element",
2206 FT_NONE, BASE_NONE, NULL, 0,
2207 NULL, HFILL }},
2208 { &hf_x509sat_SubstringAssertion_item,
2209 { "SubstringAssertion item", "x509sat.SubstringAssertion_item",
2210 FT_UINT32, BASE_DEC, VALS(x509sat_SubstringAssertion_item_vals), 0,
2211 NULL, HFILL }},
2212 { &hf_x509sat_initial,
2213 { "initial", "x509sat.initial",
2214 FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
2215 "DirectoryString", HFILL }},
2216 { &hf_x509sat_any,
2217 { "any", "x509sat.any",
2218 FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
2219 "DirectoryString", HFILL }},
2220 { &hf_x509sat_final,
2221 { "final", "x509sat.final",
2222 FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
2223 "DirectoryString", HFILL }},
2224 { &hf_x509sat_control,
2225 { "control", "x509sat.control_element",
2226 FT_NONE, BASE_NONE, NULL, 0,
2227 "Attribute", HFILL }},
2228 { &hf_x509sat_CaseIgnoreListMatch_item,
2229 { "DirectoryString", "x509sat.DirectoryString",
2230 FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
2231 NULL, HFILL }},
2232 { &hf_x509sat_OctetSubstringAssertion_item,
2233 { "OctetSubstringAssertion item", "x509sat.OctetSubstringAssertion_item",
2234 FT_UINT32, BASE_DEC, VALS(x509sat_OctetSubstringAssertion_item_vals), 0,
2235 NULL, HFILL }},
2236 { &hf_x509sat_initial_substring,
2237 { "initial", "x509sat.initial",
2238 FT_BYTES, BASE_NONE, NULL, 0,
2239 "OCTET_STRING", HFILL }},
2240 { &hf_x509sat_any_substring,
2241 { "any", "x509sat.any",
2242 FT_BYTES, BASE_NONE, NULL, 0,
2243 "OCTET_STRING", HFILL }},
2244 { &hf_x509sat_finall_substring,
2245 { "final", "x509sat.final",
2246 FT_BYTES, BASE_NONE, NULL, 0,
2247 "OCTET_STRING", HFILL }},
2248 { &hf_x509sat_ZonalSelect_item,
2249 { "AttributeType", "x509sat.AttributeType",
2250 FT_OID, BASE_NONE, NULL, 0,
2251 NULL, HFILL }},
2252 { &hf_x509sat_time,
2253 { "time", "x509sat.time",
2254 FT_UINT32, BASE_DEC, VALS(x509sat_T_time_vals), 0,
2255 NULL, HFILL }},
2256 { &hf_x509sat_absolute,
2257 { "absolute", "x509sat.absolute_element",
2258 FT_NONE, BASE_NONE, NULL, 0,
2259 NULL, HFILL }},
2260 { &hf_x509sat_startTime,
2261 { "startTime", "x509sat.startTime",
2262 FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
2263 "GeneralizedTime", HFILL }},
2264 { &hf_x509sat_endTime,
2265 { "endTime", "x509sat.endTime",
2266 FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
2267 "GeneralizedTime", HFILL }},
2268 { &hf_x509sat_periodic,
2269 { "periodic", "x509sat.periodic",
2270 FT_UINT32, BASE_DEC, NULL, 0,
2271 "SET_OF_Period", HFILL }},
2272 { &hf_x509sat_periodic_item,
2273 { "Period", "x509sat.Period_element",
2274 FT_NONE, BASE_NONE, NULL, 0,
2275 NULL, HFILL }},
2276 { &hf_x509sat_notThisTime,
2277 { "notThisTime", "x509sat.notThisTime",
2278 FT_BOOLEAN, BASE_NONE, NULL, 0,
2279 "BOOLEAN", HFILL }},
2280 { &hf_x509sat_timeZone,
2281 { "timeZone", "x509sat.timeZone",
2282 FT_INT32, BASE_DEC, NULL, 0,
2283 NULL, HFILL }},
2284 { &hf_x509sat_timesOfDay,
2285 { "timesOfDay", "x509sat.timesOfDay",
2286 FT_UINT32, BASE_DEC, NULL, 0,
2287 "SET_OF_DayTimeBand", HFILL }},
2288 { &hf_x509sat_timesOfDay_item,
2289 { "DayTimeBand", "x509sat.DayTimeBand_element",
2290 FT_NONE, BASE_NONE, NULL, 0,
2291 NULL, HFILL }},
2292 { &hf_x509sat_days,
2293 { "days", "x509sat.days",
2294 FT_UINT32, BASE_DEC, VALS(x509sat_T_days_vals), 0,
2295 NULL, HFILL }},
2296 { &hf_x509sat_intDay,
2297 { "intDay", "x509sat.intDay",
2298 FT_UINT32, BASE_DEC, NULL, 0,
2299 NULL, HFILL }},
2300 { &hf_x509sat_intDay_item,
2301 { "intDay item", "x509sat.intDay_item",
2302 FT_INT32, BASE_DEC, NULL, 0,
2303 "INTEGER", HFILL }},
2304 { &hf_x509sat_bitDay,
2305 { "bitDay", "x509sat.bitDay",
2306 FT_BYTES, BASE_NONE, NULL, 0,
2307 NULL, HFILL }},
2308 { &hf_x509sat_dayOf,
2309 { "dayOf", "x509sat.dayOf",
2310 FT_UINT32, BASE_DEC, VALS(x509sat_XDayOf_vals), 0,
2311 "XDayOf", HFILL }},
2312 { &hf_x509sat_weeks,
2313 { "weeks", "x509sat.weeks",
2314 FT_UINT32, BASE_DEC, VALS(x509sat_T_weeks_vals), 0,
2315 NULL, HFILL }},
2316 { &hf_x509sat_allWeeks,
2317 { "allWeeks", "x509sat.allWeeks_element",
2318 FT_NONE, BASE_NONE, NULL, 0,
2319 NULL, HFILL }},
2320 { &hf_x509sat_intWeek,
2321 { "intWeek", "x509sat.intWeek",
2322 FT_UINT32, BASE_DEC, NULL, 0,
2323 NULL, HFILL }},
2324 { &hf_x509sat_intWeek_item,
2325 { "intWeek item", "x509sat.intWeek_item",
2326 FT_INT32, BASE_DEC, NULL, 0,
2327 "INTEGER", HFILL }},
2328 { &hf_x509sat_bitWeek,
2329 { "bitWeek", "x509sat.bitWeek",
2330 FT_BYTES, BASE_NONE, NULL, 0,
2331 NULL, HFILL }},
2332 { &hf_x509sat_months,
2333 { "months", "x509sat.months",
2334 FT_UINT32, BASE_DEC, VALS(x509sat_T_months_vals), 0,
2335 NULL, HFILL }},
2336 { &hf_x509sat_allMonths,
2337 { "allMonths", "x509sat.allMonths_element",
2338 FT_NONE, BASE_NONE, NULL, 0,
2339 NULL, HFILL }},
2340 { &hf_x509sat_intMonth,
2341 { "intMonth", "x509sat.intMonth",
2342 FT_UINT32, BASE_DEC, NULL, 0,
2343 NULL, HFILL }},
2344 { &hf_x509sat_intMonth_item,
2345 { "intMonth item", "x509sat.intMonth_item",
2346 FT_INT32, BASE_DEC, NULL, 0,
2347 "INTEGER", HFILL }},
2348 { &hf_x509sat_bitMonth,
2349 { "bitMonth", "x509sat.bitMonth",
2350 FT_BYTES, BASE_NONE, NULL, 0,
2351 NULL, HFILL }},
2352 { &hf_x509sat_years,
2353 { "years", "x509sat.years",
2354 FT_UINT32, BASE_DEC, NULL, 0,
2355 NULL, HFILL }},
2356 { &hf_x509sat_years_item,
2357 { "years item", "x509sat.years_item",
2358 FT_INT32, BASE_DEC, NULL, 0,
2359 "INTEGER", HFILL }},
2360 { &hf_x509sat_first_dayof,
2361 { "first", "x509sat.first",
2362 FT_UINT32, BASE_DEC, VALS(x509sat_NamedDay_vals), 0,
2363 "NamedDay", HFILL }},
2364 { &hf_x509sat_second_dayof,
2365 { "second", "x509sat.second",
2366 FT_UINT32, BASE_DEC, VALS(x509sat_NamedDay_vals), 0,
2367 "NamedDay", HFILL }},
2368 { &hf_x509sat_third_dayof,
2369 { "third", "x509sat.third",
2370 FT_UINT32, BASE_DEC, VALS(x509sat_NamedDay_vals), 0,
2371 "NamedDay", HFILL }},
2372 { &hf_x509sat_fourth_dayof,
2373 { "fourth", "x509sat.fourth",
2374 FT_UINT32, BASE_DEC, VALS(x509sat_NamedDay_vals), 0,
2375 "NamedDay", HFILL }},
2376 { &hf_x509sat_fifth_dayof,
2377 { "fifth", "x509sat.fifth",
2378 FT_UINT32, BASE_DEC, VALS(x509sat_NamedDay_vals), 0,
2379 "NamedDay", HFILL }},
2380 { &hf_x509sat_intNamedDays,
2381 { "intNamedDays", "x509sat.intNamedDays",
2382 FT_UINT32, BASE_DEC, VALS(x509sat_T_intNamedDays_vals), 0,
2383 NULL, HFILL }},
2384 { &hf_x509sat_bitNamedDays,
2385 { "bitNamedDays", "x509sat.bitNamedDays",
2386 FT_BYTES, BASE_NONE, NULL, 0,
2387 NULL, HFILL }},
2388 { &hf_x509sat_startDayTime,
2389 { "startDayTime", "x509sat.startDayTime_element",
2390 FT_NONE, BASE_NONE, NULL, 0,
2391 "DayTime", HFILL }},
2392 { &hf_x509sat_endDayTime,
2393 { "endDayTime", "x509sat.endDayTime_element",
2394 FT_NONE, BASE_NONE, NULL, 0,
2395 "DayTime", HFILL }},
2396 { &hf_x509sat_hour,
2397 { "hour", "x509sat.hour",
2398 FT_INT32, BASE_DEC, NULL, 0,
2399 "INTEGER", HFILL }},
2400 { &hf_x509sat_minute,
2401 { "minute", "x509sat.minute",
2402 FT_INT32, BASE_DEC, NULL, 0,
2403 "INTEGER", HFILL }},
2404 { &hf_x509sat_second,
2405 { "second", "x509sat.second",
2406 FT_INT32, BASE_DEC, NULL, 0,
2407 "INTEGER", HFILL }},
2408 { &hf_x509sat_now,
2409 { "now", "x509sat.now_element",
2410 FT_NONE, BASE_NONE, NULL, 0,
2411 NULL, HFILL }},
2412 { &hf_x509sat_at,
2413 { "at", "x509sat.at",
2414 FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
2415 "GeneralizedTime", HFILL }},
2416 { &hf_x509sat_between,
2417 { "between", "x509sat.between_element",
2418 FT_NONE, BASE_NONE, NULL, 0,
2419 NULL, HFILL }},
2420 { &hf_x509sat_entirely,
2421 { "entirely", "x509sat.entirely",
2422 FT_BOOLEAN, BASE_NONE, NULL, 0,
2423 "BOOLEAN", HFILL }},
2424 { &hf_x509sat_localeID1,
2425 { "localeID1", "x509sat.localeID1",
2426 FT_OID, BASE_NONE, NULL, 0,
2427 "OBJECT_IDENTIFIER", HFILL }},
2428 { &hf_x509sat_localeID2,
2429 { "localeID2", "x509sat.localeID2",
2430 FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
2431 "DirectoryString", HFILL }},
2432 { &hf_x509sat_T_bitDay_sunday,
2433 { "sunday", "x509sat.T.bitDay.sunday",
2434 FT_BOOLEAN, 8, NULL, 0x80,
2435 NULL, HFILL }},
2436 { &hf_x509sat_T_bitDay_monday,
2437 { "monday", "x509sat.T.bitDay.monday",
2438 FT_BOOLEAN, 8, NULL, 0x40,
2439 NULL, HFILL }},
2440 { &hf_x509sat_T_bitDay_tuesday,
2441 { "tuesday", "x509sat.T.bitDay.tuesday",
2442 FT_BOOLEAN, 8, NULL, 0x20,
2443 NULL, HFILL }},
2444 { &hf_x509sat_T_bitDay_wednesday,
2445 { "wednesday", "x509sat.T.bitDay.wednesday",
2446 FT_BOOLEAN, 8, NULL, 0x10,
2447 NULL, HFILL }},
2448 { &hf_x509sat_T_bitDay_thursday,
2449 { "thursday", "x509sat.T.bitDay.thursday",
2450 FT_BOOLEAN, 8, NULL, 0x08,
2451 NULL, HFILL }},
2452 { &hf_x509sat_T_bitDay_friday,
2453 { "friday", "x509sat.T.bitDay.friday",
2454 FT_BOOLEAN, 8, NULL, 0x04,
2455 NULL, HFILL }},
2456 { &hf_x509sat_T_bitDay_saturday,
2457 { "saturday", "x509sat.T.bitDay.saturday",
2458 FT_BOOLEAN, 8, NULL, 0x02,
2459 NULL, HFILL }},
2460 { &hf_x509sat_T_bitWeek_week1,
2461 { "week1", "x509sat.T.bitWeek.week1",
2462 FT_BOOLEAN, 8, NULL, 0x80,
2463 NULL, HFILL }},
2464 { &hf_x509sat_T_bitWeek_week2,
2465 { "week2", "x509sat.T.bitWeek.week2",
2466 FT_BOOLEAN, 8, NULL, 0x40,
2467 NULL, HFILL }},
2468 { &hf_x509sat_T_bitWeek_week3,
2469 { "week3", "x509sat.T.bitWeek.week3",
2470 FT_BOOLEAN, 8, NULL, 0x20,
2471 NULL, HFILL }},
2472 { &hf_x509sat_T_bitWeek_week4,
2473 { "week4", "x509sat.T.bitWeek.week4",
2474 FT_BOOLEAN, 8, NULL, 0x10,
2475 NULL, HFILL }},
2476 { &hf_x509sat_T_bitWeek_week5,
2477 { "week5", "x509sat.T.bitWeek.week5",
2478 FT_BOOLEAN, 8, NULL, 0x08,
2479 NULL, HFILL }},
2480 { &hf_x509sat_T_bitMonth_january,
2481 { "january", "x509sat.T.bitMonth.january",
2482 FT_BOOLEAN, 8, NULL, 0x80,
2483 NULL, HFILL }},
2484 { &hf_x509sat_T_bitMonth_february,
2485 { "february", "x509sat.T.bitMonth.february",
2486 FT_BOOLEAN, 8, NULL, 0x40,
2487 NULL, HFILL }},
2488 { &hf_x509sat_T_bitMonth_march,
2489 { "march", "x509sat.T.bitMonth.march",
2490 FT_BOOLEAN, 8, NULL, 0x20,
2491 NULL, HFILL }},
2492 { &hf_x509sat_T_bitMonth_april,
2493 { "april", "x509sat.T.bitMonth.april",
2494 FT_BOOLEAN, 8, NULL, 0x10,
2495 NULL, HFILL }},
2496 { &hf_x509sat_T_bitMonth_may,
2497 { "may", "x509sat.T.bitMonth.may",
2498 FT_BOOLEAN, 8, NULL, 0x08,
2499 NULL, HFILL }},
2500 { &hf_x509sat_T_bitMonth_june,
2501 { "june", "x509sat.T.bitMonth.june",
2502 FT_BOOLEAN, 8, NULL, 0x04,
2503 NULL, HFILL }},
2504 { &hf_x509sat_T_bitMonth_july,
2505 { "july", "x509sat.T.bitMonth.july",
2506 FT_BOOLEAN, 8, NULL, 0x02,
2507 NULL, HFILL }},
2508 { &hf_x509sat_T_bitMonth_august,
2509 { "august", "x509sat.T.bitMonth.august",
2510 FT_BOOLEAN, 8, NULL, 0x01,
2511 NULL, HFILL }},
2512 { &hf_x509sat_T_bitMonth_september,
2513 { "september", "x509sat.T.bitMonth.september",
2514 FT_BOOLEAN, 8, NULL, 0x80,
2515 NULL, HFILL }},
2516 { &hf_x509sat_T_bitMonth_october,
2517 { "october", "x509sat.T.bitMonth.october",
2518 FT_BOOLEAN, 8, NULL, 0x40,
2519 NULL, HFILL }},
2520 { &hf_x509sat_T_bitMonth_november,
2521 { "november", "x509sat.T.bitMonth.november",
2522 FT_BOOLEAN, 8, NULL, 0x20,
2523 NULL, HFILL }},
2524 { &hf_x509sat_T_bitMonth_december,
2525 { "december", "x509sat.T.bitMonth.december",
2526 FT_BOOLEAN, 8, NULL, 0x10,
2527 NULL, HFILL }},
2528 { &hf_x509sat_T_bitNamedDays_sunday,
2529 { "sunday", "x509sat.T.bitNamedDays.sunday",
2530 FT_BOOLEAN, 8, NULL, 0x80,
2531 NULL, HFILL }},
2532 { &hf_x509sat_T_bitNamedDays_monday,
2533 { "monday", "x509sat.T.bitNamedDays.monday",
2534 FT_BOOLEAN, 8, NULL, 0x40,
2535 NULL, HFILL }},
2536 { &hf_x509sat_T_bitNamedDays_tuesday,
2537 { "tuesday", "x509sat.T.bitNamedDays.tuesday",
2538 FT_BOOLEAN, 8, NULL, 0x20,
2539 NULL, HFILL }},
2540 { &hf_x509sat_T_bitNamedDays_wednesday,
2541 { "wednesday", "x509sat.T.bitNamedDays.wednesday",
2542 FT_BOOLEAN, 8, NULL, 0x10,
2543 NULL, HFILL }},
2544 { &hf_x509sat_T_bitNamedDays_thursday,
2545 { "thursday", "x509sat.T.bitNamedDays.thursday",
2546 FT_BOOLEAN, 8, NULL, 0x08,
2547 NULL, HFILL }},
2548 { &hf_x509sat_T_bitNamedDays_friday,
2549 { "friday", "x509sat.T.bitNamedDays.friday",
2550 FT_BOOLEAN, 8, NULL, 0x04,
2551 NULL, HFILL }},
2552 { &hf_x509sat_T_bitNamedDays_saturday,
2553 { "saturday", "x509sat.T.bitNamedDays.saturday",
2554 FT_BOOLEAN, 8, NULL, 0x02,
2555 NULL, HFILL }},
2558 /* List of subtrees */
2559 static int *ett[] = {
2560 &ett_x509sat_DirectoryString,
2561 &ett_x509sat_Guide,
2562 &ett_x509sat_Criteria,
2563 &ett_x509sat_SET_OF_Criteria,
2564 &ett_x509sat_CriteriaItem,
2565 &ett_x509sat_EnhancedGuide,
2566 &ett_x509sat_PostalAddress,
2567 &ett_x509sat_TelexNumber,
2568 &ett_x509sat_FacsimileTelephoneNumber,
2569 &ett_x509sat_PreferredDeliveryMethod,
2570 &ett_x509sat_PresentationAddress,
2571 &ett_x509sat_T_nAddresses,
2572 &ett_x509sat_ProtocolInformation,
2573 &ett_x509sat_T_profiles,
2574 &ett_x509sat_NameAndOptionalUID,
2575 &ett_x509sat_MultipleMatchingLocalities,
2576 &ett_x509sat_SEQUENCE_OF_AttributeValueAssertion,
2577 &ett_x509sat_SubstringAssertion,
2578 &ett_x509sat_SubstringAssertion_item,
2579 &ett_x509sat_CaseIgnoreListMatch,
2580 &ett_x509sat_OctetSubstringAssertion,
2581 &ett_x509sat_OctetSubstringAssertion_item,
2582 &ett_x509sat_ZonalSelect,
2583 &ett_x509sat_TimeSpecification,
2584 &ett_x509sat_T_time,
2585 &ett_x509sat_T_absolute,
2586 &ett_x509sat_SET_OF_Period,
2587 &ett_x509sat_Period,
2588 &ett_x509sat_SET_OF_DayTimeBand,
2589 &ett_x509sat_T_days,
2590 &ett_x509sat_T_intDay,
2591 &ett_x509sat_T_bitDay,
2592 &ett_x509sat_T_weeks,
2593 &ett_x509sat_T_intWeek,
2594 &ett_x509sat_T_bitWeek,
2595 &ett_x509sat_T_months,
2596 &ett_x509sat_T_intMonth,
2597 &ett_x509sat_T_bitMonth,
2598 &ett_x509sat_T_years,
2599 &ett_x509sat_XDayOf,
2600 &ett_x509sat_NamedDay,
2601 &ett_x509sat_T_bitNamedDays,
2602 &ett_x509sat_DayTimeBand,
2603 &ett_x509sat_DayTime,
2604 &ett_x509sat_TimeAssertion,
2605 &ett_x509sat_T_between,
2606 &ett_x509sat_LocaleContextSyntax,
2609 /* Register protocol */
2610 proto_x509sat = proto_register_protocol(PNAME, PSNAME, PFNAME);
2612 /* Register fields and subtrees */
2613 proto_register_field_array(proto_x509sat, hf, array_length(hf));
2614 proto_register_subtree_array(ett, array_length(ett));
2616 /*--- Syntax registrations ---*/
2617 register_ber_syntax_dissector("BitString", proto_x509sat, dissect_BitString_PDU);
2618 register_ber_syntax_dissector("Boolean", proto_x509sat, dissect_Boolean_PDU);
2619 register_ber_syntax_dissector("CaseIgnoreListMatch", proto_x509sat, dissect_CaseIgnoreListMatch_PDU);
2620 register_ber_syntax_dissector("CountryName", proto_x509sat, dissect_CountryName_PDU);
2621 register_ber_syntax_dissector("DestinationIndicator", proto_x509sat, dissect_DestinationIndicator_PDU);
2622 register_ber_syntax_dissector("DirectoryString", proto_x509sat, dissect_DirectoryString_PDU);
2623 register_ber_syntax_dissector("EnhancedGuide", proto_x509sat, dissect_EnhancedGuide_PDU);
2624 register_ber_syntax_dissector("FacsimileTelephoneNumber", proto_x509sat, dissect_FacsimileTelephoneNumber_PDU);
2625 register_ber_syntax_dissector("GUID", proto_x509sat, dissect_GUID_PDU);
2626 register_ber_syntax_dissector("Guide", proto_x509sat, dissect_Guide_PDU);
2627 register_ber_syntax_dissector("InternationalISDNNumber", proto_x509sat, dissect_InternationalISDNNumber_PDU);
2628 register_ber_syntax_dissector("Integer", proto_x509sat, dissect_Integer_PDU);
2629 register_ber_syntax_dissector("NameAndOptionalUID", proto_x509sat, dissect_NameAndOptionalUID_PDU);
2630 register_ber_syntax_dissector("ObjectIdentifier", proto_x509sat, dissect_ObjectIdentifier_PDU);
2631 register_ber_syntax_dissector("OctetString", proto_x509sat, dissect_OctetString_PDU);
2632 register_ber_syntax_dissector("PostalAddress", proto_x509sat, dissect_PostalAddress_PDU);
2633 register_ber_syntax_dissector("PreferredDeliveryMethod", proto_x509sat, dissect_PreferredDeliveryMethod_PDU);
2634 register_ber_syntax_dissector("PresentationAddress", proto_x509sat, dissect_PresentationAddress_PDU);
2635 register_ber_syntax_dissector("BMPString", proto_x509sat, dissect_SyntaxBMPString_PDU);
2636 register_ber_syntax_dissector("GeneralizedTime", proto_x509sat, dissect_SyntaxGeneralizedTime_PDU);
2637 register_ber_syntax_dissector("GeneralString", proto_x509sat, dissect_SyntaxGeneralString_PDU);
2638 register_ber_syntax_dissector("GraphicString", proto_x509sat, dissect_SyntaxGraphicString_PDU);
2639 register_ber_syntax_dissector("IA5String", proto_x509sat, dissect_SyntaxIA5String_PDU);
2640 register_ber_syntax_dissector("ISO646String", proto_x509sat, dissect_SyntaxISO646String_PDU);
2641 register_ber_syntax_dissector("NumericString", proto_x509sat, dissect_SyntaxNumericString_PDU);
2642 register_ber_syntax_dissector("PrintableString", proto_x509sat, dissect_SyntaxPrintableString_PDU);
2643 register_ber_syntax_dissector("T61String", proto_x509sat, dissect_SyntaxT61String_PDU);
2644 register_ber_syntax_dissector("TeletexString", proto_x509sat, dissect_SyntaxTeletexString_PDU);
2645 register_ber_syntax_dissector("UniversalString", proto_x509sat, dissect_SyntaxUniversalString_PDU);
2646 register_ber_syntax_dissector("UTF8String", proto_x509sat, dissect_SyntaxUTF8String_PDU);
2647 register_ber_syntax_dissector("UTCTime", proto_x509sat, dissect_SyntaxUTCTime_PDU);
2648 register_ber_syntax_dissector("VideotexString", proto_x509sat, dissect_SyntaxVideotexString_PDU);
2649 register_ber_syntax_dissector("VisibleString", proto_x509sat, dissect_SyntaxVisibleString_PDU);
2650 register_ber_syntax_dissector("TelephoneNumber", proto_x509sat, dissect_TelephoneNumber_PDU);
2651 register_ber_syntax_dissector("TelexNumber", proto_x509sat, dissect_TelexNumber_PDU);
2652 register_ber_syntax_dissector("UniqueIdentifier", proto_x509sat, dissect_UniqueIdentifier_PDU);
2653 register_ber_syntax_dissector("X121Address", proto_x509sat, dissect_X121Address_PDU);
2658 /*--- proto_reg_handoff_x509sat -------------------------------------------*/
2659 void proto_reg_handoff_x509sat(void) {
2660 register_ber_oid_dissector("2.5.4.0", dissect_ObjectIdentifier_PDU, proto_x509sat, "id-at-objectClass");
2661 register_ber_oid_dissector("2.5.4.2", dissect_DirectoryString_PDU, proto_x509sat, "id-at-knowledgeInformation");
2662 register_ber_oid_dissector("2.5.4.3", dissect_DirectoryString_PDU, proto_x509sat, "id-at-commonName");
2663 register_ber_oid_dissector("2.5.4.4", dissect_DirectoryString_PDU, proto_x509sat, "id-at-surname");
2664 register_ber_oid_dissector("2.5.4.5", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-serialNumber");
2665 register_ber_oid_dissector("2.5.4.6", dissect_CountryName_PDU, proto_x509sat, "id-at-countryName");
2666 register_ber_oid_dissector("2.5.4.7", dissect_DirectoryString_PDU, proto_x509sat, "id-at-localityName");
2667 register_ber_oid_dissector("2.5.4.7.1", dissect_DirectoryString_PDU, proto_x509sat, "id-at-collectiveLocalityName");
2668 register_ber_oid_dissector("2.5.4.8", dissect_DirectoryString_PDU, proto_x509sat, "id-at-stateOrProvinceName");
2669 register_ber_oid_dissector("2.5.4.8.1", dissect_DirectoryString_PDU, proto_x509sat, "id-at-collectiveStateOrProvinceName");
2670 register_ber_oid_dissector("2.5.4.9", dissect_DirectoryString_PDU, proto_x509sat, "id-at-streetAddress");
2671 register_ber_oid_dissector("2.5.4.9.1", dissect_DirectoryString_PDU, proto_x509sat, "id-at-collectiveStreetAddress");
2672 register_ber_oid_dissector("2.5.4.10.1", dissect_DirectoryString_PDU, proto_x509sat, "id-at-collectiveOrganizationName");
2673 register_ber_oid_dissector("2.5.4.10", dissect_DirectoryString_PDU, proto_x509sat, "id-at-organizationName");
2674 register_ber_oid_dissector("2.5.4.11", dissect_DirectoryString_PDU, proto_x509sat, "id-at-organizationalUnitName");
2675 register_ber_oid_dissector("2.5.4.11.1", dissect_DirectoryString_PDU, proto_x509sat, "id-at-collectiveOrganizationalUnitName");
2676 register_ber_oid_dissector("2.5.4.12", dissect_DirectoryString_PDU, proto_x509sat, "id-at-title");
2677 register_ber_oid_dissector("2.5.4.13", dissect_DirectoryString_PDU, proto_x509sat, "id-at-description");
2678 register_ber_oid_dissector("2.5.4.14", dissect_Guide_PDU, proto_x509sat, "id-at-searchGuide");
2679 register_ber_oid_dissector("2.5.4.15", dissect_DirectoryString_PDU, proto_x509sat, "id-at-businessCategory");
2680 register_ber_oid_dissector("2.5.4.16", dissect_PostalAddress_PDU, proto_x509sat, "id-at-postalAddress");
2681 register_ber_oid_dissector("2.5.4.17", dissect_DirectoryString_PDU, proto_x509sat, "id-at-postalCode");
2682 register_ber_oid_dissector("2.5.4.17.1", dissect_DirectoryString_PDU, proto_x509sat, "id-at-collectivePostalCode");
2683 register_ber_oid_dissector("2.5.4.18", dissect_DirectoryString_PDU, proto_x509sat, "id-at-postOfficeBox");
2684 register_ber_oid_dissector("2.5.4.18.1", dissect_DirectoryString_PDU, proto_x509sat, "id-at-collectivePostOfficeBox");
2685 register_ber_oid_dissector("2.5.4.19", dissect_DirectoryString_PDU, proto_x509sat, "id-at-physicalDeliveryOfficeName");
2686 register_ber_oid_dissector("2.5.4.19.1", dissect_DirectoryString_PDU, proto_x509sat, "id-at-collectivePhysicalDeliveryOfficeName");
2687 register_ber_oid_dissector("2.5.4.20", dissect_TelephoneNumber_PDU, proto_x509sat, "id-at-telephoneNumber");
2688 register_ber_oid_dissector("2.5.4.20.1", dissect_TelephoneNumber_PDU, proto_x509sat, "id-at-collectiveTelephoneNumber");
2689 register_ber_oid_dissector("2.5.4.21", dissect_TelexNumber_PDU, proto_x509sat, "id-at-telexNumber");
2690 register_ber_oid_dissector("2.5.4.21.1", dissect_TelexNumber_PDU, proto_x509sat, "id-at-collectiveTelexNumber");
2691 register_ber_oid_dissector("2.5.4.23", dissect_FacsimileTelephoneNumber_PDU, proto_x509sat, "id-at-facsimileTelephoneNumber");
2692 register_ber_oid_dissector("2.5.4.23.1", dissect_FacsimileTelephoneNumber_PDU, proto_x509sat, "id-at-collectiveFacsimileTelephoneNumber");
2693 register_ber_oid_dissector("2.5.4.24", dissect_X121Address_PDU, proto_x509sat, "id-at-x121Address");
2694 register_ber_oid_dissector("2.5.4.25", dissect_InternationalISDNNumber_PDU, proto_x509sat, "id-at-internationalISDNNumber");
2695 register_ber_oid_dissector("2.5.4.25.1", dissect_InternationalISDNNumber_PDU, proto_x509sat, "id-at-collectiveInternationalISDNNumber");
2696 register_ber_oid_dissector("2.5.4.26", dissect_PostalAddress_PDU, proto_x509sat, "id-at-registeredAddress");
2697 register_ber_oid_dissector("2.5.4.27", dissect_DestinationIndicator_PDU, proto_x509sat, "id-at-destinationIndicator");
2698 register_ber_oid_dissector("2.5.4.28", dissect_PreferredDeliveryMethod_PDU, proto_x509sat, "id-at-preferredDeliveryMethod");
2699 register_ber_oid_dissector("2.5.4.29", dissect_PresentationAddress_PDU, proto_x509sat, "id-at-presentationAddress");
2700 register_ber_oid_dissector("2.5.4.30", dissect_ObjectIdentifier_PDU, proto_x509sat, "id-at-supportedApplicationContext");
2701 register_ber_oid_dissector("2.5.4.35", dissect_OctetString_PDU, proto_x509sat, "id-at-userPassword");
2702 register_ber_oid_dissector("2.5.4.41", dissect_DirectoryString_PDU, proto_x509sat, "id-at-name");
2703 register_ber_oid_dissector("2.5.4.42", dissect_DirectoryString_PDU, proto_x509sat, "id-at-givenName");
2704 register_ber_oid_dissector("2.5.4.43", dissect_DirectoryString_PDU, proto_x509sat, "id-at-initials");
2705 register_ber_oid_dissector("2.5.4.44", dissect_DirectoryString_PDU, proto_x509sat, "id-at-generationQualifier");
2706 register_ber_oid_dissector("2.5.4.45", dissect_UniqueIdentifier_PDU, proto_x509sat, "id-at-uniqueIdedntifier");
2707 register_ber_oid_dissector("2.5.4.46", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-dnQualifier");
2708 register_ber_oid_dissector("2.5.4.47", dissect_EnhancedGuide_PDU, proto_x509sat, "id-at-enhancedSearchGuide");
2709 register_ber_oid_dissector("2.5.4.48", dissect_ProtocolInformation_PDU, proto_x509sat, "id-at-protocolInformation");
2710 register_ber_oid_dissector("2.5.4.50", dissect_NameAndOptionalUID_PDU, proto_x509sat, "id-at-uniqueMember");
2711 register_ber_oid_dissector("2.5.4.51", dissect_DirectoryString_PDU, proto_x509sat, "id-at-houseIdentifier");
2712 register_ber_oid_dissector("2.5.4.52", dissect_ObjectIdentifier_PDU, proto_x509sat, "id-at-supportedAlgorithms");
2713 register_ber_oid_dissector("2.5.4.54", dissect_DirectoryString_PDU, proto_x509sat, "id-at-dmdName");
2714 register_ber_oid_dissector("2.5.4.56", dissect_ObjectIdentifier_PDU, proto_x509sat, "id-at-defaultDirQop");
2715 register_ber_oid_dissector("2.5.4.65", dissect_DirectoryString_PDU, proto_x509sat, "id-at-pseudonym");
2716 register_ber_oid_dissector("2.5.4.66", dissect_ObjectIdentifier_PDU, proto_x509sat, "id-at-communuicationsService");
2717 register_ber_oid_dissector("2.5.4.67", dissect_ObjectIdentifier_PDU, proto_x509sat, "id-at-communuicationsNetwork");
2718 register_ber_oid_dissector("2.5.4.97", dissect_DirectoryString_PDU, proto_x509sat, "id-at-organizationIdentifier");
2719 register_ber_oid_dissector("2.5.13.8", dissect_SyntaxNumericString_PDU, proto_x509sat, "id-mr-numericStringMatch");
2720 register_ber_oid_dissector("2.5.13.11", dissect_CaseIgnoreListMatch_PDU, proto_x509sat, "id-mr-caseIgnoreListMatch");
2721 register_ber_oid_dissector("2.5.13.16", dissect_BitString_PDU, proto_x509sat, "id-mr-bitStringMatch");
2722 register_ber_oid_dissector("2.5.13.26", dissect_SyntaxUTCTime_PDU, proto_x509sat, "id-mr-uTCTimeOrderingMatch");
2723 register_ber_oid_dissector("2.5.18.1", dissect_SyntaxGeneralizedTime_PDU, proto_x509sat, "id-oa-createTimeStamp");
2724 register_ber_oid_dissector("2.5.18.2", dissect_SyntaxGeneralizedTime_PDU, proto_x509sat, "id-oa-modifyTimeStamp");
2725 register_ber_oid_dissector("2.5.18.5", dissect_ObjectIdentifier_PDU, proto_x509sat, "id-oa-administrativeRole");
2726 register_ber_oid_dissector("2.5.18.7", dissect_ObjectIdentifier_PDU, proto_x509sat, "id-oa-collectiveExclusions");
2727 register_ber_oid_dissector("2.5.18.8", dissect_SyntaxGeneralizedTime_PDU, proto_x509sat, "id-oa-subschemaTimeStamp");
2728 register_ber_oid_dissector("2.5.18.9", dissect_Boolean_PDU, proto_x509sat, "id-oa-hasSubordinates");
2729 register_ber_oid_dissector("2.5.24.1", dissect_ObjectIdentifier_PDU, proto_x509sat, "id-aca-accessControlScheme");
2730 register_ber_oid_dissector("2.6.5.2.8", dissect_ObjectIdentifier_PDU, proto_x509sat, "id-at-mhs-supported-automatic-actions");
2731 register_ber_oid_dissector("2.6.5.2.10", dissect_ObjectIdentifier_PDU, proto_x509sat, "id-at-mhs-supported-attributes");
2732 register_ber_oid_dissector("2.6.5.2.11", dissect_ObjectIdentifier_PDU, proto_x509sat, "id-at-mhs-supported-matching-rules");
2733 register_ber_oid_dissector("2.16.840.1.101.2.2.1.45", dissect_DirectoryString_PDU, proto_x509sat, "id-at-releaseAuthorityName");
2734 register_ber_oid_dissector("2.16.840.1.101.2.2.1.51", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-cognizantAuthority");
2735 register_ber_oid_dissector("2.16.840.1.101.2.2.1.53", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-accountingCode");
2736 register_ber_oid_dissector("2.16.840.1.101.2.2.1.54", dissect_Boolean_PDU, proto_x509sat, "id-at-dualRoute");
2737 register_ber_oid_dissector("2.16.840.1.101.2.2.1.55", dissect_SyntaxGeneralizedTime_PDU, proto_x509sat, "id-at-effectiveDate");
2738 register_ber_oid_dissector("2.16.840.1.101.2.2.1.57", dissect_SyntaxGeneralizedTime_PDU, proto_x509sat, "id-at-expirationDate");
2739 register_ber_oid_dissector("2.16.840.1.101.2.2.1.58", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-hostOrgACP127");
2740 register_ber_oid_dissector("2.16.840.1.101.2.2.1.60", dissect_SyntaxGeneralizedTime_PDU, proto_x509sat, "id-at-lastRecapDate");
2741 register_ber_oid_dissector("2.16.840.1.101.2.2.1.62", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-lmf");
2742 register_ber_oid_dissector("2.16.840.1.101.2.2.1.63", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-longTitle");
2743 register_ber_oid_dissector("2.16.840.1.101.2.2.1.64", dissect_Boolean_PDU, proto_x509sat, "id-at-minimize");
2744 register_ber_oid_dissector("2.16.840.1.101.2.2.1.65", dissect_Boolean_PDU, proto_x509sat, "id-at-minimizeOverride");
2745 register_ber_oid_dissector("2.16.840.1.101.2.2.1.68", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-nationality");
2746 register_ber_oid_dissector("2.16.840.1.101.2.2.1.68.1", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-collectiveNationality");
2747 register_ber_oid_dissector("2.16.840.1.101.2.2.1.69", dissect_Boolean_PDU, proto_x509sat, "id-at-transferStation");
2748 register_ber_oid_dissector("2.16.840.1.101.2.2.1.70", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-plaNameACP127");
2749 register_ber_oid_dissector("2.16.840.1.101.2.2.1.72", dissect_Boolean_PDU, proto_x509sat, "id-at-plaReplace");
2750 register_ber_oid_dissector("2.16.840.1.101.2.2.1.73", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-primarySpellingACP127");
2751 register_ber_oid_dissector("2.16.840.1.101.2.2.1.74", dissect_Boolean_PDU, proto_x509sat, "id-at-publish");
2752 register_ber_oid_dissector("2.16.840.1.101.2.2.1.75", dissect_SyntaxGeneralizedTime_PDU, proto_x509sat, "id-at-recapDueDate");
2753 register_ber_oid_dissector("2.16.840.1.101.2.2.1.77", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-rI");
2754 register_ber_oid_dissector("2.16.840.1.101.2.2.1.81", dissect_Boolean_PDU, proto_x509sat, "id-at-section");
2755 register_ber_oid_dissector("2.16.840.1.101.2.2.1.82", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-serviceOrAgency");
2756 register_ber_oid_dissector("2.16.840.1.101.2.2.1.83", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-sHD");
2757 register_ber_oid_dissector("2.16.840.1.101.2.2.1.84", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-shortTitle");
2758 register_ber_oid_dissector("2.16.840.1.101.2.2.1.85", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-sigad");
2759 register_ber_oid_dissector("2.16.840.1.101.2.2.1.86", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-spot");
2760 register_ber_oid_dissector("2.16.840.1.101.2.2.1.87", dissect_Boolean_PDU, proto_x509sat, "id-at-tARE");
2761 register_ber_oid_dissector("2.16.840.1.101.2.2.1.94", dissect_TelephoneNumber_PDU, proto_x509sat, "id-at-aCPMobileTelephoneNumber");
2762 register_ber_oid_dissector("2.16.840.1.101.2.2.1.95", dissect_TelephoneNumber_PDU, proto_x509sat, "id-at-aCPPagerTelephoneNumber");
2763 register_ber_oid_dissector("2.16.840.1.101.2.2.1.96", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-tCC");
2764 register_ber_oid_dissector("2.16.840.1.101.2.2.1.97", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-tRC");
2765 register_ber_oid_dissector("2.16.840.1.101.2.2.1.106", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-accessCodes");
2766 register_ber_oid_dissector("2.16.840.1.101.2.2.1.107", dissect_SyntaxGraphicString_PDU, proto_x509sat, "id-at-accessSchema");
2767 register_ber_oid_dissector("2.16.840.1.101.2.2.1.109", dissect_TelephoneNumber_PDU, proto_x509sat, "id-at-aCPTelephoneFaxNumber");
2768 register_ber_oid_dissector("2.16.840.1.101.2.2.1.115", dissect_ObjectIdentifier_PDU, proto_x509sat, "id-at-gatewayType");
2769 register_ber_oid_dissector("2.16.840.1.101.2.2.1.116", dissect_ObjectIdentifier_PDU, proto_x509sat, "id-at-ghpType");
2770 register_ber_oid_dissector("2.16.840.1.101.2.2.1.118", dissect_DirectoryString_PDU, proto_x509sat, "id-at-mailDomains");
2771 register_ber_oid_dissector("2.16.840.1.101.2.2.1.119", dissect_TelephoneNumber_PDU, proto_x509sat, "id-at-militaryFacsimileNumber");
2772 register_ber_oid_dissector("2.16.840.1.101.2.2.1.119.1", dissect_TelephoneNumber_PDU, proto_x509sat, "id-at-collectiveMilitaryFacsimileNumber");
2773 register_ber_oid_dissector("2.16.840.1.101.2.2.1.120", dissect_TelephoneNumber_PDU, proto_x509sat, "id-at-militaryTelephoneNumber");
2774 register_ber_oid_dissector("2.16.840.1.101.2.2.1.120.1", dissect_TelephoneNumber_PDU, proto_x509sat, "id-at-collectiveMilitaryTelephoneNumber");
2775 register_ber_oid_dissector("2.16.840.1.101.2.2.1.122", dissect_SyntaxGraphicString_PDU, proto_x509sat, "id-at-networkSchema");
2776 register_ber_oid_dissector("2.16.840.1.101.2.2.1.124", dissect_DirectoryString_PDU, proto_x509sat, "id-at-operationName");
2777 register_ber_oid_dissector("2.16.840.1.101.2.2.1.125", dissect_DirectoryString_PDU, proto_x509sat, "id-at-positionNumber");
2778 register_ber_oid_dissector("2.16.840.1.101.2.2.1.126", dissect_DirectoryString_PDU, proto_x509sat, "id-at-proprietaryMailboxes");
2779 register_ber_oid_dissector("2.16.840.1.101.2.2.1.127", dissect_TelephoneNumber_PDU, proto_x509sat, "id-at-secureFacsimileNumber");
2780 register_ber_oid_dissector("2.16.840.1.101.2.2.1.127.1", dissect_TelephoneNumber_PDU, proto_x509sat, "id-at-collectiveSecureFacsimileNumber");
2781 register_ber_oid_dissector("2.16.840.1.101.2.2.1.128", dissect_TelephoneNumber_PDU, proto_x509sat, "id-at-secureTelephoneNumber");
2782 register_ber_oid_dissector("2.16.840.1.101.2.2.1.128.1", dissect_TelephoneNumber_PDU, proto_x509sat, "id-at-collectiveSecureTelephoneNumber");
2783 register_ber_oid_dissector("2.16.840.1.101.2.2.1.129", dissect_DirectoryString_PDU, proto_x509sat, "id-at-serviceNumber");
2784 register_ber_oid_dissector("2.16.840.1.101.2.2.1.133", dissect_DirectoryString_PDU, proto_x509sat, "id-at-rank");
2785 register_ber_oid_dissector("2.16.840.1.101.2.2.1.143", dissect_DirectoryString_PDU, proto_x509sat, "id-at-adminConversion");
2786 register_ber_oid_dissector("2.16.840.1.101.2.2.1.144", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-tCCG");
2787 register_ber_oid_dissector("2.16.840.1.101.2.2.1.145", dissect_DirectoryString_PDU, proto_x509sat, "id-at-usdConversion");
2788 register_ber_oid_dissector("2.16.840.1.101.2.2.1.158", dissect_DirectoryString_PDU, proto_x509sat, "id-at-aCPRoleInformation");
2789 register_ber_oid_dissector("2.16.840.1.101.2.2.1.159", dissect_DirectoryString_PDU, proto_x509sat, "id-at-coalitionGrade");
2790 register_ber_oid_dissector("2.16.840.1.101.2.2.1.160", dissect_TelephoneNumber_PDU, proto_x509sat, "id-at-militaryIPPhoneNumber");
2791 register_ber_oid_dissector("2.16.840.1.101.2.2.1.161", dissect_ObjectIdentifier_PDU, proto_x509sat, "id-at-fileTypeInfoCapability");
2792 register_ber_oid_dissector("2.16.840.1.101.2.2.1.172", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-aCPFunctionalDescription");
2793 register_ber_oid_dissector("2.16.840.1.101.2.2.1.173", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-alternatePLAName");
2794 register_ber_oid_dissector("2.16.840.1.101.2.2.1.174", dissect_SyntaxGeneralizedTime_PDU, proto_x509sat, "id-at-aCPEntryCreationDate");
2795 register_ber_oid_dissector("2.16.840.1.101.2.2.1.175", dissect_SyntaxGeneralizedTime_PDU, proto_x509sat, "id-at-aCPEntryModificationDate");
2796 register_ber_oid_dissector("2.16.840.1.101.2.2.1.176", dissect_ObjectIdentifier_PDU, proto_x509sat, "id-at-aCPEntryType");
2797 register_ber_oid_dissector("2.16.840.1.101.2.2.1.177", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-aCPEntryUniqueId");
2798 register_ber_oid_dissector("2.16.840.1.101.2.2.1.178", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-aCPCitizenship");
2799 register_ber_oid_dissector("2.16.840.1.101.2.2.1.179", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-aCPEID");
2800 register_ber_oid_dissector("2.16.840.1.101.2.2.1.180", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-aCPCOI");
2801 register_ber_oid_dissector("2.16.840.1.101.2.2.1.181", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-aCPPublishTo");
2802 register_ber_oid_dissector("2.16.840.1.101.2.2.1.182", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-aCPSvcApps");
2803 register_ber_oid_dissector("2.16.840.1.101.2.2.1.183", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-aCPDirectionsTo");
2804 register_ber_oid_dissector("2.16.840.1.101.2.2.1.185", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-aCPLatitude");
2805 register_ber_oid_dissector("2.16.840.1.101.2.2.1.186", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-aCPLocationMap");
2806 register_ber_oid_dissector("2.16.840.1.101.2.2.1.187", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-aCPLongitude");
2807 register_ber_oid_dissector("1.2.840.113549.1.9.1", dissect_SyntaxIA5String_PDU, proto_x509sat, "pkcs-9-at-emailAddress");
2808 register_ber_oid_dissector("1.2.840.113549.1.9.7", dissect_DirectoryString_PDU, proto_x509sat, "pkcs-9-at-challengePassword");
2809 register_ber_oid_dissector("1.2.840.113549.1.9.8", dissect_DirectoryString_PDU, proto_x509sat, "pkcs-9-at-unstructuredAddress");
2810 register_ber_oid_dissector("1.2.840.113549.1.9.13", dissect_DirectoryString_PDU, proto_x509sat, "pkcs-9-at-signingDescription");
2811 register_ber_oid_dissector("1.2.840.113549.1.9.20", dissect_SyntaxBMPString_PDU, proto_x509sat, "pkcs-9-at-friendlyName");
2812 register_ber_oid_dissector("1.2.840.113549.1.9.21", dissect_OctetString_PDU, proto_x509sat, "pkcs-9-at-localKeyId");
2813 register_ber_oid_dissector("1.2.840.113549.1.9.25.3", dissect_OctetString_PDU, proto_x509sat, "pkcs-9-at-randomNonce");
2814 register_ber_oid_dissector("1.2.840.113549.1.9.25.4", dissect_Integer_PDU, proto_x509sat, "pkcs-9-at-sequenceNumber");
2815 register_ber_oid_dissector("1.3.6.1.5.5.7.9.1", dissect_SyntaxGeneralizedTime_PDU, proto_x509sat, "pkcs-9-at-dateOfBirth");
2816 register_ber_oid_dissector("1.3.6.1.5.5.7.9.2", dissect_DirectoryString_PDU, proto_x509sat, "pkcs-9-at-placeOfBirth");
2817 register_ber_oid_dissector("1.3.6.1.5.5.7.9.3", dissect_SyntaxPrintableString_PDU, proto_x509sat, "pkcs-9-at-gender");
2818 register_ber_oid_dissector("1.3.6.1.5.5.7.9.4", dissect_SyntaxPrintableString_PDU, proto_x509sat, "pkcs-9-at-countryOfCitizenship");
2819 register_ber_oid_dissector("1.3.6.1.5.5.7.9.5", dissect_SyntaxPrintableString_PDU, proto_x509sat, "pkcs-9-at-countryOfResidence");
2820 register_ber_oid_dissector("0.9.2342.19200300.100.1.25", dissect_SyntaxIA5String_PDU, proto_x509sat, "dc");
2821 register_ber_oid_dissector("2.16.840.1.113730.3.1.1", dissect_DirectoryString_PDU, proto_x509sat, "carLicense");
2822 register_ber_oid_dissector("2.16.840.1.113730.3.1.2", dissect_DirectoryString_PDU, proto_x509sat, "departmentNumber");
2823 register_ber_oid_dissector("2.16.840.1.113730.3.1.3", dissect_DirectoryString_PDU, proto_x509sat, "employeeNumber");
2824 register_ber_oid_dissector("2.16.840.1.113730.3.1.4", dissect_DirectoryString_PDU, proto_x509sat, "employeeType");
2825 register_ber_oid_dissector("2.16.840.1.113730.3.1.39", dissect_DirectoryString_PDU, proto_x509sat, "preferredLanguage");
2826 register_ber_oid_dissector("2.16.840.1.113730.3.1.241", dissect_DirectoryString_PDU, proto_x509sat, "displayName");
2827 register_ber_oid_dissector("1.3.6.1.4.1.311.20.2", dissect_SyntaxBMPString_PDU, proto_x509sat, "id-ms-certificate-template-name");
2828 register_ber_oid_dissector("1.3.6.1.4.1.311.20.2.3", dissect_SyntaxUTF8String_PDU, proto_x509sat, "id-ms-user-principal-name");
2829 register_ber_oid_dissector("1.3.6.1.4.1.311.17.1", dissect_SyntaxBMPString_PDU, proto_x509sat, "id-ms-local-machine-keyset");
2830 register_ber_oid_dissector("1.3.6.1.4.1.311.21.1", dissect_Integer_PDU, proto_x509sat, "id-ms-ca-version");
2831 register_ber_oid_dissector("1.3.6.1.4.1.311.21.2", dissect_OctetString_PDU, proto_x509sat, "id-ms-previous-cert-hash");
2832 register_ber_oid_dissector("1.3.6.1.4.1.311.21.3", dissect_Integer_PDU, proto_x509sat, "id-ms-virtual-base");
2833 register_ber_oid_dissector("1.3.6.1.4.1.311.21.4", dissect_SyntaxUTCTime_PDU, proto_x509sat, "id-ms-next-publish");
2834 register_ber_oid_dissector("1.2.826.0.1063.7.0.0.0", dissect_Integer_PDU, proto_x509sat, "unknown-UK-organisation-defined-extension");
2835 register_ber_oid_dissector("1.2.826.0.1004.10.1.1", dissect_SyntaxIA5String_PDU, proto_x509sat, "nexor-originating-ua");
2836 register_ber_oid_dissector("2.6.1.6.3", dissect_Boolean_PDU, proto_x509sat, "id-sat-ipm-auto-discarded");
2837 register_ber_oid_dissector("1.3.6.1.1.16.4", dissect_GUID_PDU, proto_x509sat, "entryUUID");
2838 register_ber_oid_dissector("1.3.6.1.4.1.311.60.2.1.1", dissect_DirectoryString_PDU, proto_x509sat, "jurisdictionOfIncorporationLocalityName");
2839 register_ber_oid_dissector("1.3.6.1.4.1.311.60.2.1.2", dissect_DirectoryString_PDU, proto_x509sat, "jurisdictionOfIncorporationStateOrProvinceName");
2840 register_ber_oid_dissector("1.3.6.1.4.1.311.60.2.1.3", dissect_CountryName_PDU, proto_x509sat, "jurisdictionOfIncorporationCountryName");
2843 /* OBJECT CLASSES */
2845 oid_add_from_string("top","2.5.6.0");
2846 oid_add_from_string("alias","2.5.6.1");
2847 oid_add_from_string("country","2.5.6.2");
2848 oid_add_from_string("locality","2.5.6.3");
2849 oid_add_from_string("organization","2.5.6.4");
2850 oid_add_from_string("organizationalUnit","2.5.6.5");
2851 oid_add_from_string("person","2.5.6.6");
2852 oid_add_from_string("organizationalPerson","2.5.6.7");
2853 oid_add_from_string("organizationalRole","2.5.6.8");
2854 oid_add_from_string("groupOfNames","2.5.6.9");
2855 oid_add_from_string("residentialPerson","2.5.6.10");
2856 oid_add_from_string("applicationProcess","2.5.6.11");
2857 oid_add_from_string("applicationEntity","2.5.6.12");
2858 oid_add_from_string("dSA","2.5.6.13");
2859 oid_add_from_string("device","2.5.6.14");
2860 oid_add_from_string("strongAuthenticationUser","2.5.6.15");
2861 oid_add_from_string("certificationAuthority","2.5.6.16");
2862 oid_add_from_string("certificationAuthorityV2","2.5.6.16.2");
2863 oid_add_from_string("groupOfUniqueNames","2.5.6.17");
2864 oid_add_from_string("userSecurityInformation","2.5.6.18");
2865 oid_add_from_string("cRLDistributionPoint","2.5.6.19");
2866 oid_add_from_string("dmd","2.5.6.20");
2867 oid_add_from_string("pkiUser","2.5.6.21");
2868 oid_add_from_string("pkiCA","2.5.6.22");
2870 oid_add_from_string("parent","2.5.6.28");
2871 oid_add_from_string("child","2.5.6.29");
2873 /* RFC 2247 */
2874 oid_add_from_string("dcObject","1.3.6.1.4.1.1446.344");
2875 oid_add_from_string("domain","0.9.2342.19200300.100.4.13");
2877 /* RFC 2798 */
2878 oid_add_from_string("inetOrgPerson","2.16.840.1.113730.3.2.2");