Revert "TODO epan/dissectors/asn1/kerberos/packet-kerberos-template.c new GSS flags"
[wireshark-sm.git] / epan / dissectors / packet-x509ce.c
blob645be8678d23d28026b3b839158d3181e168874a
1 /* Do not modify this file. Changes will be overwritten. */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler */
3 /* packet-x509ce.c */
4 /* asn2wrs.py -b -q -L -p x509ce -c ./x509ce.cnf -s ./packet-x509ce-template -D . -O ../.. CertificateExtensions.asn CertificateExtensionsRFC9310.asn CertificateExtensionsCiplus.asn */
6 /* packet-x509ce.c
7 * Routines for X.509 Certificate Extensions 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/asn1.h>
21 #include <epan/oids.h>
22 #include <wsutil/array.h>
24 #include "packet-ber.h"
25 #include "packet-x509ce.h"
26 #include "packet-x509af.h"
27 #include "packet-x509if.h"
28 #include "packet-x509sat.h"
29 #include "packet-p1.h"
31 #define PNAME "X.509 Certificate Extensions"
32 #define PSNAME "X509CE"
33 #define PFNAME "x509ce"
35 void proto_register_x509ce(void);
36 void proto_reg_handoff_x509ce(void);
38 /* Initialize the protocol and registered fields */
39 static int proto_x509ce;
40 static int hf_x509ce_id_ce_invalidityDate;
41 static int hf_x509ce_id_ce_baseUpdateTime;
42 static int hf_x509ce_object_identifier_id;
43 static int hf_x509ce_IPAddress_ipv4;
44 static int hf_x509ce_IPAddress_ipv4_mask;
45 static int hf_x509ce_IPAddress_ipv6;
46 static int hf_x509ce_IPAddress_ipv6_mask;
47 static int hf_x509ce_IPAddress_unknown;
48 static int hf_x509ce_AuthorityKeyIdentifier_PDU; /* AuthorityKeyIdentifier */
49 static int hf_x509ce_SubjectKeyIdentifier_PDU; /* SubjectKeyIdentifier */
50 static int hf_x509ce_KeyUsage_PDU; /* KeyUsage */
51 static int hf_x509ce_KeyPurposeIDs_PDU; /* KeyPurposeIDs */
52 static int hf_x509ce_PrivateKeyUsagePeriod_PDU; /* PrivateKeyUsagePeriod */
53 static int hf_x509ce_CertificatePoliciesSyntax_PDU; /* CertificatePoliciesSyntax */
54 static int hf_x509ce_PolicyMappingsSyntax_PDU; /* PolicyMappingsSyntax */
55 static int hf_x509ce_GeneralNames_PDU; /* GeneralNames */
56 static int hf_x509ce_AttributesSyntax_PDU; /* AttributesSyntax */
57 static int hf_x509ce_BasicConstraintsSyntax_PDU; /* BasicConstraintsSyntax */
58 static int hf_x509ce_NameConstraintsSyntax_PDU; /* NameConstraintsSyntax */
59 static int hf_x509ce_PolicyConstraintsSyntax_PDU; /* PolicyConstraintsSyntax */
60 static int hf_x509ce_SkipCerts_PDU; /* SkipCerts */
61 static int hf_x509ce_CRLNumber_PDU; /* CRLNumber */
62 static int hf_x509ce_CRLReason_PDU; /* CRLReason */
63 static int hf_x509ce_HoldInstruction_PDU; /* HoldInstruction */
64 static int hf_x509ce_CRLScopeSyntax_PDU; /* CRLScopeSyntax */
65 static int hf_x509ce_StatusReferrals_PDU; /* StatusReferrals */
66 static int hf_x509ce_CRLStreamIdentifier_PDU; /* CRLStreamIdentifier */
67 static int hf_x509ce_OrderedListSyntax_PDU; /* OrderedListSyntax */
68 static int hf_x509ce_DeltaInformation_PDU; /* DeltaInformation */
69 static int hf_x509ce_CRLDistPointsSyntax_PDU; /* CRLDistPointsSyntax */
70 static int hf_x509ce_IssuingDistPointSyntax_PDU; /* IssuingDistPointSyntax */
71 static int hf_x509ce_BaseCRLNumber_PDU; /* BaseCRLNumber */
72 static int hf_x509ce_ToBeRevokedSyntax_PDU; /* ToBeRevokedSyntax */
73 static int hf_x509ce_RevokedGroupsSyntax_PDU; /* RevokedGroupsSyntax */
74 static int hf_x509ce_ExpiredCertsOnCRL_PDU; /* ExpiredCertsOnCRL */
75 static int hf_x509ce_AAIssuingDistPointSyntax_PDU; /* AAIssuingDistPointSyntax */
76 static int hf_x509ce_CertificateAssertion_PDU; /* CertificateAssertion */
77 static int hf_x509ce_CertificatePairExactAssertion_PDU; /* CertificatePairExactAssertion */
78 static int hf_x509ce_CertificatePairAssertion_PDU; /* CertificatePairAssertion */
79 static int hf_x509ce_CertificateListExactAssertion_PDU; /* CertificateListExactAssertion */
80 static int hf_x509ce_CertificateListAssertion_PDU; /* CertificateListAssertion */
81 static int hf_x509ce_PkiPathMatchSyntax_PDU; /* PkiPathMatchSyntax */
82 static int hf_x509ce_EnhancedCertificateAssertion_PDU; /* EnhancedCertificateAssertion */
83 static int hf_x509ce_CertificateTemplate_PDU; /* CertificateTemplate */
84 static int hf_x509ce_NtdsCaSecurity_PDU; /* NtdsCaSecurity */
85 static int hf_x509ce_NtdsObjectSid_PDU; /* NtdsObjectSid */
86 static int hf_x509ce_EntrustVersionInfo_PDU; /* EntrustVersionInfo */
87 static int hf_x509ce_NFTypes_PDU; /* NFTypes */
88 static int hf_x509ce_ScramblerCapabilities_PDU; /* ScramblerCapabilities */
89 static int hf_x509ce_CiplusInfo_PDU; /* CiplusInfo */
90 static int hf_x509ce_CicamBrandId_PDU; /* CicamBrandId */
91 static int hf_x509ce_SecurityLevel_PDU; /* SecurityLevel */
92 static int hf_x509ce_keyIdentifier; /* KeyIdentifier */
93 static int hf_x509ce_authorityCertIssuer; /* GeneralNames */
94 static int hf_x509ce_authorityCertSerialNumber; /* CertificateSerialNumber */
95 static int hf_x509ce_KeyPurposeIDs_item; /* KeyPurposeId */
96 static int hf_x509ce_notBefore; /* GeneralizedTime */
97 static int hf_x509ce_notAfter; /* GeneralizedTime */
98 static int hf_x509ce_CertificatePoliciesSyntax_item; /* PolicyInformation */
99 static int hf_x509ce_policyIdentifier; /* CertPolicyId */
100 static int hf_x509ce_policyQualifiers; /* SEQUENCE_SIZE_1_MAX_OF_PolicyQualifierInfo */
101 static int hf_x509ce_policyQualifiers_item; /* PolicyQualifierInfo */
102 static int hf_x509ce_policyQualifierId; /* T_policyQualifierId */
103 static int hf_x509ce_qualifier; /* T_qualifier */
104 static int hf_x509ce_PolicyMappingsSyntax_item; /* PolicyMappingsSyntax_item */
105 static int hf_x509ce_issuerDomainPolicy; /* CertPolicyId */
106 static int hf_x509ce_subjectDomainPolicy; /* CertPolicyId */
107 static int hf_x509ce_GeneralNames_item; /* GeneralName */
108 static int hf_x509ce_otherName; /* OtherName */
109 static int hf_x509ce_rfc822Name; /* IA5String */
110 static int hf_x509ce_dNSName; /* IA5String */
111 static int hf_x509ce_x400Address; /* ORAddress */
112 static int hf_x509ce_directoryName; /* Name */
113 static int hf_x509ce_ediPartyName; /* EDIPartyName */
114 static int hf_x509ce_uniformResourceIdentifier; /* T_uniformResourceIdentifier */
115 static int hf_x509ce_iPAddress; /* T_iPAddress */
116 static int hf_x509ce_registeredID; /* OBJECT_IDENTIFIER */
117 static int hf_x509ce_type_id; /* OtherNameType */
118 static int hf_x509ce_value; /* OtherNameValue */
119 static int hf_x509ce_nameAssigner; /* DirectoryString */
120 static int hf_x509ce_partyName; /* DirectoryString */
121 static int hf_x509ce_AttributesSyntax_item; /* Attribute */
122 static int hf_x509ce_cA; /* BOOLEAN */
123 static int hf_x509ce_pathLenConstraint; /* INTEGER_0_MAX */
124 static int hf_x509ce_permittedSubtrees; /* GeneralSubtrees */
125 static int hf_x509ce_excludedSubtrees; /* GeneralSubtrees */
126 static int hf_x509ce_GeneralSubtrees_item; /* GeneralSubtree */
127 static int hf_x509ce_base; /* GeneralName */
128 static int hf_x509ce_minimum; /* BaseDistance */
129 static int hf_x509ce_maximum; /* BaseDistance */
130 static int hf_x509ce_requireExplicitPolicy; /* SkipCerts */
131 static int hf_x509ce_inhibitPolicyMapping; /* SkipCerts */
132 static int hf_x509ce_CRLScopeSyntax_item; /* PerAuthorityScope */
133 static int hf_x509ce_authorityName; /* GeneralName */
134 static int hf_x509ce_distributionPoint; /* DistributionPointName */
135 static int hf_x509ce_onlyContains; /* OnlyCertificateTypes */
136 static int hf_x509ce_onlySomeReasons; /* ReasonFlags */
137 static int hf_x509ce_serialNumberRange; /* NumberRange */
138 static int hf_x509ce_subjectKeyIdRange; /* NumberRange */
139 static int hf_x509ce_nameSubtrees; /* GeneralNames */
140 static int hf_x509ce_baseRevocationInfo; /* BaseRevocationInfo */
141 static int hf_x509ce_startingNumber; /* INTEGER */
142 static int hf_x509ce_endingNumber; /* INTEGER */
143 static int hf_x509ce_modulus; /* INTEGER */
144 static int hf_x509ce_cRLStreamIdentifier; /* CRLStreamIdentifier */
145 static int hf_x509ce_cRLNumber; /* CRLNumber */
146 static int hf_x509ce_baseThisUpdate; /* GeneralizedTime */
147 static int hf_x509ce_StatusReferrals_item; /* StatusReferral */
148 static int hf_x509ce_cRLReferral; /* CRLReferral */
149 static int hf_x509ce_crlr_issuer; /* GeneralName */
150 static int hf_x509ce_location; /* GeneralName */
151 static int hf_x509ce_deltaRefInfo; /* DeltaRefInfo */
152 static int hf_x509ce_cRLScope; /* CRLScopeSyntax */
153 static int hf_x509ce_lastUpdate; /* GeneralizedTime */
154 static int hf_x509ce_lastChangedCRL; /* GeneralizedTime */
155 static int hf_x509ce_deltaLocation; /* GeneralName */
156 static int hf_x509ce_lastDelta; /* GeneralizedTime */
157 static int hf_x509ce_nextDelta; /* GeneralizedTime */
158 static int hf_x509ce_CRLDistPointsSyntax_item; /* DistributionPoint */
159 static int hf_x509ce_reasons; /* ReasonFlags */
160 static int hf_x509ce_cRLIssuer; /* GeneralNames */
161 static int hf_x509ce_fullName; /* GeneralNames */
162 static int hf_x509ce_nameRelativeToCRLIssuer; /* RelativeDistinguishedName */
163 static int hf_x509ce_onlyContainsUserPublicKeyCerts; /* BOOLEAN */
164 static int hf_x509ce_onlyContainsCACerts; /* BOOLEAN */
165 static int hf_x509ce_indirectCRL; /* BOOLEAN */
166 static int hf_x509ce_ToBeRevokedSyntax_item; /* ToBeRevokedGroup */
167 static int hf_x509ce_certificateIssuer; /* GeneralName */
168 static int hf_x509ce_reasonInfo; /* ReasonInfo */
169 static int hf_x509ce_revocationTime; /* GeneralizedTime */
170 static int hf_x509ce_certificateGroup; /* CertificateGroup */
171 static int hf_x509ce_reasonCode; /* CRLReason */
172 static int hf_x509ce_holdInstructionCode; /* HoldInstruction */
173 static int hf_x509ce_serialNumbers; /* CertificateSerialNumbers */
174 static int hf_x509ce_certificateGroupNumberRange; /* CertificateGroupNumberRange */
175 static int hf_x509ce_nameSubtree; /* GeneralName */
176 static int hf_x509ce_CertificateSerialNumbers_item; /* CertificateSerialNumber */
177 static int hf_x509ce_RevokedGroupsSyntax_item; /* RevokedGroup */
178 static int hf_x509ce_invalidityDate; /* GeneralizedTime */
179 static int hf_x509ce_revokedcertificateGroup; /* RevokedCertificateGroup */
180 static int hf_x509ce_containsUserAttributeCerts; /* BOOLEAN */
181 static int hf_x509ce_containsAACerts; /* BOOLEAN */
182 static int hf_x509ce_containsSOAPublicKeyCerts; /* BOOLEAN */
183 static int hf_x509ce_serialNumber; /* CertificateSerialNumber */
184 static int hf_x509ce_issuer; /* Name */
185 static int hf_x509ce_subjectKeyIdentifier; /* SubjectKeyIdentifier */
186 static int hf_x509ce_authorityKeyIdentifier; /* AuthorityKeyIdentifier */
187 static int hf_x509ce_certificateValid; /* Time */
188 static int hf_x509ce_privateKeyValid; /* GeneralizedTime */
189 static int hf_x509ce_subjectPublicKeyAlgID; /* OBJECT_IDENTIFIER */
190 static int hf_x509ce_keyUsage; /* KeyUsage */
191 static int hf_x509ce_subjectAltNameType; /* AltNameType */
192 static int hf_x509ce_policy; /* CertPolicySet */
193 static int hf_x509ce_pathToName; /* Name */
194 static int hf_x509ce_subject; /* Name */
195 static int hf_x509ce_nameConstraints; /* NameConstraintsSyntax */
196 static int hf_x509ce_builtinNameForm; /* T_builtinNameForm */
197 static int hf_x509ce_otherNameForm; /* OBJECT_IDENTIFIER */
198 static int hf_x509ce_CertPolicySet_item; /* CertPolicyId */
199 static int hf_x509ce_cpea_issuedToThisCAAssertion; /* CertificateExactAssertion */
200 static int hf_x509ce_cpea_issuedByThisCAAssertion; /* CertificateExactAssertion */
201 static int hf_x509ce_issuedToThisCAAssertion; /* CertificateAssertion */
202 static int hf_x509ce_issuedByThisCAAssertion; /* CertificateAssertion */
203 static int hf_x509ce_thisUpdate; /* Time */
204 static int hf_x509ce_minCRLNumber; /* CRLNumber */
205 static int hf_x509ce_maxCRLNumber; /* CRLNumber */
206 static int hf_x509ce_reasonFlags; /* ReasonFlags */
207 static int hf_x509ce_dateAndTime; /* Time */
208 static int hf_x509ce_firstIssuer; /* Name */
209 static int hf_x509ce_lastSubject; /* Name */
210 static int hf_x509ce_subjectAltName; /* AltName */
211 static int hf_x509ce_enhancedPathToName; /* GeneralNames */
212 static int hf_x509ce_altnameType; /* AltNameType */
213 static int hf_x509ce_altNameValue; /* GeneralName */
214 static int hf_x509ce_templateID; /* OBJECT_IDENTIFIER */
215 static int hf_x509ce_templateMajorVersion; /* INTEGER */
216 static int hf_x509ce_templateMinorVersion; /* INTEGER */
217 static int hf_x509ce_ntdsObjectSid; /* NtdsObjectSid */
218 static int hf_x509ce_type_id_01; /* OBJECT_IDENTIFIER */
219 static int hf_x509ce_sid; /* PrintableString */
220 static int hf_x509ce_entrustVers; /* GeneralString */
221 static int hf_x509ce_entrustVersInfoFlags; /* EntrustInfoFlags */
222 static int hf_x509ce_NFTypes_item; /* NFType */
223 static int hf_x509ce_capability; /* INTEGER_0_MAX */
224 static int hf_x509ce_version; /* INTEGER_0_MAX */
225 /* named bits */
226 static int hf_x509ce_KeyUsage_digitalSignature;
227 static int hf_x509ce_KeyUsage_contentCommitment;
228 static int hf_x509ce_KeyUsage_keyEncipherment;
229 static int hf_x509ce_KeyUsage_dataEncipherment;
230 static int hf_x509ce_KeyUsage_keyAgreement;
231 static int hf_x509ce_KeyUsage_keyCertSign;
232 static int hf_x509ce_KeyUsage_cRLSign;
233 static int hf_x509ce_KeyUsage_encipherOnly;
234 static int hf_x509ce_KeyUsage_decipherOnly;
235 static int hf_x509ce_OnlyCertificateTypes_user;
236 static int hf_x509ce_OnlyCertificateTypes_authority;
237 static int hf_x509ce_OnlyCertificateTypes_attribute;
238 static int hf_x509ce_ReasonFlags_unused;
239 static int hf_x509ce_ReasonFlags_keyCompromise;
240 static int hf_x509ce_ReasonFlags_cACompromise;
241 static int hf_x509ce_ReasonFlags_affiliationChanged;
242 static int hf_x509ce_ReasonFlags_superseded;
243 static int hf_x509ce_ReasonFlags_cessationOfOperation;
244 static int hf_x509ce_ReasonFlags_certificateHold;
245 static int hf_x509ce_ReasonFlags_privilegeWithdrawn;
246 static int hf_x509ce_ReasonFlags_aACompromise;
247 static int hf_x509ce_EntrustInfoFlags_keyUpdateAllowed;
248 static int hf_x509ce_EntrustInfoFlags_newExtensions;
249 static int hf_x509ce_EntrustInfoFlags_pKIXCertificate;
250 static int hf_x509ce_EntrustInfoFlags_enterpriseCategory;
251 static int hf_x509ce_EntrustInfoFlags_webCategory;
252 static int hf_x509ce_EntrustInfoFlags_sETCategory;
254 /* Initialize the subtree pointers */
255 static int ett_x509ce_AuthorityKeyIdentifier;
256 static int ett_x509ce_KeyUsage;
257 static int ett_x509ce_KeyPurposeIDs;
258 static int ett_x509ce_PrivateKeyUsagePeriod;
259 static int ett_x509ce_CertificatePoliciesSyntax;
260 static int ett_x509ce_PolicyInformation;
261 static int ett_x509ce_SEQUENCE_SIZE_1_MAX_OF_PolicyQualifierInfo;
262 static int ett_x509ce_PolicyQualifierInfo;
263 static int ett_x509ce_PolicyMappingsSyntax;
264 static int ett_x509ce_PolicyMappingsSyntax_item;
265 static int ett_x509ce_GeneralNames;
266 static int ett_x509ce_GeneralName;
267 static int ett_x509ce_OtherName;
268 static int ett_x509ce_EDIPartyName;
269 static int ett_x509ce_AttributesSyntax;
270 static int ett_x509ce_BasicConstraintsSyntax;
271 static int ett_x509ce_NameConstraintsSyntax;
272 static int ett_x509ce_GeneralSubtrees;
273 static int ett_x509ce_GeneralSubtree;
274 static int ett_x509ce_PolicyConstraintsSyntax;
275 static int ett_x509ce_CRLScopeSyntax;
276 static int ett_x509ce_PerAuthorityScope;
277 static int ett_x509ce_OnlyCertificateTypes;
278 static int ett_x509ce_NumberRange;
279 static int ett_x509ce_BaseRevocationInfo;
280 static int ett_x509ce_StatusReferrals;
281 static int ett_x509ce_StatusReferral;
282 static int ett_x509ce_CRLReferral;
283 static int ett_x509ce_DeltaRefInfo;
284 static int ett_x509ce_DeltaInformation;
285 static int ett_x509ce_CRLDistPointsSyntax;
286 static int ett_x509ce_DistributionPoint;
287 static int ett_x509ce_DistributionPointName;
288 static int ett_x509ce_ReasonFlags;
289 static int ett_x509ce_IssuingDistPointSyntax;
290 static int ett_x509ce_ToBeRevokedSyntax;
291 static int ett_x509ce_ToBeRevokedGroup;
292 static int ett_x509ce_ReasonInfo;
293 static int ett_x509ce_CertificateGroup;
294 static int ett_x509ce_CertificateGroupNumberRange;
295 static int ett_x509ce_CertificateSerialNumbers;
296 static int ett_x509ce_RevokedGroupsSyntax;
297 static int ett_x509ce_RevokedGroup;
298 static int ett_x509ce_RevokedCertificateGroup;
299 static int ett_x509ce_AAIssuingDistPointSyntax;
300 static int ett_x509ce_CertificateExactAssertion;
301 static int ett_x509ce_CertificateAssertion;
302 static int ett_x509ce_AltNameType;
303 static int ett_x509ce_CertPolicySet;
304 static int ett_x509ce_CertificatePairExactAssertion;
305 static int ett_x509ce_CertificatePairAssertion;
306 static int ett_x509ce_CertificateListExactAssertion;
307 static int ett_x509ce_CertificateListAssertion;
308 static int ett_x509ce_PkiPathMatchSyntax;
309 static int ett_x509ce_EnhancedCertificateAssertion;
310 static int ett_x509ce_AltName;
311 static int ett_x509ce_CertificateTemplate;
312 static int ett_x509ce_NtdsCaSecurity;
313 static int ett_x509ce_NtdsObjectSid_U;
314 static int ett_x509ce_EntrustVersionInfo;
315 static int ett_x509ce_EntrustInfoFlags;
316 static int ett_x509ce_NFTypes;
317 static int ett_x509ce_ScramblerCapabilities;
321 dissect_x509ce_KeyIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
322 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
323 NULL);
325 return offset;
330 static int
331 dissect_x509ce_OtherNameType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
332 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &actx->external.direct_reference);
334 return offset;
339 static int
340 dissect_x509ce_OtherNameValue(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
341 offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
344 return offset;
348 static const ber_sequence_t OtherName_sequence[] = {
349 { &hf_x509ce_type_id , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509ce_OtherNameType },
350 { &hf_x509ce_value , BER_CLASS_CON, 0, 0, dissect_x509ce_OtherNameValue },
351 { NULL, 0, 0, 0, NULL }
354 static int
355 dissect_x509ce_OtherName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
356 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
357 OtherName_sequence, hf_index, ett_x509ce_OtherName);
359 return offset;
364 static int
365 dissect_x509ce_IA5String(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
366 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
367 actx, tree, tvb, offset, hf_index,
368 NULL);
370 return offset;
374 static const ber_sequence_t EDIPartyName_sequence[] = {
375 { &hf_x509ce_nameAssigner , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509sat_DirectoryString },
376 { &hf_x509ce_partyName , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x509sat_DirectoryString },
377 { NULL, 0, 0, 0, NULL }
381 dissect_x509ce_EDIPartyName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
382 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
383 EDIPartyName_sequence, hf_index, ett_x509ce_EDIPartyName);
385 return offset;
390 static int
391 dissect_x509ce_T_uniformResourceIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
392 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
393 actx, tree, tvb, offset, hf_index,
394 NULL);
397 proto_item_set_url(actx->created_item);
399 return offset;
404 static int
405 dissect_x509ce_T_iPAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
406 uint32_t len = tvb_reported_length(tvb);
407 switch (len) {
408 case 4: /* IPv4 */
409 proto_tree_add_item(tree, hf_x509ce_IPAddress_ipv4, tvb, offset, 4, ENC_BIG_ENDIAN);
410 offset += 4;
411 break;
412 case 8: /* IPv4 + Mask*/
413 proto_tree_add_item(tree, hf_x509ce_IPAddress_ipv4, tvb, offset, 4, ENC_BIG_ENDIAN);
414 offset += 4;
415 proto_tree_add_item(tree, hf_x509ce_IPAddress_ipv4_mask, tvb, offset, 4, ENC_BIG_ENDIAN);
416 offset += 4;
417 break;
418 case 16: /* IPv6 */
419 proto_tree_add_item(tree, hf_x509ce_IPAddress_ipv6, tvb, offset, 16, ENC_NA);
420 offset += 16;
421 break;
422 case 32: /* IPv6 + Mask */
423 proto_tree_add_item(tree, hf_x509ce_IPAddress_ipv6, tvb, offset, 16, ENC_NA);
424 offset += 16;
425 proto_tree_add_item(tree, hf_x509ce_IPAddress_ipv6_mask, tvb, offset, 16, ENC_NA);
426 offset += 16;
427 break;
428 default: /* Unknown */
429 proto_tree_add_item(tree, hf_x509ce_IPAddress_unknown, tvb, offset, len, ENC_NA);
430 offset += len;
431 break;
435 return offset;
440 static int
441 dissect_x509ce_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_) {
442 offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
444 return offset;
448 const value_string x509ce_GeneralName_vals[] = {
449 { 0, "otherName" },
450 { 1, "rfc822Name" },
451 { 2, "dNSName" },
452 { 3, "x400Address" },
453 { 4, "directoryName" },
454 { 5, "ediPartyName" },
455 { 6, "uniformResourceIdentifier" },
456 { 7, "iPAddress" },
457 { 8, "registeredID" },
458 { 0, NULL }
461 static const ber_choice_t GeneralName_choice[] = {
462 { 0, &hf_x509ce_otherName , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x509ce_OtherName },
463 { 1, &hf_x509ce_rfc822Name , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x509ce_IA5String },
464 { 2, &hf_x509ce_dNSName , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_x509ce_IA5String },
465 { 3, &hf_x509ce_x400Address , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_p1_ORAddress },
466 { 4, &hf_x509ce_directoryName, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_x509if_Name },
467 { 5, &hf_x509ce_ediPartyName , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_x509ce_EDIPartyName },
468 { 6, &hf_x509ce_uniformResourceIdentifier, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_x509ce_T_uniformResourceIdentifier },
469 { 7, &hf_x509ce_iPAddress , BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_x509ce_T_iPAddress },
470 { 8, &hf_x509ce_registeredID , BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_x509ce_OBJECT_IDENTIFIER },
471 { 0, NULL, 0, 0, 0, NULL }
475 dissect_x509ce_GeneralName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
476 offset = dissect_ber_choice(actx, tree, tvb, offset,
477 GeneralName_choice, hf_index, ett_x509ce_GeneralName,
478 NULL);
480 return offset;
484 static const ber_sequence_t GeneralNames_sequence_of[1] = {
485 { &hf_x509ce_GeneralNames_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_GeneralName },
489 dissect_x509ce_GeneralNames(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_of(implicit_tag, actx, tree, tvb, offset,
491 GeneralNames_sequence_of, hf_index, ett_x509ce_GeneralNames);
493 return offset;
497 static const ber_sequence_t AuthorityKeyIdentifier_sequence[] = {
498 { &hf_x509ce_keyIdentifier, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_KeyIdentifier },
499 { &hf_x509ce_authorityCertIssuer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralNames },
500 { &hf_x509ce_authorityCertSerialNumber, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509af_CertificateSerialNumber },
501 { NULL, 0, 0, 0, NULL }
505 dissect_x509ce_AuthorityKeyIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
506 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
507 AuthorityKeyIdentifier_sequence, hf_index, ett_x509ce_AuthorityKeyIdentifier);
509 return offset;
515 dissect_x509ce_SubjectKeyIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
516 offset = dissect_x509ce_KeyIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
518 return offset;
522 static int * const KeyUsage_bits[] = {
523 &hf_x509ce_KeyUsage_digitalSignature,
524 &hf_x509ce_KeyUsage_contentCommitment,
525 &hf_x509ce_KeyUsage_keyEncipherment,
526 &hf_x509ce_KeyUsage_dataEncipherment,
527 &hf_x509ce_KeyUsage_keyAgreement,
528 &hf_x509ce_KeyUsage_keyCertSign,
529 &hf_x509ce_KeyUsage_cRLSign,
530 &hf_x509ce_KeyUsage_encipherOnly,
531 &hf_x509ce_KeyUsage_decipherOnly,
532 NULL
536 dissect_x509ce_KeyUsage(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
537 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
538 KeyUsage_bits, 9, hf_index, ett_x509ce_KeyUsage,
539 NULL);
541 return offset;
547 dissect_x509ce_KeyPurposeId(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
548 offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
550 return offset;
554 static const ber_sequence_t KeyPurposeIDs_sequence_of[1] = {
555 { &hf_x509ce_KeyPurposeIDs_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509ce_KeyPurposeId },
559 dissect_x509ce_KeyPurposeIDs(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
560 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
561 KeyPurposeIDs_sequence_of, hf_index, ett_x509ce_KeyPurposeIDs);
563 return offset;
568 static int
569 dissect_x509ce_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_) {
570 offset = dissect_ber_GeneralizedTime(implicit_tag, actx, tree, tvb, offset, hf_index);
572 return offset;
576 static const ber_sequence_t PrivateKeyUsagePeriod_sequence[] = {
577 { &hf_x509ce_notBefore , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralizedTime },
578 { &hf_x509ce_notAfter , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralizedTime },
579 { NULL, 0, 0, 0, NULL }
583 dissect_x509ce_PrivateKeyUsagePeriod(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
584 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
585 PrivateKeyUsagePeriod_sequence, hf_index, ett_x509ce_PrivateKeyUsagePeriod);
587 return offset;
592 static int
593 dissect_x509ce_CertPolicyId(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
594 offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
596 return offset;
601 static int
602 dissect_x509ce_T_policyQualifierId(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
603 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509ce_object_identifier_id, &actx->external.direct_reference);
605 return offset;
610 static int
611 dissect_x509ce_T_qualifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
612 offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
615 return offset;
619 static const ber_sequence_t PolicyQualifierInfo_sequence[] = {
620 { &hf_x509ce_policyQualifierId, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509ce_T_policyQualifierId },
621 { &hf_x509ce_qualifier , BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509ce_T_qualifier },
622 { NULL, 0, 0, 0, NULL }
626 dissect_x509ce_PolicyQualifierInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
627 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
628 PolicyQualifierInfo_sequence, hf_index, ett_x509ce_PolicyQualifierInfo);
630 return offset;
634 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_PolicyQualifierInfo_sequence_of[1] = {
635 { &hf_x509ce_policyQualifiers_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509ce_PolicyQualifierInfo },
638 static int
639 dissect_x509ce_SEQUENCE_SIZE_1_MAX_OF_PolicyQualifierInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
640 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
641 SEQUENCE_SIZE_1_MAX_OF_PolicyQualifierInfo_sequence_of, hf_index, ett_x509ce_SEQUENCE_SIZE_1_MAX_OF_PolicyQualifierInfo);
643 return offset;
647 static const ber_sequence_t PolicyInformation_sequence[] = {
648 { &hf_x509ce_policyIdentifier, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509ce_CertPolicyId },
649 { &hf_x509ce_policyQualifiers, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509ce_SEQUENCE_SIZE_1_MAX_OF_PolicyQualifierInfo },
650 { NULL, 0, 0, 0, NULL }
654 dissect_x509ce_PolicyInformation(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 PolicyInformation_sequence, hf_index, ett_x509ce_PolicyInformation);
658 return offset;
662 static const ber_sequence_t CertificatePoliciesSyntax_sequence_of[1] = {
663 { &hf_x509ce_CertificatePoliciesSyntax_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509ce_PolicyInformation },
667 dissect_x509ce_CertificatePoliciesSyntax(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_sequence_of(implicit_tag, actx, tree, tvb, offset,
669 CertificatePoliciesSyntax_sequence_of, hf_index, ett_x509ce_CertificatePoliciesSyntax);
671 return offset;
675 static const ber_sequence_t PolicyMappingsSyntax_item_sequence[] = {
676 { &hf_x509ce_issuerDomainPolicy, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509ce_CertPolicyId },
677 { &hf_x509ce_subjectDomainPolicy, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509ce_CertPolicyId },
678 { NULL, 0, 0, 0, NULL }
681 static int
682 dissect_x509ce_PolicyMappingsSyntax_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_) {
683 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
684 PolicyMappingsSyntax_item_sequence, hf_index, ett_x509ce_PolicyMappingsSyntax_item);
686 return offset;
690 static const ber_sequence_t PolicyMappingsSyntax_sequence_of[1] = {
691 { &hf_x509ce_PolicyMappingsSyntax_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509ce_PolicyMappingsSyntax_item },
695 dissect_x509ce_PolicyMappingsSyntax(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
696 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
697 PolicyMappingsSyntax_sequence_of, hf_index, ett_x509ce_PolicyMappingsSyntax);
699 return offset;
703 static const ber_sequence_t AttributesSyntax_sequence_of[1] = {
704 { &hf_x509ce_AttributesSyntax_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_Attribute },
708 dissect_x509ce_AttributesSyntax(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
709 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
710 AttributesSyntax_sequence_of, hf_index, ett_x509ce_AttributesSyntax);
712 return offset;
717 static int
718 dissect_x509ce_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_) {
719 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
721 return offset;
726 static int
727 dissect_x509ce_INTEGER_0_MAX(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
728 offset = dissect_ber_integer64(implicit_tag, actx, tree, tvb, offset, hf_index,
729 NULL);
731 return offset;
735 static const ber_sequence_t BasicConstraintsSyntax_sequence[] = {
736 { &hf_x509ce_cA , BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509ce_BOOLEAN },
737 { &hf_x509ce_pathLenConstraint, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509ce_INTEGER_0_MAX },
738 { NULL, 0, 0, 0, NULL }
742 dissect_x509ce_BasicConstraintsSyntax(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
743 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
744 BasicConstraintsSyntax_sequence, hf_index, ett_x509ce_BasicConstraintsSyntax);
746 return offset;
752 dissect_x509ce_BaseDistance(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
753 offset = dissect_ber_integer64(implicit_tag, actx, tree, tvb, offset, hf_index,
754 NULL);
756 return offset;
760 static const ber_sequence_t GeneralSubtree_sequence[] = {
761 { &hf_x509ce_base , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_GeneralName },
762 { &hf_x509ce_minimum , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_BaseDistance },
763 { &hf_x509ce_maximum , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_BaseDistance },
764 { NULL, 0, 0, 0, NULL }
768 dissect_x509ce_GeneralSubtree(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
769 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
770 GeneralSubtree_sequence, hf_index, ett_x509ce_GeneralSubtree);
772 return offset;
776 static const ber_sequence_t GeneralSubtrees_sequence_of[1] = {
777 { &hf_x509ce_GeneralSubtrees_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509ce_GeneralSubtree },
781 dissect_x509ce_GeneralSubtrees(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
782 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
783 GeneralSubtrees_sequence_of, hf_index, ett_x509ce_GeneralSubtrees);
785 return offset;
789 static const ber_sequence_t NameConstraintsSyntax_sequence[] = {
790 { &hf_x509ce_permittedSubtrees, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralSubtrees },
791 { &hf_x509ce_excludedSubtrees, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralSubtrees },
792 { NULL, 0, 0, 0, NULL }
796 dissect_x509ce_NameConstraintsSyntax(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
797 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
798 NameConstraintsSyntax_sequence, hf_index, ett_x509ce_NameConstraintsSyntax);
800 return offset;
806 dissect_x509ce_SkipCerts(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
807 offset = dissect_ber_integer64(implicit_tag, actx, tree, tvb, offset, hf_index,
808 NULL);
810 return offset;
814 static const ber_sequence_t PolicyConstraintsSyntax_sequence[] = {
815 { &hf_x509ce_requireExplicitPolicy, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_SkipCerts },
816 { &hf_x509ce_inhibitPolicyMapping, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_SkipCerts },
817 { NULL, 0, 0, 0, NULL }
821 dissect_x509ce_PolicyConstraintsSyntax(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
822 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
823 PolicyConstraintsSyntax_sequence, hf_index, ett_x509ce_PolicyConstraintsSyntax);
825 return offset;
831 dissect_x509ce_CRLNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
832 offset = dissect_ber_integer64(implicit_tag, actx, tree, tvb, offset, hf_index,
833 NULL);
835 return offset;
839 const value_string x509ce_CRLReason_vals[] = {
840 { 0, "unspecified" },
841 { 1, "keyCompromise" },
842 { 2, "cACompromise" },
843 { 3, "affiliationChanged" },
844 { 4, "superseded" },
845 { 5, "cessationOfOperation" },
846 { 6, "certificateHold" },
847 { 8, "removeFromCRL" },
848 { 9, "privilegeWithdrawn" },
849 { 10, "aaCompromise" },
850 { 0, NULL }
855 dissect_x509ce_CRLReason(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
856 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
857 NULL);
859 return offset;
865 dissect_x509ce_HoldInstruction(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_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
868 return offset;
872 const value_string x509ce_DistributionPointName_vals[] = {
873 { 0, "fullName" },
874 { 1, "nameRelativeToCRLIssuer" },
875 { 0, NULL }
878 static const ber_choice_t DistributionPointName_choice[] = {
879 { 0, &hf_x509ce_fullName , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralNames },
880 { 1, &hf_x509ce_nameRelativeToCRLIssuer, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x509if_RelativeDistinguishedName },
881 { 0, NULL, 0, 0, 0, NULL }
885 dissect_x509ce_DistributionPointName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
886 offset = dissect_ber_choice(actx, tree, tvb, offset,
887 DistributionPointName_choice, hf_index, ett_x509ce_DistributionPointName,
888 NULL);
890 return offset;
894 static int * const OnlyCertificateTypes_bits[] = {
895 &hf_x509ce_OnlyCertificateTypes_user,
896 &hf_x509ce_OnlyCertificateTypes_authority,
897 &hf_x509ce_OnlyCertificateTypes_attribute,
898 NULL
902 dissect_x509ce_OnlyCertificateTypes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
903 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
904 OnlyCertificateTypes_bits, 3, hf_index, ett_x509ce_OnlyCertificateTypes,
905 NULL);
907 return offset;
911 static int * const ReasonFlags_bits[] = {
912 &hf_x509ce_ReasonFlags_unused,
913 &hf_x509ce_ReasonFlags_keyCompromise,
914 &hf_x509ce_ReasonFlags_cACompromise,
915 &hf_x509ce_ReasonFlags_affiliationChanged,
916 &hf_x509ce_ReasonFlags_superseded,
917 &hf_x509ce_ReasonFlags_cessationOfOperation,
918 &hf_x509ce_ReasonFlags_certificateHold,
919 &hf_x509ce_ReasonFlags_privilegeWithdrawn,
920 &hf_x509ce_ReasonFlags_aACompromise,
921 NULL
925 dissect_x509ce_ReasonFlags(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
926 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
927 ReasonFlags_bits, 9, hf_index, ett_x509ce_ReasonFlags,
928 NULL);
930 return offset;
935 static int
936 dissect_x509ce_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_) {
937 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
938 NULL);
940 return offset;
944 static const ber_sequence_t NumberRange_sequence[] = {
945 { &hf_x509ce_startingNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_INTEGER },
946 { &hf_x509ce_endingNumber , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_INTEGER },
947 { &hf_x509ce_modulus , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509ce_INTEGER },
948 { NULL, 0, 0, 0, NULL }
952 dissect_x509ce_NumberRange(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
953 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
954 NumberRange_sequence, hf_index, ett_x509ce_NumberRange);
956 return offset;
962 dissect_x509ce_CRLStreamIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
963 offset = dissect_ber_integer64(implicit_tag, actx, tree, tvb, offset, hf_index,
964 NULL);
966 return offset;
970 static const ber_sequence_t BaseRevocationInfo_sequence[] = {
971 { &hf_x509ce_cRLStreamIdentifier, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CRLStreamIdentifier },
972 { &hf_x509ce_cRLNumber , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x509ce_CRLNumber },
973 { &hf_x509ce_baseThisUpdate, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralizedTime },
974 { NULL, 0, 0, 0, NULL }
978 dissect_x509ce_BaseRevocationInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
979 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
980 BaseRevocationInfo_sequence, hf_index, ett_x509ce_BaseRevocationInfo);
982 return offset;
986 static const ber_sequence_t PerAuthorityScope_sequence[] = {
987 { &hf_x509ce_authorityName, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_GeneralName },
988 { &hf_x509ce_distributionPoint, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_DistributionPointName },
989 { &hf_x509ce_onlyContains , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_OnlyCertificateTypes },
990 { &hf_x509ce_onlySomeReasons, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_ReasonFlags },
991 { &hf_x509ce_serialNumberRange, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_NumberRange },
992 { &hf_x509ce_subjectKeyIdRange, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_NumberRange },
993 { &hf_x509ce_nameSubtrees , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralNames },
994 { &hf_x509ce_baseRevocationInfo, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_BaseRevocationInfo },
995 { NULL, 0, 0, 0, NULL }
999 dissect_x509ce_PerAuthorityScope(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1000 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1001 PerAuthorityScope_sequence, hf_index, ett_x509ce_PerAuthorityScope);
1003 return offset;
1007 static const ber_sequence_t CRLScopeSyntax_sequence_of[1] = {
1008 { &hf_x509ce_CRLScopeSyntax_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509ce_PerAuthorityScope },
1012 dissect_x509ce_CRLScopeSyntax(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1013 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1014 CRLScopeSyntax_sequence_of, hf_index, ett_x509ce_CRLScopeSyntax);
1016 return offset;
1020 static const ber_sequence_t DeltaRefInfo_sequence[] = {
1021 { &hf_x509ce_deltaLocation, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_GeneralName },
1022 { &hf_x509ce_lastDelta , BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509ce_GeneralizedTime },
1023 { NULL, 0, 0, 0, NULL }
1027 dissect_x509ce_DeltaRefInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1028 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1029 DeltaRefInfo_sequence, hf_index, ett_x509ce_DeltaRefInfo);
1031 return offset;
1035 static const ber_sequence_t CRLReferral_sequence[] = {
1036 { &hf_x509ce_crlr_issuer , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_GeneralName },
1037 { &hf_x509ce_location , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_GeneralName },
1038 { &hf_x509ce_deltaRefInfo , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_DeltaRefInfo },
1039 { &hf_x509ce_cRLScope , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509ce_CRLScopeSyntax },
1040 { &hf_x509ce_lastUpdate , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralizedTime },
1041 { &hf_x509ce_lastChangedCRL, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralizedTime },
1042 { NULL, 0, 0, 0, NULL }
1046 dissect_x509ce_CRLReferral(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1047 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1048 CRLReferral_sequence, hf_index, ett_x509ce_CRLReferral);
1050 return offset;
1054 const value_string x509ce_StatusReferral_vals[] = {
1055 { 0, "cRLReferral" },
1056 { 0, NULL }
1059 static const ber_choice_t StatusReferral_choice[] = {
1060 { 0, &hf_x509ce_cRLReferral , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x509ce_CRLReferral },
1061 { 0, NULL, 0, 0, 0, NULL }
1065 dissect_x509ce_StatusReferral(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1066 offset = dissect_ber_choice(actx, tree, tvb, offset,
1067 StatusReferral_choice, hf_index, ett_x509ce_StatusReferral,
1068 NULL);
1070 return offset;
1074 static const ber_sequence_t StatusReferrals_sequence_of[1] = {
1075 { &hf_x509ce_StatusReferrals_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_StatusReferral },
1079 dissect_x509ce_StatusReferrals(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1080 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1081 StatusReferrals_sequence_of, hf_index, ett_x509ce_StatusReferrals);
1083 return offset;
1087 const value_string x509ce_OrderedListSyntax_vals[] = {
1088 { 0, "ascSerialNum" },
1089 { 1, "ascRevDate" },
1090 { 0, NULL }
1095 dissect_x509ce_OrderedListSyntax(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1096 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1097 NULL);
1099 return offset;
1103 static const ber_sequence_t DeltaInformation_sequence[] = {
1104 { &hf_x509ce_deltaLocation, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_GeneralName },
1105 { &hf_x509ce_nextDelta , BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509ce_GeneralizedTime },
1106 { NULL, 0, 0, 0, NULL }
1110 dissect_x509ce_DeltaInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1111 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1112 DeltaInformation_sequence, hf_index, ett_x509ce_DeltaInformation);
1114 return offset;
1118 static const ber_sequence_t DistributionPoint_sequence[] = {
1119 { &hf_x509ce_distributionPoint, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_DistributionPointName },
1120 { &hf_x509ce_reasons , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_ReasonFlags },
1121 { &hf_x509ce_cRLIssuer , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralNames },
1122 { NULL, 0, 0, 0, NULL }
1126 dissect_x509ce_DistributionPoint(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1127 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1128 DistributionPoint_sequence, hf_index, ett_x509ce_DistributionPoint);
1130 return offset;
1134 static const ber_sequence_t CRLDistPointsSyntax_sequence_of[1] = {
1135 { &hf_x509ce_CRLDistPointsSyntax_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509ce_DistributionPoint },
1139 dissect_x509ce_CRLDistPointsSyntax(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1140 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1141 CRLDistPointsSyntax_sequence_of, hf_index, ett_x509ce_CRLDistPointsSyntax);
1143 return offset;
1147 static const ber_sequence_t IssuingDistPointSyntax_sequence[] = {
1148 { &hf_x509ce_distributionPoint, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_DistributionPointName },
1149 { &hf_x509ce_onlyContainsUserPublicKeyCerts, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_BOOLEAN },
1150 { &hf_x509ce_onlyContainsCACerts, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_BOOLEAN },
1151 { &hf_x509ce_onlySomeReasons, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_ReasonFlags },
1152 { &hf_x509ce_indirectCRL , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_BOOLEAN },
1153 { NULL, 0, 0, 0, NULL }
1157 dissect_x509ce_IssuingDistPointSyntax(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1158 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1159 IssuingDistPointSyntax_sequence, hf_index, ett_x509ce_IssuingDistPointSyntax);
1161 return offset;
1167 dissect_x509ce_BaseCRLNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1168 offset = dissect_x509ce_CRLNumber(implicit_tag, tvb, offset, actx, tree, hf_index);
1170 return offset;
1174 static const ber_sequence_t ReasonInfo_sequence[] = {
1175 { &hf_x509ce_reasonCode , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_x509ce_CRLReason },
1176 { &hf_x509ce_holdInstructionCode, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509ce_HoldInstruction },
1177 { NULL, 0, 0, 0, NULL }
1180 static int
1181 dissect_x509ce_ReasonInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1182 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1183 ReasonInfo_sequence, hf_index, ett_x509ce_ReasonInfo);
1185 return offset;
1189 static const ber_sequence_t CertificateSerialNumbers_sequence_of[1] = {
1190 { &hf_x509ce_CertificateSerialNumbers_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x509af_CertificateSerialNumber },
1193 static int
1194 dissect_x509ce_CertificateSerialNumbers(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1195 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1196 CertificateSerialNumbers_sequence_of, hf_index, ett_x509ce_CertificateSerialNumbers);
1198 return offset;
1202 static const ber_sequence_t CertificateGroupNumberRange_sequence[] = {
1203 { &hf_x509ce_startingNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x509ce_INTEGER },
1204 { &hf_x509ce_endingNumber , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x509ce_INTEGER },
1205 { NULL, 0, 0, 0, NULL }
1208 static int
1209 dissect_x509ce_CertificateGroupNumberRange(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1210 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1211 CertificateGroupNumberRange_sequence, hf_index, ett_x509ce_CertificateGroupNumberRange);
1213 return offset;
1217 static const value_string x509ce_CertificateGroup_vals[] = {
1218 { 0, "serialNumbers" },
1219 { 1, "serialNumberRange" },
1220 { 2, "nameSubtree" },
1221 { 0, NULL }
1224 static const ber_choice_t CertificateGroup_choice[] = {
1225 { 0, &hf_x509ce_serialNumbers, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateSerialNumbers },
1226 { 1, &hf_x509ce_certificateGroupNumberRange, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateGroupNumberRange },
1227 { 2, &hf_x509ce_nameSubtree , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralName },
1228 { 0, NULL, 0, 0, 0, NULL }
1231 static int
1232 dissect_x509ce_CertificateGroup(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1233 offset = dissect_ber_choice(actx, tree, tvb, offset,
1234 CertificateGroup_choice, hf_index, ett_x509ce_CertificateGroup,
1235 NULL);
1237 return offset;
1241 static const ber_sequence_t ToBeRevokedGroup_sequence[] = {
1242 { &hf_x509ce_certificateIssuer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_GeneralName },
1243 { &hf_x509ce_reasonInfo , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_ReasonInfo },
1244 { &hf_x509ce_revocationTime, BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_x509ce_GeneralizedTime },
1245 { &hf_x509ce_certificateGroup, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_CertificateGroup },
1246 { NULL, 0, 0, 0, NULL }
1249 static int
1250 dissect_x509ce_ToBeRevokedGroup(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1251 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1252 ToBeRevokedGroup_sequence, hf_index, ett_x509ce_ToBeRevokedGroup);
1254 return offset;
1258 static const ber_sequence_t ToBeRevokedSyntax_sequence_of[1] = {
1259 { &hf_x509ce_ToBeRevokedSyntax_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509ce_ToBeRevokedGroup },
1262 static int
1263 dissect_x509ce_ToBeRevokedSyntax(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1264 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1265 ToBeRevokedSyntax_sequence_of, hf_index, ett_x509ce_ToBeRevokedSyntax);
1267 return offset;
1271 static const value_string x509ce_RevokedCertificateGroup_vals[] = {
1272 { 0, "serialNumberRange" },
1273 { 1, "nameSubtree" },
1274 { 0, NULL }
1277 static const ber_choice_t RevokedCertificateGroup_choice[] = {
1278 { 0, &hf_x509ce_serialNumberRange, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509ce_NumberRange },
1279 { 1, &hf_x509ce_nameSubtree , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_x509ce_GeneralName },
1280 { 0, NULL, 0, 0, 0, NULL }
1283 static int
1284 dissect_x509ce_RevokedCertificateGroup(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1285 offset = dissect_ber_choice(actx, tree, tvb, offset,
1286 RevokedCertificateGroup_choice, hf_index, ett_x509ce_RevokedCertificateGroup,
1287 NULL);
1289 return offset;
1293 static const ber_sequence_t RevokedGroup_sequence[] = {
1294 { &hf_x509ce_certificateIssuer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_GeneralName },
1295 { &hf_x509ce_reasonInfo , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_ReasonInfo },
1296 { &hf_x509ce_invalidityDate, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralizedTime },
1297 { &hf_x509ce_revokedcertificateGroup, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_RevokedCertificateGroup },
1298 { NULL, 0, 0, 0, NULL }
1301 static int
1302 dissect_x509ce_RevokedGroup(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1303 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1304 RevokedGroup_sequence, hf_index, ett_x509ce_RevokedGroup);
1306 return offset;
1310 static const ber_sequence_t RevokedGroupsSyntax_sequence_of[1] = {
1311 { &hf_x509ce_RevokedGroupsSyntax_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509ce_RevokedGroup },
1314 static int
1315 dissect_x509ce_RevokedGroupsSyntax(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1316 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1317 RevokedGroupsSyntax_sequence_of, hf_index, ett_x509ce_RevokedGroupsSyntax);
1319 return offset;
1324 static int
1325 dissect_x509ce_ExpiredCertsOnCRL(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1326 offset = dissect_ber_GeneralizedTime(implicit_tag, actx, tree, tvb, offset, hf_index);
1328 return offset;
1332 static const ber_sequence_t AAIssuingDistPointSyntax_sequence[] = {
1333 { &hf_x509ce_distributionPoint, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_DistributionPointName },
1334 { &hf_x509ce_onlySomeReasons, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_ReasonFlags },
1335 { &hf_x509ce_indirectCRL , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_BOOLEAN },
1336 { &hf_x509ce_containsUserAttributeCerts, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_BOOLEAN },
1337 { &hf_x509ce_containsAACerts, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_BOOLEAN },
1338 { &hf_x509ce_containsSOAPublicKeyCerts, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_BOOLEAN },
1339 { NULL, 0, 0, 0, NULL }
1342 static int
1343 dissect_x509ce_AAIssuingDistPointSyntax(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1344 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1345 AAIssuingDistPointSyntax_sequence, hf_index, ett_x509ce_AAIssuingDistPointSyntax);
1347 return offset;
1351 static const ber_sequence_t CertificateExactAssertion_sequence[] = {
1352 { &hf_x509ce_serialNumber , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x509af_CertificateSerialNumber },
1353 { &hf_x509ce_issuer , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_x509if_Name },
1354 { NULL, 0, 0, 0, NULL }
1358 dissect_x509ce_CertificateExactAssertion(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1359 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1360 CertificateExactAssertion_sequence, hf_index, ett_x509ce_CertificateExactAssertion);
1362 return offset;
1366 static const value_string x509ce_T_builtinNameForm_vals[] = {
1367 { 1, "rfc822Name" },
1368 { 2, "dNSName" },
1369 { 3, "x400Address" },
1370 { 4, "directoryName" },
1371 { 5, "ediPartyName" },
1372 { 6, "uniformResourceIdentifier" },
1373 { 7, "iPAddress" },
1374 { 8, "registeredId" },
1375 { 0, NULL }
1379 static int
1380 dissect_x509ce_T_builtinNameForm(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1381 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1382 NULL);
1384 return offset;
1388 const value_string x509ce_AltNameType_vals[] = {
1389 { 0, "builtinNameForm" },
1390 { 1, "otherNameForm" },
1391 { 0, NULL }
1394 static const ber_choice_t AltNameType_choice[] = {
1395 { 0, &hf_x509ce_builtinNameForm, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_x509ce_T_builtinNameForm },
1396 { 1, &hf_x509ce_otherNameForm, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509ce_OBJECT_IDENTIFIER },
1397 { 0, NULL, 0, 0, 0, NULL }
1401 dissect_x509ce_AltNameType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1402 offset = dissect_ber_choice(actx, tree, tvb, offset,
1403 AltNameType_choice, hf_index, ett_x509ce_AltNameType,
1404 NULL);
1406 return offset;
1410 static const ber_sequence_t CertPolicySet_sequence_of[1] = {
1411 { &hf_x509ce_CertPolicySet_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509ce_CertPolicyId },
1415 dissect_x509ce_CertPolicySet(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1416 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1417 CertPolicySet_sequence_of, hf_index, ett_x509ce_CertPolicySet);
1419 return offset;
1423 static const ber_sequence_t CertificateAssertion_sequence[] = {
1424 { &hf_x509ce_serialNumber , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509af_CertificateSerialNumber },
1425 { &hf_x509ce_issuer , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509if_Name },
1426 { &hf_x509ce_subjectKeyIdentifier, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_SubjectKeyIdentifier },
1427 { &hf_x509ce_authorityKeyIdentifier, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_AuthorityKeyIdentifier },
1428 { &hf_x509ce_certificateValid, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509af_Time },
1429 { &hf_x509ce_privateKeyValid, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralizedTime },
1430 { &hf_x509ce_subjectPublicKeyAlgID, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_OBJECT_IDENTIFIER },
1431 { &hf_x509ce_keyUsage , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_KeyUsage },
1432 { &hf_x509ce_subjectAltNameType, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_AltNameType },
1433 { &hf_x509ce_policy , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertPolicySet },
1434 { &hf_x509ce_pathToName , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509if_Name },
1435 { &hf_x509ce_subject , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509if_Name },
1436 { &hf_x509ce_nameConstraints, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_NameConstraintsSyntax },
1437 { NULL, 0, 0, 0, NULL }
1441 dissect_x509ce_CertificateAssertion(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1442 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1443 CertificateAssertion_sequence, hf_index, ett_x509ce_CertificateAssertion);
1445 return offset;
1449 static const ber_sequence_t CertificatePairExactAssertion_sequence[] = {
1450 { &hf_x509ce_cpea_issuedToThisCAAssertion, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateExactAssertion },
1451 { &hf_x509ce_cpea_issuedByThisCAAssertion, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateExactAssertion },
1452 { NULL, 0, 0, 0, NULL }
1456 dissect_x509ce_CertificatePairExactAssertion(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1457 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1458 CertificatePairExactAssertion_sequence, hf_index, ett_x509ce_CertificatePairExactAssertion);
1460 return offset;
1464 static const ber_sequence_t CertificatePairAssertion_sequence[] = {
1465 { &hf_x509ce_issuedToThisCAAssertion, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateAssertion },
1466 { &hf_x509ce_issuedByThisCAAssertion, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateAssertion },
1467 { NULL, 0, 0, 0, NULL }
1471 dissect_x509ce_CertificatePairAssertion(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_sequence(implicit_tag, actx, tree, tvb, offset,
1473 CertificatePairAssertion_sequence, hf_index, ett_x509ce_CertificatePairAssertion);
1475 return offset;
1479 static const ber_sequence_t CertificateListExactAssertion_sequence[] = {
1480 { &hf_x509ce_issuer , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_x509if_Name },
1481 { &hf_x509ce_thisUpdate , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_x509af_Time },
1482 { &hf_x509ce_distributionPoint, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_DistributionPointName },
1483 { NULL, 0, 0, 0, NULL }
1487 dissect_x509ce_CertificateListExactAssertion(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1488 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1489 CertificateListExactAssertion_sequence, hf_index, ett_x509ce_CertificateListExactAssertion);
1491 return offset;
1495 static const ber_sequence_t CertificateListAssertion_sequence[] = {
1496 { &hf_x509ce_issuer , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_Name },
1497 { &hf_x509ce_minCRLNumber , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CRLNumber },
1498 { &hf_x509ce_maxCRLNumber , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CRLNumber },
1499 { &hf_x509ce_reasonFlags , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509ce_ReasonFlags },
1500 { &hf_x509ce_dateAndTime , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509af_Time },
1501 { &hf_x509ce_distributionPoint, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_DistributionPointName },
1502 { &hf_x509ce_authorityKeyIdentifier, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_AuthorityKeyIdentifier },
1503 { NULL, 0, 0, 0, NULL }
1507 dissect_x509ce_CertificateListAssertion(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1508 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1509 CertificateListAssertion_sequence, hf_index, ett_x509ce_CertificateListAssertion);
1511 return offset;
1515 static const ber_sequence_t PkiPathMatchSyntax_sequence[] = {
1516 { &hf_x509ce_firstIssuer , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_x509if_Name },
1517 { &hf_x509ce_lastSubject , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_x509if_Name },
1518 { NULL, 0, 0, 0, NULL }
1522 dissect_x509ce_PkiPathMatchSyntax(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1523 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1524 PkiPathMatchSyntax_sequence, hf_index, ett_x509ce_PkiPathMatchSyntax);
1526 return offset;
1530 static const ber_sequence_t AltName_sequence[] = {
1531 { &hf_x509ce_altnameType , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_AltNameType },
1532 { &hf_x509ce_altNameValue , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_GeneralName },
1533 { NULL, 0, 0, 0, NULL }
1536 static int
1537 dissect_x509ce_AltName(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_sequence(implicit_tag, actx, tree, tvb, offset,
1539 AltName_sequence, hf_index, ett_x509ce_AltName);
1541 return offset;
1545 static const ber_sequence_t EnhancedCertificateAssertion_sequence[] = {
1546 { &hf_x509ce_serialNumber , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509af_CertificateSerialNumber },
1547 { &hf_x509ce_issuer , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509if_Name },
1548 { &hf_x509ce_subjectKeyIdentifier, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_SubjectKeyIdentifier },
1549 { &hf_x509ce_authorityKeyIdentifier, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_AuthorityKeyIdentifier },
1550 { &hf_x509ce_certificateValid, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509af_Time },
1551 { &hf_x509ce_privateKeyValid, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralizedTime },
1552 { &hf_x509ce_subjectPublicKeyAlgID, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_OBJECT_IDENTIFIER },
1553 { &hf_x509ce_keyUsage , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_KeyUsage },
1554 { &hf_x509ce_subjectAltName, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_AltName },
1555 { &hf_x509ce_policy , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertPolicySet },
1556 { &hf_x509ce_enhancedPathToName, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralNames },
1557 { &hf_x509ce_subject , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509if_Name },
1558 { &hf_x509ce_nameConstraints, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_NameConstraintsSyntax },
1559 { NULL, 0, 0, 0, NULL }
1562 static int
1563 dissect_x509ce_EnhancedCertificateAssertion(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1564 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1565 EnhancedCertificateAssertion_sequence, hf_index, ett_x509ce_EnhancedCertificateAssertion);
1567 return offset;
1571 static const ber_sequence_t CertificateTemplate_sequence[] = {
1572 { &hf_x509ce_templateID , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509ce_OBJECT_IDENTIFIER },
1573 { &hf_x509ce_templateMajorVersion, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x509ce_INTEGER },
1574 { &hf_x509ce_templateMinorVersion, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509ce_INTEGER },
1575 { NULL, 0, 0, 0, NULL }
1578 static int
1579 dissect_x509ce_CertificateTemplate(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1580 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1581 CertificateTemplate_sequence, hf_index, ett_x509ce_CertificateTemplate);
1583 return offset;
1588 static int
1589 dissect_x509ce_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_) {
1590 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1591 actx, tree, tvb, offset, hf_index,
1592 NULL);
1594 return offset;
1598 static const ber_sequence_t NtdsObjectSid_U_sequence[] = {
1599 { &hf_x509ce_type_id_01 , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509ce_OBJECT_IDENTIFIER },
1600 { &hf_x509ce_sid , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x509ce_PrintableString },
1601 { NULL, 0, 0, 0, NULL }
1604 static int
1605 dissect_x509ce_NtdsObjectSid_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1606 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1607 NtdsObjectSid_U_sequence, hf_index, ett_x509ce_NtdsObjectSid_U);
1609 return offset;
1614 static int
1615 dissect_x509ce_NtdsObjectSid(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1616 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1617 hf_index, BER_CLASS_CON, 0, true, dissect_x509ce_NtdsObjectSid_U);
1619 return offset;
1623 static const ber_sequence_t NtdsCaSecurity_sequence[] = {
1624 { &hf_x509ce_ntdsObjectSid, BER_CLASS_CON, 0, BER_FLAGS_NOOWNTAG, dissect_x509ce_NtdsObjectSid },
1625 { NULL, 0, 0, 0, NULL }
1628 static int
1629 dissect_x509ce_NtdsCaSecurity(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1630 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1631 NtdsCaSecurity_sequence, hf_index, ett_x509ce_NtdsCaSecurity);
1633 return offset;
1638 static int
1639 dissect_x509ce_GeneralString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1640 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GeneralString,
1641 actx, tree, tvb, offset, hf_index,
1642 NULL);
1644 return offset;
1648 static int * const EntrustInfoFlags_bits[] = {
1649 &hf_x509ce_EntrustInfoFlags_keyUpdateAllowed,
1650 &hf_x509ce_EntrustInfoFlags_newExtensions,
1651 &hf_x509ce_EntrustInfoFlags_pKIXCertificate,
1652 &hf_x509ce_EntrustInfoFlags_enterpriseCategory,
1653 &hf_x509ce_EntrustInfoFlags_webCategory,
1654 &hf_x509ce_EntrustInfoFlags_sETCategory,
1655 NULL
1658 static int
1659 dissect_x509ce_EntrustInfoFlags(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1660 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
1661 EntrustInfoFlags_bits, 6, hf_index, ett_x509ce_EntrustInfoFlags,
1662 NULL);
1664 return offset;
1668 static const ber_sequence_t EntrustVersionInfo_sequence[] = {
1669 { &hf_x509ce_entrustVers , BER_CLASS_UNI, BER_UNI_TAG_GeneralString, BER_FLAGS_NOOWNTAG, dissect_x509ce_GeneralString },
1670 { &hf_x509ce_entrustVersInfoFlags, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509ce_EntrustInfoFlags },
1671 { NULL, 0, 0, 0, NULL }
1674 static int
1675 dissect_x509ce_EntrustVersionInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1676 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1677 EntrustVersionInfo_sequence, hf_index, ett_x509ce_EntrustVersionInfo);
1679 return offset;
1684 static int
1685 dissect_x509ce_NFType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1686 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
1687 actx, tree, tvb, offset, hf_index,
1688 NULL);
1690 return offset;
1694 static const ber_sequence_t NFTypes_sequence_of[1] = {
1695 { &hf_x509ce_NFTypes_item , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_x509ce_NFType },
1698 static int
1699 dissect_x509ce_NFTypes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1700 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1701 NFTypes_sequence_of, hf_index, ett_x509ce_NFTypes);
1703 return offset;
1707 static const ber_sequence_t ScramblerCapabilities_sequence[] = {
1708 { &hf_x509ce_capability , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x509ce_INTEGER_0_MAX },
1709 { &hf_x509ce_version , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x509ce_INTEGER_0_MAX },
1710 { NULL, 0, 0, 0, NULL }
1714 dissect_x509ce_ScramblerCapabilities(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1715 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1716 ScramblerCapabilities_sequence, hf_index, ett_x509ce_ScramblerCapabilities);
1718 return offset;
1724 dissect_x509ce_CiplusInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1725 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
1726 NULL, 0, hf_index, -1,
1727 NULL);
1729 return offset;
1735 dissect_x509ce_CicamBrandId(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1736 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1737 NULL);
1739 return offset;
1745 dissect_x509ce_SecurityLevel(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1746 offset = dissect_ber_integer64(implicit_tag, actx, tree, tvb, offset, hf_index,
1747 NULL);
1749 return offset;
1752 /*--- PDUs ---*/
1754 static int dissect_AuthorityKeyIdentifier_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1755 int offset = 0;
1756 asn1_ctx_t asn1_ctx;
1757 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1758 offset = dissect_x509ce_AuthorityKeyIdentifier(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_AuthorityKeyIdentifier_PDU);
1759 return offset;
1761 static int dissect_SubjectKeyIdentifier_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1762 int offset = 0;
1763 asn1_ctx_t asn1_ctx;
1764 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1765 offset = dissect_x509ce_SubjectKeyIdentifier(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_SubjectKeyIdentifier_PDU);
1766 return offset;
1768 static int dissect_KeyUsage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1769 int offset = 0;
1770 asn1_ctx_t asn1_ctx;
1771 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1772 offset = dissect_x509ce_KeyUsage(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_KeyUsage_PDU);
1773 return offset;
1775 static int dissect_KeyPurposeIDs_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1776 int offset = 0;
1777 asn1_ctx_t asn1_ctx;
1778 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1779 offset = dissect_x509ce_KeyPurposeIDs(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_KeyPurposeIDs_PDU);
1780 return offset;
1782 static int dissect_PrivateKeyUsagePeriod_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1783 int offset = 0;
1784 asn1_ctx_t asn1_ctx;
1785 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1786 offset = dissect_x509ce_PrivateKeyUsagePeriod(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_PrivateKeyUsagePeriod_PDU);
1787 return offset;
1789 static int dissect_CertificatePoliciesSyntax_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1790 int offset = 0;
1791 asn1_ctx_t asn1_ctx;
1792 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1793 offset = dissect_x509ce_CertificatePoliciesSyntax(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_CertificatePoliciesSyntax_PDU);
1794 return offset;
1796 static int dissect_PolicyMappingsSyntax_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1797 int offset = 0;
1798 asn1_ctx_t asn1_ctx;
1799 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1800 offset = dissect_x509ce_PolicyMappingsSyntax(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_PolicyMappingsSyntax_PDU);
1801 return offset;
1803 static int dissect_GeneralNames_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1804 int offset = 0;
1805 asn1_ctx_t asn1_ctx;
1806 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1807 offset = dissect_x509ce_GeneralNames(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_GeneralNames_PDU);
1808 return offset;
1810 static int dissect_AttributesSyntax_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1811 int offset = 0;
1812 asn1_ctx_t asn1_ctx;
1813 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1814 offset = dissect_x509ce_AttributesSyntax(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_AttributesSyntax_PDU);
1815 return offset;
1817 static int dissect_BasicConstraintsSyntax_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1818 int offset = 0;
1819 asn1_ctx_t asn1_ctx;
1820 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1821 offset = dissect_x509ce_BasicConstraintsSyntax(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_BasicConstraintsSyntax_PDU);
1822 return offset;
1824 static int dissect_NameConstraintsSyntax_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1825 int offset = 0;
1826 asn1_ctx_t asn1_ctx;
1827 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1828 offset = dissect_x509ce_NameConstraintsSyntax(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_NameConstraintsSyntax_PDU);
1829 return offset;
1831 static int dissect_PolicyConstraintsSyntax_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1832 int offset = 0;
1833 asn1_ctx_t asn1_ctx;
1834 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1835 offset = dissect_x509ce_PolicyConstraintsSyntax(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_PolicyConstraintsSyntax_PDU);
1836 return offset;
1838 static int dissect_SkipCerts_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1839 int offset = 0;
1840 asn1_ctx_t asn1_ctx;
1841 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1842 offset = dissect_x509ce_SkipCerts(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_SkipCerts_PDU);
1843 return offset;
1845 static int dissect_CRLNumber_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1846 int offset = 0;
1847 asn1_ctx_t asn1_ctx;
1848 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1849 offset = dissect_x509ce_CRLNumber(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_CRLNumber_PDU);
1850 return offset;
1852 static int dissect_CRLReason_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1853 int offset = 0;
1854 asn1_ctx_t asn1_ctx;
1855 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1856 offset = dissect_x509ce_CRLReason(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_CRLReason_PDU);
1857 return offset;
1859 static int dissect_HoldInstruction_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1860 int offset = 0;
1861 asn1_ctx_t asn1_ctx;
1862 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1863 offset = dissect_x509ce_HoldInstruction(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_HoldInstruction_PDU);
1864 return offset;
1866 static int dissect_CRLScopeSyntax_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1867 int offset = 0;
1868 asn1_ctx_t asn1_ctx;
1869 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1870 offset = dissect_x509ce_CRLScopeSyntax(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_CRLScopeSyntax_PDU);
1871 return offset;
1873 static int dissect_StatusReferrals_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1874 int offset = 0;
1875 asn1_ctx_t asn1_ctx;
1876 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1877 offset = dissect_x509ce_StatusReferrals(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_StatusReferrals_PDU);
1878 return offset;
1880 static int dissect_CRLStreamIdentifier_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1881 int offset = 0;
1882 asn1_ctx_t asn1_ctx;
1883 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1884 offset = dissect_x509ce_CRLStreamIdentifier(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_CRLStreamIdentifier_PDU);
1885 return offset;
1887 static int dissect_OrderedListSyntax_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1888 int offset = 0;
1889 asn1_ctx_t asn1_ctx;
1890 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1891 offset = dissect_x509ce_OrderedListSyntax(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_OrderedListSyntax_PDU);
1892 return offset;
1894 static int dissect_DeltaInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1895 int offset = 0;
1896 asn1_ctx_t asn1_ctx;
1897 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1898 offset = dissect_x509ce_DeltaInformation(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_DeltaInformation_PDU);
1899 return offset;
1901 static int dissect_CRLDistPointsSyntax_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1902 int offset = 0;
1903 asn1_ctx_t asn1_ctx;
1904 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1905 offset = dissect_x509ce_CRLDistPointsSyntax(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_CRLDistPointsSyntax_PDU);
1906 return offset;
1908 static int dissect_IssuingDistPointSyntax_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1909 int offset = 0;
1910 asn1_ctx_t asn1_ctx;
1911 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1912 offset = dissect_x509ce_IssuingDistPointSyntax(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_IssuingDistPointSyntax_PDU);
1913 return offset;
1915 static int dissect_BaseCRLNumber_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1916 int offset = 0;
1917 asn1_ctx_t asn1_ctx;
1918 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1919 offset = dissect_x509ce_BaseCRLNumber(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_BaseCRLNumber_PDU);
1920 return offset;
1922 static int dissect_ToBeRevokedSyntax_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1923 int offset = 0;
1924 asn1_ctx_t asn1_ctx;
1925 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1926 offset = dissect_x509ce_ToBeRevokedSyntax(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_ToBeRevokedSyntax_PDU);
1927 return offset;
1929 static int dissect_RevokedGroupsSyntax_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1930 int offset = 0;
1931 asn1_ctx_t asn1_ctx;
1932 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1933 offset = dissect_x509ce_RevokedGroupsSyntax(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_RevokedGroupsSyntax_PDU);
1934 return offset;
1936 static int dissect_ExpiredCertsOnCRL_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1937 int offset = 0;
1938 asn1_ctx_t asn1_ctx;
1939 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1940 offset = dissect_x509ce_ExpiredCertsOnCRL(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_ExpiredCertsOnCRL_PDU);
1941 return offset;
1943 static int dissect_AAIssuingDistPointSyntax_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1944 int offset = 0;
1945 asn1_ctx_t asn1_ctx;
1946 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1947 offset = dissect_x509ce_AAIssuingDistPointSyntax(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_AAIssuingDistPointSyntax_PDU);
1948 return offset;
1950 static int dissect_CertificateAssertion_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1951 int offset = 0;
1952 asn1_ctx_t asn1_ctx;
1953 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1954 offset = dissect_x509ce_CertificateAssertion(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_CertificateAssertion_PDU);
1955 return offset;
1957 static int dissect_CertificatePairExactAssertion_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1958 int offset = 0;
1959 asn1_ctx_t asn1_ctx;
1960 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1961 offset = dissect_x509ce_CertificatePairExactAssertion(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_CertificatePairExactAssertion_PDU);
1962 return offset;
1964 static int dissect_CertificatePairAssertion_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1965 int offset = 0;
1966 asn1_ctx_t asn1_ctx;
1967 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1968 offset = dissect_x509ce_CertificatePairAssertion(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_CertificatePairAssertion_PDU);
1969 return offset;
1971 static int dissect_CertificateListExactAssertion_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1972 int offset = 0;
1973 asn1_ctx_t asn1_ctx;
1974 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1975 offset = dissect_x509ce_CertificateListExactAssertion(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_CertificateListExactAssertion_PDU);
1976 return offset;
1978 static int dissect_CertificateListAssertion_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1979 int offset = 0;
1980 asn1_ctx_t asn1_ctx;
1981 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1982 offset = dissect_x509ce_CertificateListAssertion(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_CertificateListAssertion_PDU);
1983 return offset;
1985 static int dissect_PkiPathMatchSyntax_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1986 int offset = 0;
1987 asn1_ctx_t asn1_ctx;
1988 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1989 offset = dissect_x509ce_PkiPathMatchSyntax(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_PkiPathMatchSyntax_PDU);
1990 return offset;
1992 static int dissect_EnhancedCertificateAssertion_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1993 int offset = 0;
1994 asn1_ctx_t asn1_ctx;
1995 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
1996 offset = dissect_x509ce_EnhancedCertificateAssertion(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_EnhancedCertificateAssertion_PDU);
1997 return offset;
1999 static int dissect_CertificateTemplate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2000 int offset = 0;
2001 asn1_ctx_t asn1_ctx;
2002 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
2003 offset = dissect_x509ce_CertificateTemplate(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_CertificateTemplate_PDU);
2004 return offset;
2006 static int dissect_NtdsCaSecurity_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2007 int offset = 0;
2008 asn1_ctx_t asn1_ctx;
2009 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
2010 offset = dissect_x509ce_NtdsCaSecurity(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_NtdsCaSecurity_PDU);
2011 return offset;
2013 static int dissect_NtdsObjectSid_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2014 int offset = 0;
2015 asn1_ctx_t asn1_ctx;
2016 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
2017 offset = dissect_x509ce_NtdsObjectSid(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_NtdsObjectSid_PDU);
2018 return offset;
2020 static int dissect_EntrustVersionInfo_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2021 int offset = 0;
2022 asn1_ctx_t asn1_ctx;
2023 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
2024 offset = dissect_x509ce_EntrustVersionInfo(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_EntrustVersionInfo_PDU);
2025 return offset;
2027 static int dissect_NFTypes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2028 int offset = 0;
2029 asn1_ctx_t asn1_ctx;
2030 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
2031 offset = dissect_x509ce_NFTypes(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_NFTypes_PDU);
2032 return offset;
2034 static int dissect_ScramblerCapabilities_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2035 int offset = 0;
2036 asn1_ctx_t asn1_ctx;
2037 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
2038 offset = dissect_x509ce_ScramblerCapabilities(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_ScramblerCapabilities_PDU);
2039 return offset;
2041 static int dissect_CiplusInfo_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2042 int offset = 0;
2043 asn1_ctx_t asn1_ctx;
2044 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
2045 offset = dissect_x509ce_CiplusInfo(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_CiplusInfo_PDU);
2046 return offset;
2048 static int dissect_CicamBrandId_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2049 int offset = 0;
2050 asn1_ctx_t asn1_ctx;
2051 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
2052 offset = dissect_x509ce_CicamBrandId(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_CicamBrandId_PDU);
2053 return offset;
2055 static int dissect_SecurityLevel_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2056 int offset = 0;
2057 asn1_ctx_t asn1_ctx;
2058 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
2059 offset = dissect_x509ce_SecurityLevel(false, tvb, offset, &asn1_ctx, tree, hf_x509ce_SecurityLevel_PDU);
2060 return offset;
2064 static const val64_string ciplus_scr_cap[] = {
2065 { 0, "DES" },
2066 { 1, "DES and AES" },
2067 { 0, NULL }
2070 static const val64_string ciplus_security_level[] = {
2071 { 0, "Standard Security Level" },
2072 { 1, "ECP Security Level" },
2073 { 0, NULL }
2076 /* CI+ (www.ci-plus.com) defines some X.509 certificate extensions
2077 that use OIDs which are not officially assigned
2078 dissection of these extensions can be enabled temporarily using the
2079 functions below */
2080 void
2081 x509ce_enable_ciplus(void)
2083 dissector_handle_t dh25, dh26, dh27, dh50;
2085 dh25 = create_dissector_handle(dissect_ScramblerCapabilities_PDU, proto_x509ce);
2086 dissector_change_string("ber.oid", "1.3.6.1.5.5.7.1.25", dh25);
2087 dh26 = create_dissector_handle(dissect_CiplusInfo_PDU, proto_x509ce);
2088 dissector_change_string("ber.oid", "1.3.6.1.5.5.7.1.26", dh26);
2089 dh27 = create_dissector_handle(dissect_CicamBrandId_PDU, proto_x509ce);
2090 dissector_change_string("ber.oid", "1.3.6.1.5.5.7.1.27", dh27);
2091 dh50 = create_dissector_handle(dissect_SecurityLevel_PDU, proto_x509ce);
2092 dissector_change_string("ber.oid", "1.3.6.1.5.5.7.1.50", dh50);
2095 void
2096 x509ce_disable_ciplus(void)
2098 dissector_reset_string("ber.oid", "1.3.6.1.5.5.7.1.25");
2099 dissector_reset_string("ber.oid", "1.3.6.1.5.5.7.1.26");
2100 dissector_reset_string("ber.oid", "1.3.6.1.5.5.7.1.27");
2101 dissector_reset_string("ber.oid", "1.3.6.1.5.5.7.1.50");
2105 static int
2106 dissect_x509ce_invalidityDate_callback(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
2108 asn1_ctx_t asn1_ctx;
2109 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
2111 return dissect_x509ce_GeneralizedTime(false, tvb, 0, &asn1_ctx, tree, hf_x509ce_id_ce_invalidityDate);
2114 static int
2115 dissect_x509ce_baseUpdateTime_callback(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
2117 asn1_ctx_t asn1_ctx;
2118 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
2119 return dissect_x509ce_GeneralizedTime(false, tvb, 0, &asn1_ctx, tree, hf_x509ce_id_ce_baseUpdateTime);
2122 /*--- proto_register_x509ce ----------------------------------------------*/
2123 void proto_register_x509ce(void) {
2125 /* List of fields */
2126 static hf_register_info hf[] = {
2127 { &hf_x509ce_id_ce_baseUpdateTime,
2128 { "baseUpdateTime", "x509ce.id_ce_baseUpdateTime",
2129 FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
2130 NULL, HFILL }},
2131 { &hf_x509ce_id_ce_invalidityDate,
2132 { "invalidityDate", "x509ce.id_ce_invalidityDate",
2133 FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
2134 NULL, HFILL }},
2135 { &hf_x509ce_object_identifier_id,
2136 { "Id", "x509ce.id", FT_OID, BASE_NONE, NULL, 0,
2137 "Object identifier Id", HFILL }},
2138 { &hf_x509ce_IPAddress_ipv4,
2139 { "iPAddress", "x509ce.IPAddress.ipv4", FT_IPv4, BASE_NONE, NULL, 0,
2140 "IPv4 address", HFILL }},
2141 { &hf_x509ce_IPAddress_ipv4_mask,
2142 { "iPAddress Mask", "x509ce.IPAddress.ipv4_mask", FT_IPv4, BASE_NONE, NULL, 0,
2143 "IPv4 address Mask", HFILL }},
2144 { &hf_x509ce_IPAddress_ipv6,
2145 { "iPAddress", "x509ce.IPAddress.ipv6", FT_IPv6, BASE_NONE, NULL, 0,
2146 "IPv6 address", HFILL }},
2147 { &hf_x509ce_IPAddress_ipv6_mask,
2148 { "iPAddress Mask", "x509ce.IPAddress.ipv6_mask", FT_IPv6, BASE_NONE, NULL, 0,
2149 "IPv6 address Mask", HFILL }},
2150 { &hf_x509ce_IPAddress_unknown,
2151 { "iPAddress", "x509ce.IPAddress.unknown", FT_BYTES, BASE_NONE, NULL, 0,
2152 "Unknown Address", HFILL }},
2154 { &hf_x509ce_AuthorityKeyIdentifier_PDU,
2155 { "AuthorityKeyIdentifier", "x509ce.AuthorityKeyIdentifier_element",
2156 FT_NONE, BASE_NONE, NULL, 0,
2157 NULL, HFILL }},
2158 { &hf_x509ce_SubjectKeyIdentifier_PDU,
2159 { "SubjectKeyIdentifier", "x509ce.SubjectKeyIdentifier",
2160 FT_BYTES, BASE_NONE, NULL, 0,
2161 NULL, HFILL }},
2162 { &hf_x509ce_KeyUsage_PDU,
2163 { "KeyUsage", "x509ce.KeyUsage",
2164 FT_BYTES, BASE_NONE, NULL, 0,
2165 NULL, HFILL }},
2166 { &hf_x509ce_KeyPurposeIDs_PDU,
2167 { "KeyPurposeIDs", "x509ce.KeyPurposeIDs",
2168 FT_UINT32, BASE_DEC, NULL, 0,
2169 NULL, HFILL }},
2170 { &hf_x509ce_PrivateKeyUsagePeriod_PDU,
2171 { "PrivateKeyUsagePeriod", "x509ce.PrivateKeyUsagePeriod_element",
2172 FT_NONE, BASE_NONE, NULL, 0,
2173 NULL, HFILL }},
2174 { &hf_x509ce_CertificatePoliciesSyntax_PDU,
2175 { "CertificatePoliciesSyntax", "x509ce.CertificatePoliciesSyntax",
2176 FT_UINT32, BASE_DEC, NULL, 0,
2177 NULL, HFILL }},
2178 { &hf_x509ce_PolicyMappingsSyntax_PDU,
2179 { "PolicyMappingsSyntax", "x509ce.PolicyMappingsSyntax",
2180 FT_UINT32, BASE_DEC, NULL, 0,
2181 NULL, HFILL }},
2182 { &hf_x509ce_GeneralNames_PDU,
2183 { "GeneralNames", "x509ce.GeneralNames",
2184 FT_UINT32, BASE_DEC, NULL, 0,
2185 NULL, HFILL }},
2186 { &hf_x509ce_AttributesSyntax_PDU,
2187 { "AttributesSyntax", "x509ce.AttributesSyntax",
2188 FT_UINT32, BASE_DEC, NULL, 0,
2189 NULL, HFILL }},
2190 { &hf_x509ce_BasicConstraintsSyntax_PDU,
2191 { "BasicConstraintsSyntax", "x509ce.BasicConstraintsSyntax_element",
2192 FT_NONE, BASE_NONE, NULL, 0,
2193 NULL, HFILL }},
2194 { &hf_x509ce_NameConstraintsSyntax_PDU,
2195 { "NameConstraintsSyntax", "x509ce.NameConstraintsSyntax_element",
2196 FT_NONE, BASE_NONE, NULL, 0,
2197 NULL, HFILL }},
2198 { &hf_x509ce_PolicyConstraintsSyntax_PDU,
2199 { "PolicyConstraintsSyntax", "x509ce.PolicyConstraintsSyntax_element",
2200 FT_NONE, BASE_NONE, NULL, 0,
2201 NULL, HFILL }},
2202 { &hf_x509ce_SkipCerts_PDU,
2203 { "SkipCerts", "x509ce.SkipCerts",
2204 FT_UINT64, BASE_DEC, NULL, 0,
2205 NULL, HFILL }},
2206 { &hf_x509ce_CRLNumber_PDU,
2207 { "CRLNumber", "x509ce.CRLNumber",
2208 FT_UINT64, BASE_DEC, NULL, 0,
2209 NULL, HFILL }},
2210 { &hf_x509ce_CRLReason_PDU,
2211 { "CRLReason", "x509ce.CRLReason",
2212 FT_UINT32, BASE_DEC, VALS(x509ce_CRLReason_vals), 0,
2213 NULL, HFILL }},
2214 { &hf_x509ce_HoldInstruction_PDU,
2215 { "HoldInstruction", "x509ce.HoldInstruction",
2216 FT_OID, BASE_NONE, NULL, 0,
2217 NULL, HFILL }},
2218 { &hf_x509ce_CRLScopeSyntax_PDU,
2219 { "CRLScopeSyntax", "x509ce.CRLScopeSyntax",
2220 FT_UINT32, BASE_DEC, NULL, 0,
2221 NULL, HFILL }},
2222 { &hf_x509ce_StatusReferrals_PDU,
2223 { "StatusReferrals", "x509ce.StatusReferrals",
2224 FT_UINT32, BASE_DEC, NULL, 0,
2225 NULL, HFILL }},
2226 { &hf_x509ce_CRLStreamIdentifier_PDU,
2227 { "CRLStreamIdentifier", "x509ce.CRLStreamIdentifier",
2228 FT_UINT64, BASE_DEC, NULL, 0,
2229 NULL, HFILL }},
2230 { &hf_x509ce_OrderedListSyntax_PDU,
2231 { "OrderedListSyntax", "x509ce.OrderedListSyntax",
2232 FT_UINT32, BASE_DEC, VALS(x509ce_OrderedListSyntax_vals), 0,
2233 NULL, HFILL }},
2234 { &hf_x509ce_DeltaInformation_PDU,
2235 { "DeltaInformation", "x509ce.DeltaInformation_element",
2236 FT_NONE, BASE_NONE, NULL, 0,
2237 NULL, HFILL }},
2238 { &hf_x509ce_CRLDistPointsSyntax_PDU,
2239 { "CRLDistPointsSyntax", "x509ce.CRLDistPointsSyntax",
2240 FT_UINT32, BASE_DEC, NULL, 0,
2241 NULL, HFILL }},
2242 { &hf_x509ce_IssuingDistPointSyntax_PDU,
2243 { "IssuingDistPointSyntax", "x509ce.IssuingDistPointSyntax_element",
2244 FT_NONE, BASE_NONE, NULL, 0,
2245 NULL, HFILL }},
2246 { &hf_x509ce_BaseCRLNumber_PDU,
2247 { "BaseCRLNumber", "x509ce.BaseCRLNumber",
2248 FT_UINT64, BASE_DEC, NULL, 0,
2249 NULL, HFILL }},
2250 { &hf_x509ce_ToBeRevokedSyntax_PDU,
2251 { "ToBeRevokedSyntax", "x509ce.ToBeRevokedSyntax",
2252 FT_UINT32, BASE_DEC, NULL, 0,
2253 NULL, HFILL }},
2254 { &hf_x509ce_RevokedGroupsSyntax_PDU,
2255 { "RevokedGroupsSyntax", "x509ce.RevokedGroupsSyntax",
2256 FT_UINT32, BASE_DEC, NULL, 0,
2257 NULL, HFILL }},
2258 { &hf_x509ce_ExpiredCertsOnCRL_PDU,
2259 { "ExpiredCertsOnCRL", "x509ce.ExpiredCertsOnCRL",
2260 FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
2261 NULL, HFILL }},
2262 { &hf_x509ce_AAIssuingDistPointSyntax_PDU,
2263 { "AAIssuingDistPointSyntax", "x509ce.AAIssuingDistPointSyntax_element",
2264 FT_NONE, BASE_NONE, NULL, 0,
2265 NULL, HFILL }},
2266 { &hf_x509ce_CertificateAssertion_PDU,
2267 { "CertificateAssertion", "x509ce.CertificateAssertion_element",
2268 FT_NONE, BASE_NONE, NULL, 0,
2269 NULL, HFILL }},
2270 { &hf_x509ce_CertificatePairExactAssertion_PDU,
2271 { "CertificatePairExactAssertion", "x509ce.CertificatePairExactAssertion_element",
2272 FT_NONE, BASE_NONE, NULL, 0,
2273 NULL, HFILL }},
2274 { &hf_x509ce_CertificatePairAssertion_PDU,
2275 { "CertificatePairAssertion", "x509ce.CertificatePairAssertion_element",
2276 FT_NONE, BASE_NONE, NULL, 0,
2277 NULL, HFILL }},
2278 { &hf_x509ce_CertificateListExactAssertion_PDU,
2279 { "CertificateListExactAssertion", "x509ce.CertificateListExactAssertion_element",
2280 FT_NONE, BASE_NONE, NULL, 0,
2281 NULL, HFILL }},
2282 { &hf_x509ce_CertificateListAssertion_PDU,
2283 { "CertificateListAssertion", "x509ce.CertificateListAssertion_element",
2284 FT_NONE, BASE_NONE, NULL, 0,
2285 NULL, HFILL }},
2286 { &hf_x509ce_PkiPathMatchSyntax_PDU,
2287 { "PkiPathMatchSyntax", "x509ce.PkiPathMatchSyntax_element",
2288 FT_NONE, BASE_NONE, NULL, 0,
2289 NULL, HFILL }},
2290 { &hf_x509ce_EnhancedCertificateAssertion_PDU,
2291 { "EnhancedCertificateAssertion", "x509ce.EnhancedCertificateAssertion_element",
2292 FT_NONE, BASE_NONE, NULL, 0,
2293 NULL, HFILL }},
2294 { &hf_x509ce_CertificateTemplate_PDU,
2295 { "CertificateTemplate", "x509ce.CertificateTemplate_element",
2296 FT_NONE, BASE_NONE, NULL, 0,
2297 NULL, HFILL }},
2298 { &hf_x509ce_NtdsCaSecurity_PDU,
2299 { "NtdsCaSecurity", "x509ce.NtdsCaSecurity_element",
2300 FT_NONE, BASE_NONE, NULL, 0,
2301 NULL, HFILL }},
2302 { &hf_x509ce_NtdsObjectSid_PDU,
2303 { "NtdsObjectSid", "x509ce.NtdsObjectSid_element",
2304 FT_NONE, BASE_NONE, NULL, 0,
2305 NULL, HFILL }},
2306 { &hf_x509ce_EntrustVersionInfo_PDU,
2307 { "EntrustVersionInfo", "x509ce.EntrustVersionInfo_element",
2308 FT_NONE, BASE_NONE, NULL, 0,
2309 NULL, HFILL }},
2310 { &hf_x509ce_NFTypes_PDU,
2311 { "NFTypes", "x509ce.NFTypes",
2312 FT_UINT32, BASE_DEC, NULL, 0,
2313 NULL, HFILL }},
2314 { &hf_x509ce_ScramblerCapabilities_PDU,
2315 { "ScramblerCapabilities", "x509ce.ScramblerCapabilities_element",
2316 FT_NONE, BASE_NONE, NULL, 0,
2317 NULL, HFILL }},
2318 { &hf_x509ce_CiplusInfo_PDU,
2319 { "CiplusInfo", "x509ce.CiplusInfo",
2320 FT_BYTES, BASE_NONE, NULL, 0,
2321 NULL, HFILL }},
2322 { &hf_x509ce_CicamBrandId_PDU,
2323 { "CicamBrandId", "x509ce.CicamBrandId",
2324 FT_UINT32, BASE_DEC, NULL, 0,
2325 NULL, HFILL }},
2326 { &hf_x509ce_SecurityLevel_PDU,
2327 { "SecurityLevel", "x509ce.SecurityLevel",
2328 FT_UINT64, BASE_DEC|BASE_VAL64_STRING, VALS64(ciplus_security_level), 0,
2329 NULL, HFILL }},
2330 { &hf_x509ce_keyIdentifier,
2331 { "keyIdentifier", "x509ce.keyIdentifier",
2332 FT_BYTES, BASE_NONE, NULL, 0,
2333 NULL, HFILL }},
2334 { &hf_x509ce_authorityCertIssuer,
2335 { "authorityCertIssuer", "x509ce.authorityCertIssuer",
2336 FT_UINT32, BASE_DEC, NULL, 0,
2337 "GeneralNames", HFILL }},
2338 { &hf_x509ce_authorityCertSerialNumber,
2339 { "authorityCertSerialNumber", "x509ce.authorityCertSerialNumber",
2340 FT_BYTES, BASE_NONE, NULL, 0,
2341 "CertificateSerialNumber", HFILL }},
2342 { &hf_x509ce_KeyPurposeIDs_item,
2343 { "KeyPurposeId", "x509ce.KeyPurposeId",
2344 FT_OID, BASE_NONE, NULL, 0,
2345 NULL, HFILL }},
2346 { &hf_x509ce_notBefore,
2347 { "notBefore", "x509ce.notBefore",
2348 FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
2349 "GeneralizedTime", HFILL }},
2350 { &hf_x509ce_notAfter,
2351 { "notAfter", "x509ce.notAfter",
2352 FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
2353 "GeneralizedTime", HFILL }},
2354 { &hf_x509ce_CertificatePoliciesSyntax_item,
2355 { "PolicyInformation", "x509ce.PolicyInformation_element",
2356 FT_NONE, BASE_NONE, NULL, 0,
2357 NULL, HFILL }},
2358 { &hf_x509ce_policyIdentifier,
2359 { "policyIdentifier", "x509ce.policyIdentifier",
2360 FT_OID, BASE_NONE, NULL, 0,
2361 "CertPolicyId", HFILL }},
2362 { &hf_x509ce_policyQualifiers,
2363 { "policyQualifiers", "x509ce.policyQualifiers",
2364 FT_UINT32, BASE_DEC, NULL, 0,
2365 "SEQUENCE_SIZE_1_MAX_OF_PolicyQualifierInfo", HFILL }},
2366 { &hf_x509ce_policyQualifiers_item,
2367 { "PolicyQualifierInfo", "x509ce.PolicyQualifierInfo_element",
2368 FT_NONE, BASE_NONE, NULL, 0,
2369 NULL, HFILL }},
2370 { &hf_x509ce_policyQualifierId,
2371 { "policyQualifierId", "x509ce.policyQualifierId",
2372 FT_OID, BASE_NONE, NULL, 0,
2373 NULL, HFILL }},
2374 { &hf_x509ce_qualifier,
2375 { "qualifier", "x509ce.qualifier_element",
2376 FT_NONE, BASE_NONE, NULL, 0,
2377 NULL, HFILL }},
2378 { &hf_x509ce_PolicyMappingsSyntax_item,
2379 { "PolicyMappingsSyntax item", "x509ce.PolicyMappingsSyntax_item_element",
2380 FT_NONE, BASE_NONE, NULL, 0,
2381 NULL, HFILL }},
2382 { &hf_x509ce_issuerDomainPolicy,
2383 { "issuerDomainPolicy", "x509ce.issuerDomainPolicy",
2384 FT_OID, BASE_NONE, NULL, 0,
2385 "CertPolicyId", HFILL }},
2386 { &hf_x509ce_subjectDomainPolicy,
2387 { "subjectDomainPolicy", "x509ce.subjectDomainPolicy",
2388 FT_OID, BASE_NONE, NULL, 0,
2389 "CertPolicyId", HFILL }},
2390 { &hf_x509ce_GeneralNames_item,
2391 { "GeneralName", "x509ce.GeneralName",
2392 FT_UINT32, BASE_DEC, VALS(x509ce_GeneralName_vals), 0,
2393 NULL, HFILL }},
2394 { &hf_x509ce_otherName,
2395 { "otherName", "x509ce.otherName_element",
2396 FT_NONE, BASE_NONE, NULL, 0,
2397 NULL, HFILL }},
2398 { &hf_x509ce_rfc822Name,
2399 { "rfc822Name", "x509ce.rfc822Name",
2400 FT_STRING, BASE_NONE, NULL, 0,
2401 "IA5String", HFILL }},
2402 { &hf_x509ce_dNSName,
2403 { "dNSName", "x509ce.dNSName",
2404 FT_STRING, BASE_NONE, NULL, 0,
2405 "IA5String", HFILL }},
2406 { &hf_x509ce_x400Address,
2407 { "x400Address", "x509ce.x400Address_element",
2408 FT_NONE, BASE_NONE, NULL, 0,
2409 "ORAddress", HFILL }},
2410 { &hf_x509ce_directoryName,
2411 { "directoryName", "x509ce.directoryName",
2412 FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
2413 "Name", HFILL }},
2414 { &hf_x509ce_ediPartyName,
2415 { "ediPartyName", "x509ce.ediPartyName_element",
2416 FT_NONE, BASE_NONE, NULL, 0,
2417 NULL, HFILL }},
2418 { &hf_x509ce_uniformResourceIdentifier,
2419 { "uniformResourceIdentifier", "x509ce.uniformResourceIdentifier",
2420 FT_STRING, BASE_NONE, NULL, 0,
2421 NULL, HFILL }},
2422 { &hf_x509ce_iPAddress,
2423 { "iPAddress", "x509ce.iPAddress",
2424 FT_BYTES, BASE_NONE, NULL, 0,
2425 NULL, HFILL }},
2426 { &hf_x509ce_registeredID,
2427 { "registeredID", "x509ce.registeredID",
2428 FT_OID, BASE_NONE, NULL, 0,
2429 "OBJECT_IDENTIFIER", HFILL }},
2430 { &hf_x509ce_type_id,
2431 { "type-id", "x509ce.type_id",
2432 FT_OID, BASE_NONE, NULL, 0,
2433 "OtherNameType", HFILL }},
2434 { &hf_x509ce_value,
2435 { "value", "x509ce.value_element",
2436 FT_NONE, BASE_NONE, NULL, 0,
2437 "OtherNameValue", HFILL }},
2438 { &hf_x509ce_nameAssigner,
2439 { "nameAssigner", "x509ce.nameAssigner",
2440 FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
2441 "DirectoryString", HFILL }},
2442 { &hf_x509ce_partyName,
2443 { "partyName", "x509ce.partyName",
2444 FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
2445 "DirectoryString", HFILL }},
2446 { &hf_x509ce_AttributesSyntax_item,
2447 { "Attribute", "x509ce.Attribute_element",
2448 FT_NONE, BASE_NONE, NULL, 0,
2449 NULL, HFILL }},
2450 { &hf_x509ce_cA,
2451 { "cA", "x509ce.cA",
2452 FT_BOOLEAN, BASE_NONE, NULL, 0,
2453 "BOOLEAN", HFILL }},
2454 { &hf_x509ce_pathLenConstraint,
2455 { "pathLenConstraint", "x509ce.pathLenConstraint",
2456 FT_UINT64, BASE_DEC, NULL, 0,
2457 "INTEGER_0_MAX", HFILL }},
2458 { &hf_x509ce_permittedSubtrees,
2459 { "permittedSubtrees", "x509ce.permittedSubtrees",
2460 FT_UINT32, BASE_DEC, NULL, 0,
2461 "GeneralSubtrees", HFILL }},
2462 { &hf_x509ce_excludedSubtrees,
2463 { "excludedSubtrees", "x509ce.excludedSubtrees",
2464 FT_UINT32, BASE_DEC, NULL, 0,
2465 "GeneralSubtrees", HFILL }},
2466 { &hf_x509ce_GeneralSubtrees_item,
2467 { "GeneralSubtree", "x509ce.GeneralSubtree_element",
2468 FT_NONE, BASE_NONE, NULL, 0,
2469 NULL, HFILL }},
2470 { &hf_x509ce_base,
2471 { "base", "x509ce.base",
2472 FT_UINT32, BASE_DEC, VALS(x509ce_GeneralName_vals), 0,
2473 "GeneralName", HFILL }},
2474 { &hf_x509ce_minimum,
2475 { "minimum", "x509ce.minimum",
2476 FT_UINT64, BASE_DEC, NULL, 0,
2477 "BaseDistance", HFILL }},
2478 { &hf_x509ce_maximum,
2479 { "maximum", "x509ce.maximum",
2480 FT_UINT64, BASE_DEC, NULL, 0,
2481 "BaseDistance", HFILL }},
2482 { &hf_x509ce_requireExplicitPolicy,
2483 { "requireExplicitPolicy", "x509ce.requireExplicitPolicy",
2484 FT_UINT64, BASE_DEC, NULL, 0,
2485 "SkipCerts", HFILL }},
2486 { &hf_x509ce_inhibitPolicyMapping,
2487 { "inhibitPolicyMapping", "x509ce.inhibitPolicyMapping",
2488 FT_UINT64, BASE_DEC, NULL, 0,
2489 "SkipCerts", HFILL }},
2490 { &hf_x509ce_CRLScopeSyntax_item,
2491 { "PerAuthorityScope", "x509ce.PerAuthorityScope_element",
2492 FT_NONE, BASE_NONE, NULL, 0,
2493 NULL, HFILL }},
2494 { &hf_x509ce_authorityName,
2495 { "authorityName", "x509ce.authorityName",
2496 FT_UINT32, BASE_DEC, VALS(x509ce_GeneralName_vals), 0,
2497 "GeneralName", HFILL }},
2498 { &hf_x509ce_distributionPoint,
2499 { "distributionPoint", "x509ce.distributionPoint",
2500 FT_UINT32, BASE_DEC, VALS(x509ce_DistributionPointName_vals), 0,
2501 "DistributionPointName", HFILL }},
2502 { &hf_x509ce_onlyContains,
2503 { "onlyContains", "x509ce.onlyContains",
2504 FT_BYTES, BASE_NONE, NULL, 0,
2505 "OnlyCertificateTypes", HFILL }},
2506 { &hf_x509ce_onlySomeReasons,
2507 { "onlySomeReasons", "x509ce.onlySomeReasons",
2508 FT_BYTES, BASE_NONE, NULL, 0,
2509 "ReasonFlags", HFILL }},
2510 { &hf_x509ce_serialNumberRange,
2511 { "serialNumberRange", "x509ce.serialNumberRange_element",
2512 FT_NONE, BASE_NONE, NULL, 0,
2513 "NumberRange", HFILL }},
2514 { &hf_x509ce_subjectKeyIdRange,
2515 { "subjectKeyIdRange", "x509ce.subjectKeyIdRange_element",
2516 FT_NONE, BASE_NONE, NULL, 0,
2517 "NumberRange", HFILL }},
2518 { &hf_x509ce_nameSubtrees,
2519 { "nameSubtrees", "x509ce.nameSubtrees",
2520 FT_UINT32, BASE_DEC, NULL, 0,
2521 "GeneralNames", HFILL }},
2522 { &hf_x509ce_baseRevocationInfo,
2523 { "baseRevocationInfo", "x509ce.baseRevocationInfo_element",
2524 FT_NONE, BASE_NONE, NULL, 0,
2525 NULL, HFILL }},
2526 { &hf_x509ce_startingNumber,
2527 { "startingNumber", "x509ce.startingNumber",
2528 FT_INT32, BASE_DEC, NULL, 0,
2529 "INTEGER", HFILL }},
2530 { &hf_x509ce_endingNumber,
2531 { "endingNumber", "x509ce.endingNumber",
2532 FT_INT32, BASE_DEC, NULL, 0,
2533 "INTEGER", HFILL }},
2534 { &hf_x509ce_modulus,
2535 { "modulus", "x509ce.modulus",
2536 FT_INT32, BASE_DEC, NULL, 0,
2537 "INTEGER", HFILL }},
2538 { &hf_x509ce_cRLStreamIdentifier,
2539 { "cRLStreamIdentifier", "x509ce.cRLStreamIdentifier",
2540 FT_UINT64, BASE_DEC, NULL, 0,
2541 NULL, HFILL }},
2542 { &hf_x509ce_cRLNumber,
2543 { "cRLNumber", "x509ce.cRLNumber",
2544 FT_UINT64, BASE_DEC, NULL, 0,
2545 NULL, HFILL }},
2546 { &hf_x509ce_baseThisUpdate,
2547 { "baseThisUpdate", "x509ce.baseThisUpdate",
2548 FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
2549 "GeneralizedTime", HFILL }},
2550 { &hf_x509ce_StatusReferrals_item,
2551 { "StatusReferral", "x509ce.StatusReferral",
2552 FT_UINT32, BASE_DEC, VALS(x509ce_StatusReferral_vals), 0,
2553 NULL, HFILL }},
2554 { &hf_x509ce_cRLReferral,
2555 { "cRLReferral", "x509ce.cRLReferral_element",
2556 FT_NONE, BASE_NONE, NULL, 0,
2557 NULL, HFILL }},
2558 { &hf_x509ce_crlr_issuer,
2559 { "issuer", "x509ce.issuer",
2560 FT_UINT32, BASE_DEC, VALS(x509ce_GeneralName_vals), 0,
2561 "GeneralName", HFILL }},
2562 { &hf_x509ce_location,
2563 { "location", "x509ce.location",
2564 FT_UINT32, BASE_DEC, VALS(x509ce_GeneralName_vals), 0,
2565 "GeneralName", HFILL }},
2566 { &hf_x509ce_deltaRefInfo,
2567 { "deltaRefInfo", "x509ce.deltaRefInfo_element",
2568 FT_NONE, BASE_NONE, NULL, 0,
2569 NULL, HFILL }},
2570 { &hf_x509ce_cRLScope,
2571 { "cRLScope", "x509ce.cRLScope",
2572 FT_UINT32, BASE_DEC, NULL, 0,
2573 "CRLScopeSyntax", HFILL }},
2574 { &hf_x509ce_lastUpdate,
2575 { "lastUpdate", "x509ce.lastUpdate",
2576 FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
2577 "GeneralizedTime", HFILL }},
2578 { &hf_x509ce_lastChangedCRL,
2579 { "lastChangedCRL", "x509ce.lastChangedCRL",
2580 FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
2581 "GeneralizedTime", HFILL }},
2582 { &hf_x509ce_deltaLocation,
2583 { "deltaLocation", "x509ce.deltaLocation",
2584 FT_UINT32, BASE_DEC, VALS(x509ce_GeneralName_vals), 0,
2585 "GeneralName", HFILL }},
2586 { &hf_x509ce_lastDelta,
2587 { "lastDelta", "x509ce.lastDelta",
2588 FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
2589 "GeneralizedTime", HFILL }},
2590 { &hf_x509ce_nextDelta,
2591 { "nextDelta", "x509ce.nextDelta",
2592 FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
2593 "GeneralizedTime", HFILL }},
2594 { &hf_x509ce_CRLDistPointsSyntax_item,
2595 { "DistributionPoint", "x509ce.DistributionPoint_element",
2596 FT_NONE, BASE_NONE, NULL, 0,
2597 NULL, HFILL }},
2598 { &hf_x509ce_reasons,
2599 { "reasons", "x509ce.reasons",
2600 FT_BYTES, BASE_NONE, NULL, 0,
2601 "ReasonFlags", HFILL }},
2602 { &hf_x509ce_cRLIssuer,
2603 { "cRLIssuer", "x509ce.cRLIssuer",
2604 FT_UINT32, BASE_DEC, NULL, 0,
2605 "GeneralNames", HFILL }},
2606 { &hf_x509ce_fullName,
2607 { "fullName", "x509ce.fullName",
2608 FT_UINT32, BASE_DEC, NULL, 0,
2609 "GeneralNames", HFILL }},
2610 { &hf_x509ce_nameRelativeToCRLIssuer,
2611 { "nameRelativeToCRLIssuer", "x509ce.nameRelativeToCRLIssuer",
2612 FT_UINT32, BASE_DEC, NULL, 0,
2613 "RelativeDistinguishedName", HFILL }},
2614 { &hf_x509ce_onlyContainsUserPublicKeyCerts,
2615 { "onlyContainsUserPublicKeyCerts", "x509ce.onlyContainsUserPublicKeyCerts",
2616 FT_BOOLEAN, BASE_NONE, NULL, 0,
2617 "BOOLEAN", HFILL }},
2618 { &hf_x509ce_onlyContainsCACerts,
2619 { "onlyContainsCACerts", "x509ce.onlyContainsCACerts",
2620 FT_BOOLEAN, BASE_NONE, NULL, 0,
2621 "BOOLEAN", HFILL }},
2622 { &hf_x509ce_indirectCRL,
2623 { "indirectCRL", "x509ce.indirectCRL",
2624 FT_BOOLEAN, BASE_NONE, NULL, 0,
2625 "BOOLEAN", HFILL }},
2626 { &hf_x509ce_ToBeRevokedSyntax_item,
2627 { "ToBeRevokedGroup", "x509ce.ToBeRevokedGroup_element",
2628 FT_NONE, BASE_NONE, NULL, 0,
2629 NULL, HFILL }},
2630 { &hf_x509ce_certificateIssuer,
2631 { "certificateIssuer", "x509ce.certificateIssuer",
2632 FT_UINT32, BASE_DEC, VALS(x509ce_GeneralName_vals), 0,
2633 "GeneralName", HFILL }},
2634 { &hf_x509ce_reasonInfo,
2635 { "reasonInfo", "x509ce.reasonInfo_element",
2636 FT_NONE, BASE_NONE, NULL, 0,
2637 NULL, HFILL }},
2638 { &hf_x509ce_revocationTime,
2639 { "revocationTime", "x509ce.revocationTime",
2640 FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
2641 "GeneralizedTime", HFILL }},
2642 { &hf_x509ce_certificateGroup,
2643 { "certificateGroup", "x509ce.certificateGroup",
2644 FT_UINT32, BASE_DEC, VALS(x509ce_CertificateGroup_vals), 0,
2645 NULL, HFILL }},
2646 { &hf_x509ce_reasonCode,
2647 { "reasonCode", "x509ce.reasonCode",
2648 FT_UINT32, BASE_DEC, VALS(x509ce_CRLReason_vals), 0,
2649 "CRLReason", HFILL }},
2650 { &hf_x509ce_holdInstructionCode,
2651 { "holdInstructionCode", "x509ce.holdInstructionCode",
2652 FT_OID, BASE_NONE, NULL, 0,
2653 "HoldInstruction", HFILL }},
2654 { &hf_x509ce_serialNumbers,
2655 { "serialNumbers", "x509ce.serialNumbers",
2656 FT_UINT32, BASE_DEC, NULL, 0,
2657 "CertificateSerialNumbers", HFILL }},
2658 { &hf_x509ce_certificateGroupNumberRange,
2659 { "serialNumberRange", "x509ce.serialNumberRange_element",
2660 FT_NONE, BASE_NONE, NULL, 0,
2661 "CertificateGroupNumberRange", HFILL }},
2662 { &hf_x509ce_nameSubtree,
2663 { "nameSubtree", "x509ce.nameSubtree",
2664 FT_UINT32, BASE_DEC, VALS(x509ce_GeneralName_vals), 0,
2665 "GeneralName", HFILL }},
2666 { &hf_x509ce_CertificateSerialNumbers_item,
2667 { "CertificateSerialNumber", "x509ce.CertificateSerialNumber",
2668 FT_BYTES, BASE_NONE, NULL, 0,
2669 NULL, HFILL }},
2670 { &hf_x509ce_RevokedGroupsSyntax_item,
2671 { "RevokedGroup", "x509ce.RevokedGroup_element",
2672 FT_NONE, BASE_NONE, NULL, 0,
2673 NULL, HFILL }},
2674 { &hf_x509ce_invalidityDate,
2675 { "invalidityDate", "x509ce.invalidityDate",
2676 FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
2677 "GeneralizedTime", HFILL }},
2678 { &hf_x509ce_revokedcertificateGroup,
2679 { "revokedcertificateGroup", "x509ce.revokedcertificateGroup",
2680 FT_UINT32, BASE_DEC, VALS(x509ce_RevokedCertificateGroup_vals), 0,
2681 NULL, HFILL }},
2682 { &hf_x509ce_containsUserAttributeCerts,
2683 { "containsUserAttributeCerts", "x509ce.containsUserAttributeCerts",
2684 FT_BOOLEAN, BASE_NONE, NULL, 0,
2685 "BOOLEAN", HFILL }},
2686 { &hf_x509ce_containsAACerts,
2687 { "containsAACerts", "x509ce.containsAACerts",
2688 FT_BOOLEAN, BASE_NONE, NULL, 0,
2689 "BOOLEAN", HFILL }},
2690 { &hf_x509ce_containsSOAPublicKeyCerts,
2691 { "containsSOAPublicKeyCerts", "x509ce.containsSOAPublicKeyCerts",
2692 FT_BOOLEAN, BASE_NONE, NULL, 0,
2693 "BOOLEAN", HFILL }},
2694 { &hf_x509ce_serialNumber,
2695 { "serialNumber", "x509ce.serialNumber",
2696 FT_BYTES, BASE_NONE, NULL, 0,
2697 "CertificateSerialNumber", HFILL }},
2698 { &hf_x509ce_issuer,
2699 { "issuer", "x509ce.issuer",
2700 FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
2701 "Name", HFILL }},
2702 { &hf_x509ce_subjectKeyIdentifier,
2703 { "subjectKeyIdentifier", "x509ce.subjectKeyIdentifier",
2704 FT_BYTES, BASE_NONE, NULL, 0,
2705 NULL, HFILL }},
2706 { &hf_x509ce_authorityKeyIdentifier,
2707 { "authorityKeyIdentifier", "x509ce.authorityKeyIdentifier_element",
2708 FT_NONE, BASE_NONE, NULL, 0,
2709 NULL, HFILL }},
2710 { &hf_x509ce_certificateValid,
2711 { "certificateValid", "x509ce.certificateValid",
2712 FT_UINT32, BASE_DEC, VALS(x509af_Time_vals), 0,
2713 "Time", HFILL }},
2714 { &hf_x509ce_privateKeyValid,
2715 { "privateKeyValid", "x509ce.privateKeyValid",
2716 FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
2717 "GeneralizedTime", HFILL }},
2718 { &hf_x509ce_subjectPublicKeyAlgID,
2719 { "subjectPublicKeyAlgID", "x509ce.subjectPublicKeyAlgID",
2720 FT_OID, BASE_NONE, NULL, 0,
2721 "OBJECT_IDENTIFIER", HFILL }},
2722 { &hf_x509ce_keyUsage,
2723 { "keyUsage", "x509ce.keyUsage",
2724 FT_BYTES, BASE_NONE, NULL, 0,
2725 NULL, HFILL }},
2726 { &hf_x509ce_subjectAltNameType,
2727 { "subjectAltName", "x509ce.subjectAltName",
2728 FT_UINT32, BASE_DEC, VALS(x509ce_AltNameType_vals), 0,
2729 "AltNameType", HFILL }},
2730 { &hf_x509ce_policy,
2731 { "policy", "x509ce.policy",
2732 FT_UINT32, BASE_DEC, NULL, 0,
2733 "CertPolicySet", HFILL }},
2734 { &hf_x509ce_pathToName,
2735 { "pathToName", "x509ce.pathToName",
2736 FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
2737 "Name", HFILL }},
2738 { &hf_x509ce_subject,
2739 { "subject", "x509ce.subject",
2740 FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
2741 "Name", HFILL }},
2742 { &hf_x509ce_nameConstraints,
2743 { "nameConstraints", "x509ce.nameConstraints_element",
2744 FT_NONE, BASE_NONE, NULL, 0,
2745 "NameConstraintsSyntax", HFILL }},
2746 { &hf_x509ce_builtinNameForm,
2747 { "builtinNameForm", "x509ce.builtinNameForm",
2748 FT_UINT32, BASE_DEC, VALS(x509ce_T_builtinNameForm_vals), 0,
2749 NULL, HFILL }},
2750 { &hf_x509ce_otherNameForm,
2751 { "otherNameForm", "x509ce.otherNameForm",
2752 FT_OID, BASE_NONE, NULL, 0,
2753 "OBJECT_IDENTIFIER", HFILL }},
2754 { &hf_x509ce_CertPolicySet_item,
2755 { "CertPolicyId", "x509ce.CertPolicyId",
2756 FT_OID, BASE_NONE, NULL, 0,
2757 NULL, HFILL }},
2758 { &hf_x509ce_cpea_issuedToThisCAAssertion,
2759 { "issuedToThisCAAssertion", "x509ce.issuedToThisCAAssertion_element",
2760 FT_NONE, BASE_NONE, NULL, 0,
2761 "CertificateExactAssertion", HFILL }},
2762 { &hf_x509ce_cpea_issuedByThisCAAssertion,
2763 { "issuedByThisCAAssertion", "x509ce.issuedByThisCAAssertion_element",
2764 FT_NONE, BASE_NONE, NULL, 0,
2765 "CertificateExactAssertion", HFILL }},
2766 { &hf_x509ce_issuedToThisCAAssertion,
2767 { "issuedToThisCAAssertion", "x509ce.issuedToThisCAAssertion_element",
2768 FT_NONE, BASE_NONE, NULL, 0,
2769 "CertificateAssertion", HFILL }},
2770 { &hf_x509ce_issuedByThisCAAssertion,
2771 { "issuedByThisCAAssertion", "x509ce.issuedByThisCAAssertion_element",
2772 FT_NONE, BASE_NONE, NULL, 0,
2773 "CertificateAssertion", HFILL }},
2774 { &hf_x509ce_thisUpdate,
2775 { "thisUpdate", "x509ce.thisUpdate",
2776 FT_UINT32, BASE_DEC, VALS(x509af_Time_vals), 0,
2777 "Time", HFILL }},
2778 { &hf_x509ce_minCRLNumber,
2779 { "minCRLNumber", "x509ce.minCRLNumber",
2780 FT_UINT64, BASE_DEC, NULL, 0,
2781 "CRLNumber", HFILL }},
2782 { &hf_x509ce_maxCRLNumber,
2783 { "maxCRLNumber", "x509ce.maxCRLNumber",
2784 FT_UINT64, BASE_DEC, NULL, 0,
2785 "CRLNumber", HFILL }},
2786 { &hf_x509ce_reasonFlags,
2787 { "reasonFlags", "x509ce.reasonFlags",
2788 FT_BYTES, BASE_NONE, NULL, 0,
2789 NULL, HFILL }},
2790 { &hf_x509ce_dateAndTime,
2791 { "dateAndTime", "x509ce.dateAndTime",
2792 FT_UINT32, BASE_DEC, VALS(x509af_Time_vals), 0,
2793 "Time", HFILL }},
2794 { &hf_x509ce_firstIssuer,
2795 { "firstIssuer", "x509ce.firstIssuer",
2796 FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
2797 "Name", HFILL }},
2798 { &hf_x509ce_lastSubject,
2799 { "lastSubject", "x509ce.lastSubject",
2800 FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
2801 "Name", HFILL }},
2802 { &hf_x509ce_subjectAltName,
2803 { "subjectAltName", "x509ce.subjectAltName_element",
2804 FT_NONE, BASE_NONE, NULL, 0,
2805 "AltName", HFILL }},
2806 { &hf_x509ce_enhancedPathToName,
2807 { "pathToName", "x509ce.pathToName",
2808 FT_UINT32, BASE_DEC, NULL, 0,
2809 "GeneralNames", HFILL }},
2810 { &hf_x509ce_altnameType,
2811 { "altnameType", "x509ce.altnameType",
2812 FT_UINT32, BASE_DEC, VALS(x509ce_AltNameType_vals), 0,
2813 NULL, HFILL }},
2814 { &hf_x509ce_altNameValue,
2815 { "altNameValue", "x509ce.altNameValue",
2816 FT_UINT32, BASE_DEC, VALS(x509ce_GeneralName_vals), 0,
2817 "GeneralName", HFILL }},
2818 { &hf_x509ce_templateID,
2819 { "templateID", "x509ce.templateID",
2820 FT_OID, BASE_NONE, NULL, 0,
2821 "OBJECT_IDENTIFIER", HFILL }},
2822 { &hf_x509ce_templateMajorVersion,
2823 { "templateMajorVersion", "x509ce.templateMajorVersion",
2824 FT_INT32, BASE_DEC, NULL, 0,
2825 "INTEGER", HFILL }},
2826 { &hf_x509ce_templateMinorVersion,
2827 { "templateMinorVersion", "x509ce.templateMinorVersion",
2828 FT_INT32, BASE_DEC, NULL, 0,
2829 "INTEGER", HFILL }},
2830 { &hf_x509ce_ntdsObjectSid,
2831 { "ntdsObjectSid", "x509ce.ntdsObjectSid_element",
2832 FT_NONE, BASE_NONE, NULL, 0,
2833 NULL, HFILL }},
2834 { &hf_x509ce_type_id_01,
2835 { "type-id", "x509ce.type_id",
2836 FT_OID, BASE_NONE, NULL, 0,
2837 "OBJECT_IDENTIFIER", HFILL }},
2838 { &hf_x509ce_sid,
2839 { "sid", "x509ce.sid",
2840 FT_STRING, BASE_NONE, NULL, 0,
2841 "PrintableString", HFILL }},
2842 { &hf_x509ce_entrustVers,
2843 { "entrustVers", "x509ce.entrustVers",
2844 FT_STRING, BASE_NONE, NULL, 0,
2845 "GeneralString", HFILL }},
2846 { &hf_x509ce_entrustVersInfoFlags,
2847 { "entrustVersInfoFlags", "x509ce.entrustVersInfoFlags",
2848 FT_BYTES, BASE_NONE, NULL, 0,
2849 "EntrustInfoFlags", HFILL }},
2850 { &hf_x509ce_NFTypes_item,
2851 { "NFType", "x509ce.NFType",
2852 FT_STRING, BASE_NONE, NULL, 0,
2853 NULL, HFILL }},
2854 { &hf_x509ce_capability,
2855 { "capability", "x509ce.capability",
2856 FT_UINT64, BASE_DEC|BASE_VAL64_STRING, VALS64(ciplus_scr_cap), 0,
2857 "INTEGER_0_MAX", HFILL }},
2858 { &hf_x509ce_version,
2859 { "version", "x509ce.version",
2860 FT_UINT64, BASE_DEC, NULL, 0,
2861 "INTEGER_0_MAX", HFILL }},
2862 { &hf_x509ce_KeyUsage_digitalSignature,
2863 { "digitalSignature", "x509ce.KeyUsage.digitalSignature",
2864 FT_BOOLEAN, 8, NULL, 0x80,
2865 NULL, HFILL }},
2866 { &hf_x509ce_KeyUsage_contentCommitment,
2867 { "contentCommitment", "x509ce.KeyUsage.contentCommitment",
2868 FT_BOOLEAN, 8, NULL, 0x40,
2869 NULL, HFILL }},
2870 { &hf_x509ce_KeyUsage_keyEncipherment,
2871 { "keyEncipherment", "x509ce.KeyUsage.keyEncipherment",
2872 FT_BOOLEAN, 8, NULL, 0x20,
2873 NULL, HFILL }},
2874 { &hf_x509ce_KeyUsage_dataEncipherment,
2875 { "dataEncipherment", "x509ce.KeyUsage.dataEncipherment",
2876 FT_BOOLEAN, 8, NULL, 0x10,
2877 NULL, HFILL }},
2878 { &hf_x509ce_KeyUsage_keyAgreement,
2879 { "keyAgreement", "x509ce.KeyUsage.keyAgreement",
2880 FT_BOOLEAN, 8, NULL, 0x08,
2881 NULL, HFILL }},
2882 { &hf_x509ce_KeyUsage_keyCertSign,
2883 { "keyCertSign", "x509ce.KeyUsage.keyCertSign",
2884 FT_BOOLEAN, 8, NULL, 0x04,
2885 NULL, HFILL }},
2886 { &hf_x509ce_KeyUsage_cRLSign,
2887 { "cRLSign", "x509ce.KeyUsage.cRLSign",
2888 FT_BOOLEAN, 8, NULL, 0x02,
2889 NULL, HFILL }},
2890 { &hf_x509ce_KeyUsage_encipherOnly,
2891 { "encipherOnly", "x509ce.KeyUsage.encipherOnly",
2892 FT_BOOLEAN, 8, NULL, 0x01,
2893 NULL, HFILL }},
2894 { &hf_x509ce_KeyUsage_decipherOnly,
2895 { "decipherOnly", "x509ce.KeyUsage.decipherOnly",
2896 FT_BOOLEAN, 8, NULL, 0x80,
2897 NULL, HFILL }},
2898 { &hf_x509ce_OnlyCertificateTypes_user,
2899 { "user", "x509ce.OnlyCertificateTypes.user",
2900 FT_BOOLEAN, 8, NULL, 0x80,
2901 NULL, HFILL }},
2902 { &hf_x509ce_OnlyCertificateTypes_authority,
2903 { "authority", "x509ce.OnlyCertificateTypes.authority",
2904 FT_BOOLEAN, 8, NULL, 0x40,
2905 NULL, HFILL }},
2906 { &hf_x509ce_OnlyCertificateTypes_attribute,
2907 { "attribute", "x509ce.OnlyCertificateTypes.attribute",
2908 FT_BOOLEAN, 8, NULL, 0x20,
2909 NULL, HFILL }},
2910 { &hf_x509ce_ReasonFlags_unused,
2911 { "unused", "x509ce.ReasonFlags.unused",
2912 FT_BOOLEAN, 8, NULL, 0x80,
2913 NULL, HFILL }},
2914 { &hf_x509ce_ReasonFlags_keyCompromise,
2915 { "keyCompromise", "x509ce.ReasonFlags.keyCompromise",
2916 FT_BOOLEAN, 8, NULL, 0x40,
2917 NULL, HFILL }},
2918 { &hf_x509ce_ReasonFlags_cACompromise,
2919 { "cACompromise", "x509ce.ReasonFlags.cACompromise",
2920 FT_BOOLEAN, 8, NULL, 0x20,
2921 NULL, HFILL }},
2922 { &hf_x509ce_ReasonFlags_affiliationChanged,
2923 { "affiliationChanged", "x509ce.ReasonFlags.affiliationChanged",
2924 FT_BOOLEAN, 8, NULL, 0x10,
2925 NULL, HFILL }},
2926 { &hf_x509ce_ReasonFlags_superseded,
2927 { "superseded", "x509ce.ReasonFlags.superseded",
2928 FT_BOOLEAN, 8, NULL, 0x08,
2929 NULL, HFILL }},
2930 { &hf_x509ce_ReasonFlags_cessationOfOperation,
2931 { "cessationOfOperation", "x509ce.ReasonFlags.cessationOfOperation",
2932 FT_BOOLEAN, 8, NULL, 0x04,
2933 NULL, HFILL }},
2934 { &hf_x509ce_ReasonFlags_certificateHold,
2935 { "certificateHold", "x509ce.ReasonFlags.certificateHold",
2936 FT_BOOLEAN, 8, NULL, 0x02,
2937 NULL, HFILL }},
2938 { &hf_x509ce_ReasonFlags_privilegeWithdrawn,
2939 { "privilegeWithdrawn", "x509ce.ReasonFlags.privilegeWithdrawn",
2940 FT_BOOLEAN, 8, NULL, 0x01,
2941 NULL, HFILL }},
2942 { &hf_x509ce_ReasonFlags_aACompromise,
2943 { "aACompromise", "x509ce.ReasonFlags.aACompromise",
2944 FT_BOOLEAN, 8, NULL, 0x80,
2945 NULL, HFILL }},
2946 { &hf_x509ce_EntrustInfoFlags_keyUpdateAllowed,
2947 { "keyUpdateAllowed", "x509ce.EntrustInfoFlags.keyUpdateAllowed",
2948 FT_BOOLEAN, 8, NULL, 0x80,
2949 NULL, HFILL }},
2950 { &hf_x509ce_EntrustInfoFlags_newExtensions,
2951 { "newExtensions", "x509ce.EntrustInfoFlags.newExtensions",
2952 FT_BOOLEAN, 8, NULL, 0x40,
2953 NULL, HFILL }},
2954 { &hf_x509ce_EntrustInfoFlags_pKIXCertificate,
2955 { "pKIXCertificate", "x509ce.EntrustInfoFlags.pKIXCertificate",
2956 FT_BOOLEAN, 8, NULL, 0x20,
2957 NULL, HFILL }},
2958 { &hf_x509ce_EntrustInfoFlags_enterpriseCategory,
2959 { "enterpriseCategory", "x509ce.EntrustInfoFlags.enterpriseCategory",
2960 FT_BOOLEAN, 8, NULL, 0x10,
2961 NULL, HFILL }},
2962 { &hf_x509ce_EntrustInfoFlags_webCategory,
2963 { "webCategory", "x509ce.EntrustInfoFlags.webCategory",
2964 FT_BOOLEAN, 8, NULL, 0x08,
2965 NULL, HFILL }},
2966 { &hf_x509ce_EntrustInfoFlags_sETCategory,
2967 { "sETCategory", "x509ce.EntrustInfoFlags.sETCategory",
2968 FT_BOOLEAN, 8, NULL, 0x04,
2969 NULL, HFILL }},
2972 /* List of subtrees */
2973 static int *ett[] = {
2974 &ett_x509ce_AuthorityKeyIdentifier,
2975 &ett_x509ce_KeyUsage,
2976 &ett_x509ce_KeyPurposeIDs,
2977 &ett_x509ce_PrivateKeyUsagePeriod,
2978 &ett_x509ce_CertificatePoliciesSyntax,
2979 &ett_x509ce_PolicyInformation,
2980 &ett_x509ce_SEQUENCE_SIZE_1_MAX_OF_PolicyQualifierInfo,
2981 &ett_x509ce_PolicyQualifierInfo,
2982 &ett_x509ce_PolicyMappingsSyntax,
2983 &ett_x509ce_PolicyMappingsSyntax_item,
2984 &ett_x509ce_GeneralNames,
2985 &ett_x509ce_GeneralName,
2986 &ett_x509ce_OtherName,
2987 &ett_x509ce_EDIPartyName,
2988 &ett_x509ce_AttributesSyntax,
2989 &ett_x509ce_BasicConstraintsSyntax,
2990 &ett_x509ce_NameConstraintsSyntax,
2991 &ett_x509ce_GeneralSubtrees,
2992 &ett_x509ce_GeneralSubtree,
2993 &ett_x509ce_PolicyConstraintsSyntax,
2994 &ett_x509ce_CRLScopeSyntax,
2995 &ett_x509ce_PerAuthorityScope,
2996 &ett_x509ce_OnlyCertificateTypes,
2997 &ett_x509ce_NumberRange,
2998 &ett_x509ce_BaseRevocationInfo,
2999 &ett_x509ce_StatusReferrals,
3000 &ett_x509ce_StatusReferral,
3001 &ett_x509ce_CRLReferral,
3002 &ett_x509ce_DeltaRefInfo,
3003 &ett_x509ce_DeltaInformation,
3004 &ett_x509ce_CRLDistPointsSyntax,
3005 &ett_x509ce_DistributionPoint,
3006 &ett_x509ce_DistributionPointName,
3007 &ett_x509ce_ReasonFlags,
3008 &ett_x509ce_IssuingDistPointSyntax,
3009 &ett_x509ce_ToBeRevokedSyntax,
3010 &ett_x509ce_ToBeRevokedGroup,
3011 &ett_x509ce_ReasonInfo,
3012 &ett_x509ce_CertificateGroup,
3013 &ett_x509ce_CertificateGroupNumberRange,
3014 &ett_x509ce_CertificateSerialNumbers,
3015 &ett_x509ce_RevokedGroupsSyntax,
3016 &ett_x509ce_RevokedGroup,
3017 &ett_x509ce_RevokedCertificateGroup,
3018 &ett_x509ce_AAIssuingDistPointSyntax,
3019 &ett_x509ce_CertificateExactAssertion,
3020 &ett_x509ce_CertificateAssertion,
3021 &ett_x509ce_AltNameType,
3022 &ett_x509ce_CertPolicySet,
3023 &ett_x509ce_CertificatePairExactAssertion,
3024 &ett_x509ce_CertificatePairAssertion,
3025 &ett_x509ce_CertificateListExactAssertion,
3026 &ett_x509ce_CertificateListAssertion,
3027 &ett_x509ce_PkiPathMatchSyntax,
3028 &ett_x509ce_EnhancedCertificateAssertion,
3029 &ett_x509ce_AltName,
3030 &ett_x509ce_CertificateTemplate,
3031 &ett_x509ce_NtdsCaSecurity,
3032 &ett_x509ce_NtdsObjectSid_U,
3033 &ett_x509ce_EntrustVersionInfo,
3034 &ett_x509ce_EntrustInfoFlags,
3035 &ett_x509ce_NFTypes,
3036 &ett_x509ce_ScramblerCapabilities,
3039 /* Register protocol */
3040 proto_x509ce = proto_register_protocol(PNAME, PSNAME, PFNAME);
3042 /* Register fields and subtrees */
3043 proto_register_field_array(proto_x509ce, hf, array_length(hf));
3044 proto_register_subtree_array(ett, array_length(ett));
3049 /*--- proto_reg_handoff_x509ce -------------------------------------------*/
3050 void proto_reg_handoff_x509ce(void) {
3051 register_ber_oid_dissector("2.5.29.3", dissect_CertificatePoliciesSyntax_PDU, proto_x509ce, "id-ce-certificatePolicies");
3052 register_ber_oid_dissector("2.5.29.9", dissect_AttributesSyntax_PDU, proto_x509ce, "id-ce-subjectDirectoryAttributes");
3053 register_ber_oid_dissector("2.5.29.14", dissect_SubjectKeyIdentifier_PDU, proto_x509ce, "id-ce-subjectKeyIdentifier");
3054 register_ber_oid_dissector("2.5.29.15", dissect_KeyUsage_PDU, proto_x509ce, "id-ce-keyUsage");
3055 register_ber_oid_dissector("2.5.29.16", dissect_PrivateKeyUsagePeriod_PDU, proto_x509ce, "id-ce-privateKeyUsagePeriod");
3056 register_ber_oid_dissector("2.5.29.17", dissect_GeneralNames_PDU, proto_x509ce, "id-ce-subjectAltName");
3057 register_ber_oid_dissector("2.5.29.18", dissect_GeneralNames_PDU, proto_x509ce, "id-ce-issuerAltName");
3058 register_ber_oid_dissector("2.5.29.19", dissect_BasicConstraintsSyntax_PDU, proto_x509ce, "id-ce-basicConstraints");
3059 register_ber_oid_dissector("2.5.29.20", dissect_CRLNumber_PDU, proto_x509ce, "id-ce-cRLNumber");
3060 register_ber_oid_dissector("2.5.29.21", dissect_CRLReason_PDU, proto_x509ce, "id-ce-reasonCode");
3061 register_ber_oid_dissector("2.5.29.23", dissect_HoldInstruction_PDU, proto_x509ce, "id-ce-instructionCode");
3062 register_ber_oid_dissector("2.5.29.27", dissect_BaseCRLNumber_PDU, proto_x509ce, "id-ce-deltaCRLIndicator");
3063 register_ber_oid_dissector("2.5.29.28", dissect_IssuingDistPointSyntax_PDU, proto_x509ce, "id-ce-issuingDistributionPoint");
3064 register_ber_oid_dissector("2.5.29.29", dissect_GeneralNames_PDU, proto_x509ce, "id-ce-certificateIssuer");
3065 register_ber_oid_dissector("2.5.29.30", dissect_NameConstraintsSyntax_PDU, proto_x509ce, "id-ce-nameConstraints");
3066 register_ber_oid_dissector("2.5.29.31", dissect_CRLDistPointsSyntax_PDU, proto_x509ce, "id-ce-cRLDistributionPoints");
3067 register_ber_oid_dissector("2.5.29.32", dissect_CertificatePoliciesSyntax_PDU, proto_x509ce, "id-ce-certificatePolicies");
3068 register_ber_oid_dissector("2.5.29.33", dissect_PolicyMappingsSyntax_PDU, proto_x509ce, "id-ce-policyMappings");
3069 register_ber_oid_dissector("2.5.29.35", dissect_AuthorityKeyIdentifier_PDU, proto_x509ce, "id-ce-authorityKeyIdentifier");
3070 register_ber_oid_dissector("2.5.29.36", dissect_PolicyConstraintsSyntax_PDU, proto_x509ce, "id-ce-policyConstraints");
3071 register_ber_oid_dissector("2.5.29.37", dissect_KeyPurposeIDs_PDU, proto_x509ce, "id-ce-extKeyUsage");
3072 register_ber_oid_dissector("2.5.29.40", dissect_CRLStreamIdentifier_PDU, proto_x509ce, "id-ce-cRLStreamIdentifier");
3073 register_ber_oid_dissector("2.5.29.44", dissect_CRLScopeSyntax_PDU, proto_x509ce, "id-ce-cRLScope");
3074 register_ber_oid_dissector("2.5.29.45", dissect_StatusReferrals_PDU, proto_x509ce, "id-ce-statusReferrals");
3075 register_ber_oid_dissector("2.5.29.46", dissect_CRLDistPointsSyntax_PDU, proto_x509ce, "id-ce-freshestCRL");
3076 register_ber_oid_dissector("2.5.29.47", dissect_OrderedListSyntax_PDU, proto_x509ce, "id-ce-orderedList");
3077 register_ber_oid_dissector("2.5.29.53", dissect_DeltaInformation_PDU, proto_x509ce, "id-ce-deltaInfo");
3078 register_ber_oid_dissector("2.5.29.54", dissect_SkipCerts_PDU, proto_x509ce, "id-ce-inhibitAnyPolicy");
3079 register_ber_oid_dissector("2.5.29.58", dissect_ToBeRevokedSyntax_PDU, proto_x509ce, "id-ce-toBeRevoked");
3080 register_ber_oid_dissector("2.5.29.59", dissect_RevokedGroupsSyntax_PDU, proto_x509ce, "id-ce-RevokedGroups");
3081 register_ber_oid_dissector("2.5.29.60", dissect_ExpiredCertsOnCRL_PDU, proto_x509ce, "id-ce-expiredCertsOnCRL");
3082 register_ber_oid_dissector("2.5.29.61", dissect_AAIssuingDistPointSyntax_PDU, proto_x509ce, "id-ce-aAissuingDistributionPoint");
3083 register_ber_oid_dissector("1.3.6.1.5.5.7.1.34", dissect_NFTypes_PDU, proto_x509ce, "id-pe-nftype");
3084 register_ber_oid_dissector("2.5.13.35", dissect_CertificateAssertion_PDU, proto_x509ce, "id-mr-certificateMatch");
3085 register_ber_oid_dissector("2.5.13.36", dissect_CertificatePairExactAssertion_PDU, proto_x509ce, "id-mr-certificatePairExactMatch");
3086 register_ber_oid_dissector("2.5.13.37", dissect_CertificatePairAssertion_PDU, proto_x509ce, "id-mr-certificatePairMatch");
3087 register_ber_oid_dissector("2.5.13.38", dissect_CertificateListExactAssertion_PDU, proto_x509ce, "id-mr-certificateListExactMatch");
3088 register_ber_oid_dissector("2.5.13.39", dissect_CertificateListAssertion_PDU, proto_x509ce, "id-mr-certificateListMatch");
3089 register_ber_oid_dissector("2.5.13.62", dissect_PkiPathMatchSyntax_PDU, proto_x509ce, "id-mr-pkiPathMatch");
3090 register_ber_oid_dissector("2.5.13.65", dissect_EnhancedCertificateAssertion_PDU, proto_x509ce, "id-mr-enhancedCertificateMatch");
3091 register_ber_oid_dissector("1.3.6.1.4.1.311.21.7", dissect_CertificateTemplate_PDU, proto_x509ce, "id-ms-certificate-template");
3092 register_ber_oid_dissector("1.3.6.1.4.1.311.21.10", dissect_CertificatePoliciesSyntax_PDU, proto_x509ce, "id-ms-application-certificate-policies");
3093 register_ber_oid_dissector("1.3.6.1.4.1.311.25.2", dissect_NtdsCaSecurity_PDU, proto_x509ce, "id-ms-ntds-ca-security");
3094 register_ber_oid_dissector("1.3.6.1.4.1.311.25.2.1", dissect_NtdsObjectSid_PDU, proto_x509ce, "id-ms-ntds-object-sid");
3095 register_ber_oid_dissector("1.2.840.113533.7.65.0", dissect_EntrustVersionInfo_PDU, proto_x509ce, "id-ce-entrustVersionInfo");
3097 register_ber_oid_dissector("2.5.29.24", dissect_x509ce_invalidityDate_callback, proto_x509ce, "id-ce-invalidityDate");
3098 register_ber_oid_dissector("2.5.29.51", dissect_x509ce_baseUpdateTime_callback, proto_x509ce, "id-ce-baseUpdateTime");
3099 oid_add_from_string("anyPolicy","2.5.29.32.0");
3104 * Editor modelines - https://www.wireshark.org/tools/modelines.html
3106 * Local Variables:
3107 * c-basic-offset: 2
3108 * tab-width: 8
3109 * indent-tabs-mode: nil
3110 * End:
3112 * vi: set shiftwidth=2 tabstop=8 expandtab:
3113 * :indentSize=2:tabSize=8:noTabs=true: