84eab48ad41384f127d99e416822509dadcc2b35
[obnox/wireshark/wip.git] / epan / dissectors / packet-x509ce.c
1 /* Do not modify this file.                                                   */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler   */
3 /* packet-x509ce.c                                                            */
4 /* ../../tools/asn2wrs.py -b -e -p x509ce -c ./x509ce.cnf -s ./packet-x509ce-template -D . CertificateExtensions.asn */
5
6 /* Input file: packet-x509ce-template.c */
7
8 #line 1 "packet-x509ce-template.c"
9 /* packet-x509ce.c
10  * Routines for X.509 Certificate Extensions packet dissection
11  *  Ronnie Sahlberg 2004
12  *
13  * $Id$
14  *
15  * Wireshark - Network traffic analyzer
16  * By Gerald Combs <gerald@wireshark.org>
17  * Copyright 1998 Gerald Combs
18  *
19  * This program is free software; you can redistribute it and/or
20  * modify it under the terms of the GNU General Public License
21  * as published by the Free Software Foundation; either version 2
22  * of the License, or (at your option) any later version.
23  *
24  * This program is distributed in the hope that it will be useful,
25  * but WITHOUT ANY WARRANTY; without even the implied warranty of
26  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
27  * GNU General Public License for more details.
28  *
29  * You should have received a copy of the GNU General Public License
30  * along with this program; if not, write to the Free Software
31  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
32  */
33
34 #ifdef HAVE_CONFIG_H
35 # include "config.h"
36 #endif
37
38 #include <glib.h>
39 #include <epan/packet.h>
40 #include <epan/asn1.h>
41
42 #include <string.h>
43
44 #include "packet-ber.h"
45 #include "packet-x509ce.h"
46 #include "packet-x509af.h"
47 #include "packet-x509if.h"
48 #include "packet-x509sat.h"
49 #include "packet-x411.h"
50
51 #define PNAME  "X.509 Certificate Extensions"
52 #define PSNAME "X509CE"
53 #define PFNAME "x509ce"
54
55 /* Initialize the protocol and registered fields */
56 static int proto_x509ce = -1;
57 static int hf_x509ce_id_ce_invalidityDate = -1;
58 static int hf_x509ce_id_ce_baseUpdateTime = -1;
59 static int hf_x509ce_object_identifier_id = -1;
60 static int hf_x509ce_IPAddress = -1;
61
62 /*--- Included file: packet-x509ce-hf.c ---*/
63 #line 1 "packet-x509ce-hf.c"
64 static int hf_x509ce_AuthorityKeyIdentifier_PDU = -1;  /* AuthorityKeyIdentifier */
65 static int hf_x509ce_SubjectKeyIdentifier_PDU = -1;  /* SubjectKeyIdentifier */
66 static int hf_x509ce_KeyUsage_PDU = -1;           /* KeyUsage */
67 static int hf_x509ce_KeyPurposeIDs_PDU = -1;      /* KeyPurposeIDs */
68 static int hf_x509ce_PrivateKeyUsagePeriod_PDU = -1;  /* PrivateKeyUsagePeriod */
69 static int hf_x509ce_CertificatePoliciesSyntax_PDU = -1;  /* CertificatePoliciesSyntax */
70 static int hf_x509ce_PolicyMappingsSyntax_PDU = -1;  /* PolicyMappingsSyntax */
71 static int hf_x509ce_GeneralNames_PDU = -1;       /* GeneralNames */
72 static int hf_x509ce_AttributesSyntax_PDU = -1;   /* AttributesSyntax */
73 static int hf_x509ce_BasicConstraintsSyntax_PDU = -1;  /* BasicConstraintsSyntax */
74 static int hf_x509ce_NameConstraintsSyntax_PDU = -1;  /* NameConstraintsSyntax */
75 static int hf_x509ce_PolicyConstraintsSyntax_PDU = -1;  /* PolicyConstraintsSyntax */
76 static int hf_x509ce_SkipCerts_PDU = -1;          /* SkipCerts */
77 static int hf_x509ce_CRLNumber_PDU = -1;          /* CRLNumber */
78 static int hf_x509ce_CRLReason_PDU = -1;          /* CRLReason */
79 static int hf_x509ce_HoldInstruction_PDU = -1;    /* HoldInstruction */
80 static int hf_x509ce_CRLScopeSyntax_PDU = -1;     /* CRLScopeSyntax */
81 static int hf_x509ce_StatusReferrals_PDU = -1;    /* StatusReferrals */
82 static int hf_x509ce_CRLStreamIdentifier_PDU = -1;  /* CRLStreamIdentifier */
83 static int hf_x509ce_OrderedListSyntax_PDU = -1;  /* OrderedListSyntax */
84 static int hf_x509ce_DeltaInformation_PDU = -1;   /* DeltaInformation */
85 static int hf_x509ce_CRLDistPointsSyntax_PDU = -1;  /* CRLDistPointsSyntax */
86 static int hf_x509ce_IssuingDistPointSyntax_PDU = -1;  /* IssuingDistPointSyntax */
87 static int hf_x509ce_BaseCRLNumber_PDU = -1;      /* BaseCRLNumber */
88 static int hf_x509ce_ToBeRevokedSyntax_PDU = -1;  /* ToBeRevokedSyntax */
89 static int hf_x509ce_RevokedGroupsSyntax_PDU = -1;  /* RevokedGroupsSyntax */
90 static int hf_x509ce_ExpiredCertsOnCRL_PDU = -1;  /* ExpiredCertsOnCRL */
91 static int hf_x509ce_AAIssuingDistPointSyntax_PDU = -1;  /* AAIssuingDistPointSyntax */
92 static int hf_x509ce_CertificateAssertion_PDU = -1;  /* CertificateAssertion */
93 static int hf_x509ce_CertificatePairExactAssertion_PDU = -1;  /* CertificatePairExactAssertion */
94 static int hf_x509ce_CertificatePairAssertion_PDU = -1;  /* CertificatePairAssertion */
95 static int hf_x509ce_CertificateListExactAssertion_PDU = -1;  /* CertificateListExactAssertion */
96 static int hf_x509ce_CertificateListAssertion_PDU = -1;  /* CertificateListAssertion */
97 static int hf_x509ce_PkiPathMatchSyntax_PDU = -1;  /* PkiPathMatchSyntax */
98 static int hf_x509ce_EnhancedCertificateAssertion_PDU = -1;  /* EnhancedCertificateAssertion */
99 static int hf_x509ce_CertificateTemplate_PDU = -1;  /* CertificateTemplate */
100 static int hf_x509ce_EntrustVersionInfo_PDU = -1;  /* EntrustVersionInfo */
101 static int hf_x509ce_keyIdentifier = -1;          /* KeyIdentifier */
102 static int hf_x509ce_authorityCertIssuer = -1;    /* GeneralNames */
103 static int hf_x509ce_authorityCertSerialNumber = -1;  /* CertificateSerialNumber */
104 static int hf_x509ce_KeyPurposeIDs_item = -1;     /* KeyPurposeId */
105 static int hf_x509ce_notBefore = -1;              /* GeneralizedTime */
106 static int hf_x509ce_notAfter = -1;               /* GeneralizedTime */
107 static int hf_x509ce_CertificatePoliciesSyntax_item = -1;  /* PolicyInformation */
108 static int hf_x509ce_policyIdentifier = -1;       /* CertPolicyId */
109 static int hf_x509ce_policyQualifiers = -1;       /* SEQUENCE_SIZE_1_MAX_OF_PolicyQualifierInfo */
110 static int hf_x509ce_policyQualifiers_item = -1;  /* PolicyQualifierInfo */
111 static int hf_x509ce_policyQualifierId = -1;      /* T_policyQualifierId */
112 static int hf_x509ce_qualifier = -1;              /* T_qualifier */
113 static int hf_x509ce_PolicyMappingsSyntax_item = -1;  /* PolicyMappingsSyntax_item */
114 static int hf_x509ce_issuerDomainPolicy = -1;     /* CertPolicyId */
115 static int hf_x509ce_subjectDomainPolicy = -1;    /* CertPolicyId */
116 static int hf_x509ce_GeneralNames_item = -1;      /* GeneralName */
117 static int hf_x509ce_otherName = -1;              /* OtherName */
118 static int hf_x509ce_rfc822Name = -1;             /* IA5String */
119 static int hf_x509ce_dNSName = -1;                /* IA5String */
120 static int hf_x509ce_x400Address = -1;            /* ORAddress */
121 static int hf_x509ce_directoryName = -1;          /* Name */
122 static int hf_x509ce_ediPartyName = -1;           /* EDIPartyName */
123 static int hf_x509ce_uniformResourceIdentifier = -1;  /* T_uniformResourceIdentifier */
124 static int hf_x509ce_iPAddress = -1;              /* T_iPAddress */
125 static int hf_x509ce_registeredID = -1;           /* OBJECT_IDENTIFIER */
126 static int hf_x509ce_type_id = -1;                /* OtherNameType */
127 static int hf_x509ce_value = -1;                  /* OtherNameValue */
128 static int hf_x509ce_nameAssigner = -1;           /* DirectoryString */
129 static int hf_x509ce_partyName = -1;              /* DirectoryString */
130 static int hf_x509ce_AttributesSyntax_item = -1;  /* Attribute */
131 static int hf_x509ce_cA = -1;                     /* BOOLEAN */
132 static int hf_x509ce_pathLenConstraint = -1;      /* INTEGER_0_MAX */
133 static int hf_x509ce_permittedSubtrees = -1;      /* GeneralSubtrees */
134 static int hf_x509ce_excludedSubtrees = -1;       /* GeneralSubtrees */
135 static int hf_x509ce_GeneralSubtrees_item = -1;   /* GeneralSubtree */
136 static int hf_x509ce_base = -1;                   /* GeneralName */
137 static int hf_x509ce_minimum = -1;                /* BaseDistance */
138 static int hf_x509ce_maximum = -1;                /* BaseDistance */
139 static int hf_x509ce_requireExplicitPolicy = -1;  /* SkipCerts */
140 static int hf_x509ce_inhibitPolicyMapping = -1;   /* SkipCerts */
141 static int hf_x509ce_CRLScopeSyntax_item = -1;    /* PerAuthorityScope */
142 static int hf_x509ce_authorityName = -1;          /* GeneralName */
143 static int hf_x509ce_distributionPoint = -1;      /* DistributionPointName */
144 static int hf_x509ce_onlyContains = -1;           /* OnlyCertificateTypes */
145 static int hf_x509ce_onlySomeReasons = -1;        /* ReasonFlags */
146 static int hf_x509ce_serialNumberRange = -1;      /* NumberRange */
147 static int hf_x509ce_subjectKeyIdRange = -1;      /* NumberRange */
148 static int hf_x509ce_nameSubtrees = -1;           /* GeneralNames */
149 static int hf_x509ce_baseRevocationInfo = -1;     /* BaseRevocationInfo */
150 static int hf_x509ce_startingNumber = -1;         /* INTEGER */
151 static int hf_x509ce_endingNumber = -1;           /* INTEGER */
152 static int hf_x509ce_modulus = -1;                /* INTEGER */
153 static int hf_x509ce_cRLStreamIdentifier = -1;    /* CRLStreamIdentifier */
154 static int hf_x509ce_cRLNumber = -1;              /* CRLNumber */
155 static int hf_x509ce_baseThisUpdate = -1;         /* GeneralizedTime */
156 static int hf_x509ce_StatusReferrals_item = -1;   /* StatusReferral */
157 static int hf_x509ce_cRLReferral = -1;            /* CRLReferral */
158 static int hf_x509ce_crlr_issuer = -1;            /* GeneralName */
159 static int hf_x509ce_location = -1;               /* GeneralName */
160 static int hf_x509ce_deltaRefInfo = -1;           /* DeltaRefInfo */
161 static int hf_x509ce_cRLScope = -1;               /* CRLScopeSyntax */
162 static int hf_x509ce_lastUpdate = -1;             /* GeneralizedTime */
163 static int hf_x509ce_lastChangedCRL = -1;         /* GeneralizedTime */
164 static int hf_x509ce_deltaLocation = -1;          /* GeneralName */
165 static int hf_x509ce_lastDelta = -1;              /* GeneralizedTime */
166 static int hf_x509ce_nextDelta = -1;              /* GeneralizedTime */
167 static int hf_x509ce_CRLDistPointsSyntax_item = -1;  /* DistributionPoint */
168 static int hf_x509ce_reasons = -1;                /* ReasonFlags */
169 static int hf_x509ce_cRLIssuer = -1;              /* GeneralNames */
170 static int hf_x509ce_fullName = -1;               /* GeneralNames */
171 static int hf_x509ce_nameRelativeToCRLIssuer = -1;  /* RelativeDistinguishedName */
172 static int hf_x509ce_onlyContainsUserPublicKeyCerts = -1;  /* BOOLEAN */
173 static int hf_x509ce_onlyContainsCACerts = -1;    /* BOOLEAN */
174 static int hf_x509ce_indirectCRL = -1;            /* BOOLEAN */
175 static int hf_x509ce_ToBeRevokedSyntax_item = -1;  /* ToBeRevokedGroup */
176 static int hf_x509ce_certificateIssuer = -1;      /* GeneralName */
177 static int hf_x509ce_reasonInfo = -1;             /* ReasonInfo */
178 static int hf_x509ce_revocationTime = -1;         /* GeneralizedTime */
179 static int hf_x509ce_certificateGroup = -1;       /* CertificateGroup */
180 static int hf_x509ce_reasonCode = -1;             /* CRLReason */
181 static int hf_x509ce_holdInstructionCode = -1;    /* HoldInstruction */
182 static int hf_x509ce_serialNumbers = -1;          /* CertificateSerialNumbers */
183 static int hf_x509ce_serialNumberRange_01 = -1;   /* CertificateGroupNumberRange */
184 static int hf_x509ce_nameSubtree = -1;            /* GeneralName */
185 static int hf_x509ce_CertificateSerialNumbers_item = -1;  /* CertificateSerialNumber */
186 static int hf_x509ce_RevokedGroupsSyntax_item = -1;  /* RevokedGroup */
187 static int hf_x509ce_invalidityDate = -1;         /* GeneralizedTime */
188 static int hf_x509ce_revokedcertificateGroup = -1;  /* RevokedCertificateGroup */
189 static int hf_x509ce_containsUserAttributeCerts = -1;  /* BOOLEAN */
190 static int hf_x509ce_containsAACerts = -1;        /* BOOLEAN */
191 static int hf_x509ce_containsSOAPublicKeyCerts = -1;  /* BOOLEAN */
192 static int hf_x509ce_serialNumber = -1;           /* CertificateSerialNumber */
193 static int hf_x509ce_issuer = -1;                 /* Name */
194 static int hf_x509ce_subjectKeyIdentifier = -1;   /* SubjectKeyIdentifier */
195 static int hf_x509ce_authorityKeyIdentifier = -1;  /* AuthorityKeyIdentifier */
196 static int hf_x509ce_certificateValid = -1;       /* Time */
197 static int hf_x509ce_privateKeyValid = -1;        /* GeneralizedTime */
198 static int hf_x509ce_subjectPublicKeyAlgID = -1;  /* OBJECT_IDENTIFIER */
199 static int hf_x509ce_keyUsage = -1;               /* KeyUsage */
200 static int hf_x509ce_subjectAltName = -1;         /* AltNameType */
201 static int hf_x509ce_policy = -1;                 /* CertPolicySet */
202 static int hf_x509ce_pathToName = -1;             /* Name */
203 static int hf_x509ce_subject = -1;                /* Name */
204 static int hf_x509ce_nameConstraints = -1;        /* NameConstraintsSyntax */
205 static int hf_x509ce_builtinNameForm = -1;        /* T_builtinNameForm */
206 static int hf_x509ce_otherNameForm = -1;          /* OBJECT_IDENTIFIER */
207 static int hf_x509ce_CertPolicySet_item = -1;     /* CertPolicyId */
208 static int hf_x509ce_cpea_issuedToThisCAAssertion = -1;  /* CertificateExactAssertion */
209 static int hf_x509ce_cpea_issuedByThisCAAssertion = -1;  /* CertificateExactAssertion */
210 static int hf_x509ce_issuedToThisCAAssertion = -1;  /* CertificateAssertion */
211 static int hf_x509ce_issuedByThisCAAssertion = -1;  /* CertificateAssertion */
212 static int hf_x509ce_thisUpdate = -1;             /* Time */
213 static int hf_x509ce_minCRLNumber = -1;           /* CRLNumber */
214 static int hf_x509ce_maxCRLNumber = -1;           /* CRLNumber */
215 static int hf_x509ce_reasonFlags = -1;            /* ReasonFlags */
216 static int hf_x509ce_dateAndTime = -1;            /* Time */
217 static int hf_x509ce_firstIssuer = -1;            /* Name */
218 static int hf_x509ce_lastSubject = -1;            /* Name */
219 static int hf_x509ce_subjectAltName_01 = -1;      /* AltName */
220 static int hf_x509ce_pathToName_01 = -1;          /* GeneralNames */
221 static int hf_x509ce_altnameType = -1;            /* AltNameType */
222 static int hf_x509ce_altNameValue = -1;           /* GeneralName */
223 static int hf_x509ce_templateID = -1;             /* OBJECT_IDENTIFIER */
224 static int hf_x509ce_templateMajorVersion = -1;   /* INTEGER */
225 static int hf_x509ce_templateMinorVersion = -1;   /* INTEGER */
226 static int hf_x509ce_entrustVers = -1;            /* GeneralString */
227 static int hf_x509ce_entrustVersInfoFlags = -1;   /* EntrustInfoFlags */
228 /* named bits */
229 static int hf_x509ce_KeyUsage_digitalSignature = -1;
230 static int hf_x509ce_KeyUsage_contentCommitment = -1;
231 static int hf_x509ce_KeyUsage_keyEncipherment = -1;
232 static int hf_x509ce_KeyUsage_dataEncipherment = -1;
233 static int hf_x509ce_KeyUsage_keyAgreement = -1;
234 static int hf_x509ce_KeyUsage_keyCertSign = -1;
235 static int hf_x509ce_KeyUsage_cRLSign = -1;
236 static int hf_x509ce_KeyUsage_encipherOnly = -1;
237 static int hf_x509ce_KeyUsage_decipherOnly = -1;
238 static int hf_x509ce_OnlyCertificateTypes_user = -1;
239 static int hf_x509ce_OnlyCertificateTypes_authority = -1;
240 static int hf_x509ce_OnlyCertificateTypes_attribute = -1;
241 static int hf_x509ce_ReasonFlags_unused = -1;
242 static int hf_x509ce_ReasonFlags_keyCompromise = -1;
243 static int hf_x509ce_ReasonFlags_cACompromise = -1;
244 static int hf_x509ce_ReasonFlags_affiliationChanged = -1;
245 static int hf_x509ce_ReasonFlags_superseded = -1;
246 static int hf_x509ce_ReasonFlags_cessationOfOperation = -1;
247 static int hf_x509ce_ReasonFlags_certificateHold = -1;
248 static int hf_x509ce_ReasonFlags_privilegeWithdrawn = -1;
249 static int hf_x509ce_ReasonFlags_aACompromise = -1;
250 static int hf_x509ce_EntrustInfoFlags_keyUpdateAllowed = -1;
251 static int hf_x509ce_EntrustInfoFlags_newExtensions = -1;
252 static int hf_x509ce_EntrustInfoFlags_pKIXCertificate = -1;
253 static int hf_x509ce_EntrustInfoFlags_enterpriseCategory = -1;
254 static int hf_x509ce_EntrustInfoFlags_webCategory = -1;
255 static int hf_x509ce_EntrustInfoFlags_sETCategory = -1;
256
257 /*--- End of included file: packet-x509ce-hf.c ---*/
258 #line 54 "packet-x509ce-template.c"
259
260 /* Initialize the subtree pointers */
261
262 /*--- Included file: packet-x509ce-ett.c ---*/
263 #line 1 "packet-x509ce-ett.c"
264 static gint ett_x509ce_AuthorityKeyIdentifier = -1;
265 static gint ett_x509ce_KeyUsage = -1;
266 static gint ett_x509ce_KeyPurposeIDs = -1;
267 static gint ett_x509ce_PrivateKeyUsagePeriod = -1;
268 static gint ett_x509ce_CertificatePoliciesSyntax = -1;
269 static gint ett_x509ce_PolicyInformation = -1;
270 static gint ett_x509ce_SEQUENCE_SIZE_1_MAX_OF_PolicyQualifierInfo = -1;
271 static gint ett_x509ce_PolicyQualifierInfo = -1;
272 static gint ett_x509ce_PolicyMappingsSyntax = -1;
273 static gint ett_x509ce_PolicyMappingsSyntax_item = -1;
274 static gint ett_x509ce_GeneralNames = -1;
275 static gint ett_x509ce_GeneralName = -1;
276 static gint ett_x509ce_OtherName = -1;
277 static gint ett_x509ce_EDIPartyName = -1;
278 static gint ett_x509ce_AttributesSyntax = -1;
279 static gint ett_x509ce_BasicConstraintsSyntax = -1;
280 static gint ett_x509ce_NameConstraintsSyntax = -1;
281 static gint ett_x509ce_GeneralSubtrees = -1;
282 static gint ett_x509ce_GeneralSubtree = -1;
283 static gint ett_x509ce_PolicyConstraintsSyntax = -1;
284 static gint ett_x509ce_CRLScopeSyntax = -1;
285 static gint ett_x509ce_PerAuthorityScope = -1;
286 static gint ett_x509ce_OnlyCertificateTypes = -1;
287 static gint ett_x509ce_NumberRange = -1;
288 static gint ett_x509ce_BaseRevocationInfo = -1;
289 static gint ett_x509ce_StatusReferrals = -1;
290 static gint ett_x509ce_StatusReferral = -1;
291 static gint ett_x509ce_CRLReferral = -1;
292 static gint ett_x509ce_DeltaRefInfo = -1;
293 static gint ett_x509ce_DeltaInformation = -1;
294 static gint ett_x509ce_CRLDistPointsSyntax = -1;
295 static gint ett_x509ce_DistributionPoint = -1;
296 static gint ett_x509ce_DistributionPointName = -1;
297 static gint ett_x509ce_ReasonFlags = -1;
298 static gint ett_x509ce_IssuingDistPointSyntax = -1;
299 static gint ett_x509ce_ToBeRevokedSyntax = -1;
300 static gint ett_x509ce_ToBeRevokedGroup = -1;
301 static gint ett_x509ce_ReasonInfo = -1;
302 static gint ett_x509ce_CertificateGroup = -1;
303 static gint ett_x509ce_CertificateGroupNumberRange = -1;
304 static gint ett_x509ce_CertificateSerialNumbers = -1;
305 static gint ett_x509ce_RevokedGroupsSyntax = -1;
306 static gint ett_x509ce_RevokedGroup = -1;
307 static gint ett_x509ce_RevokedCertificateGroup = -1;
308 static gint ett_x509ce_AAIssuingDistPointSyntax = -1;
309 static gint ett_x509ce_CertificateExactAssertion = -1;
310 static gint ett_x509ce_CertificateAssertion = -1;
311 static gint ett_x509ce_AltNameType = -1;
312 static gint ett_x509ce_CertPolicySet = -1;
313 static gint ett_x509ce_CertificatePairExactAssertion = -1;
314 static gint ett_x509ce_CertificatePairAssertion = -1;
315 static gint ett_x509ce_CertificateListExactAssertion = -1;
316 static gint ett_x509ce_CertificateListAssertion = -1;
317 static gint ett_x509ce_PkiPathMatchSyntax = -1;
318 static gint ett_x509ce_EnhancedCertificateAssertion = -1;
319 static gint ett_x509ce_AltName = -1;
320 static gint ett_x509ce_CertificateTemplate = -1;
321 static gint ett_x509ce_EntrustVersionInfo = -1;
322 static gint ett_x509ce_EntrustInfoFlags = -1;
323
324 /*--- End of included file: packet-x509ce-ett.c ---*/
325 #line 57 "packet-x509ce-template.c"
326
327 static const char *object_identifier_id;
328
329
330 /*--- Included file: packet-x509ce-fn.c ---*/
331 #line 1 "packet-x509ce-fn.c"
332
333
334 int
335 dissect_x509ce_KeyIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
336   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
337                                        NULL);
338
339   return offset;
340 }
341
342
343
344 static int
345 dissect_x509ce_OtherNameType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
346   offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &object_identifier_id);
347
348   return offset;
349 }
350
351
352
353 static int
354 dissect_x509ce_OtherNameValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
355 #line 171 "x509ce.cnf"
356   offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
357
358
359
360   return offset;
361 }
362
363
364 static const ber_sequence_t OtherName_sequence[] = {
365   { &hf_x509ce_type_id      , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509ce_OtherNameType },
366   { &hf_x509ce_value        , BER_CLASS_CON, 0, 0, dissect_x509ce_OtherNameValue },
367   { NULL, 0, 0, 0, NULL }
368 };
369
370 static int
371 dissect_x509ce_OtherName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
372   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
373                                    OtherName_sequence, hf_index, ett_x509ce_OtherName);
374
375   return offset;
376 }
377
378
379
380 static int
381 dissect_x509ce_IA5String(gboolean 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_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
383                                             actx, tree, tvb, offset, hf_index,
384                                             NULL);
385
386   return offset;
387 }
388
389
390 static const ber_sequence_t EDIPartyName_sequence[] = {
391   { &hf_x509ce_nameAssigner , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509sat_DirectoryString },
392   { &hf_x509ce_partyName    , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x509sat_DirectoryString },
393   { NULL, 0, 0, 0, NULL }
394 };
395
396 int
397 dissect_x509ce_EDIPartyName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
398   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
399                                    EDIPartyName_sequence, hf_index, ett_x509ce_EDIPartyName);
400
401   return offset;
402 }
403
404
405
406 static int
407 dissect_x509ce_T_uniformResourceIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
408   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
409                                             actx, tree, tvb, offset, hf_index,
410                                             NULL);
411
412 #line 174 "x509ce.cnf"
413   
414         PROTO_ITEM_SET_URL(actx->created_item);
415
416
417   return offset;
418 }
419
420
421
422 static int
423 dissect_x509ce_T_iPAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
424 #line 164 "x509ce.cnf"
425         proto_tree_add_item(tree, hf_x509ce_IPAddress, tvb, offset, 4, FALSE);
426         offset+=4;
427
428
429
430   return offset;
431 }
432
433
434
435 static int
436 dissect_x509ce_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
437   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
438
439   return offset;
440 }
441
442
443 const value_string x509ce_GeneralName_vals[] = {
444   {   0, "otherName" },
445   {   1, "rfc822Name" },
446   {   2, "dNSName" },
447   {   3, "x400Address" },
448   {   4, "directoryName" },
449   {   5, "ediPartyName" },
450   {   6, "uniformResourceIdentifier" },
451   {   7, "iPAddress" },
452   {   8, "registeredID" },
453   { 0, NULL }
454 };
455
456 static const ber_choice_t GeneralName_choice[] = {
457   {   0, &hf_x509ce_otherName    , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x509ce_OtherName },
458   {   1, &hf_x509ce_rfc822Name   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x509ce_IA5String },
459   {   2, &hf_x509ce_dNSName      , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_x509ce_IA5String },
460   {   3, &hf_x509ce_x400Address  , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_x411_ORAddress },
461   {   4, &hf_x509ce_directoryName, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_x509if_Name },
462   {   5, &hf_x509ce_ediPartyName , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_x509ce_EDIPartyName },
463   {   6, &hf_x509ce_uniformResourceIdentifier, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_x509ce_T_uniformResourceIdentifier },
464   {   7, &hf_x509ce_iPAddress    , BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_x509ce_T_iPAddress },
465   {   8, &hf_x509ce_registeredID , BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_x509ce_OBJECT_IDENTIFIER },
466   { 0, NULL, 0, 0, 0, NULL }
467 };
468
469 int
470 dissect_x509ce_GeneralName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
471   offset = dissect_ber_choice(actx, tree, tvb, offset,
472                                  GeneralName_choice, hf_index, ett_x509ce_GeneralName,
473                                  NULL);
474
475   return offset;
476 }
477
478
479 static const ber_sequence_t GeneralNames_sequence_of[1] = {
480   { &hf_x509ce_GeneralNames_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_GeneralName },
481 };
482
483 int
484 dissect_x509ce_GeneralNames(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
485   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
486                                       GeneralNames_sequence_of, hf_index, ett_x509ce_GeneralNames);
487
488   return offset;
489 }
490
491
492 static const ber_sequence_t AuthorityKeyIdentifier_sequence[] = {
493   { &hf_x509ce_keyIdentifier, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_KeyIdentifier },
494   { &hf_x509ce_authorityCertIssuer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralNames },
495   { &hf_x509ce_authorityCertSerialNumber, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509af_CertificateSerialNumber },
496   { NULL, 0, 0, 0, NULL }
497 };
498
499 int
500 dissect_x509ce_AuthorityKeyIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
501   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
502                                    AuthorityKeyIdentifier_sequence, hf_index, ett_x509ce_AuthorityKeyIdentifier);
503
504   return offset;
505 }
506
507
508
509 int
510 dissect_x509ce_SubjectKeyIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
511   offset = dissect_x509ce_KeyIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
512
513   return offset;
514 }
515
516
517 static const asn_namedbit KeyUsage_bits[] = {
518   {  0, &hf_x509ce_KeyUsage_digitalSignature, -1, -1, "digitalSignature", NULL },
519   {  1, &hf_x509ce_KeyUsage_contentCommitment, -1, -1, "contentCommitment", NULL },
520   {  2, &hf_x509ce_KeyUsage_keyEncipherment, -1, -1, "keyEncipherment", NULL },
521   {  3, &hf_x509ce_KeyUsage_dataEncipherment, -1, -1, "dataEncipherment", NULL },
522   {  4, &hf_x509ce_KeyUsage_keyAgreement, -1, -1, "keyAgreement", NULL },
523   {  5, &hf_x509ce_KeyUsage_keyCertSign, -1, -1, "keyCertSign", NULL },
524   {  6, &hf_x509ce_KeyUsage_cRLSign, -1, -1, "cRLSign", NULL },
525   {  7, &hf_x509ce_KeyUsage_encipherOnly, -1, -1, "encipherOnly", NULL },
526   {  8, &hf_x509ce_KeyUsage_decipherOnly, -1, -1, "decipherOnly", NULL },
527   { 0, NULL, 0, 0, NULL, NULL }
528 };
529
530 int
531 dissect_x509ce_KeyUsage(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
532   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
533                                     KeyUsage_bits, hf_index, ett_x509ce_KeyUsage,
534                                     NULL);
535
536   return offset;
537 }
538
539
540
541 int
542 dissect_x509ce_KeyPurposeId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
543   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
544
545   return offset;
546 }
547
548
549 static const ber_sequence_t KeyPurposeIDs_sequence_of[1] = {
550   { &hf_x509ce_KeyPurposeIDs_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509ce_KeyPurposeId },
551 };
552
553 int
554 dissect_x509ce_KeyPurposeIDs(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
555   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
556                                       KeyPurposeIDs_sequence_of, hf_index, ett_x509ce_KeyPurposeIDs);
557
558   return offset;
559 }
560
561
562
563 static int
564 dissect_x509ce_GeneralizedTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
565   offset = dissect_ber_GeneralizedTime(implicit_tag, actx, tree, tvb, offset, hf_index);
566
567   return offset;
568 }
569
570
571 static const ber_sequence_t PrivateKeyUsagePeriod_sequence[] = {
572   { &hf_x509ce_notBefore    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralizedTime },
573   { &hf_x509ce_notAfter     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralizedTime },
574   { NULL, 0, 0, 0, NULL }
575 };
576
577 int
578 dissect_x509ce_PrivateKeyUsagePeriod(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
579   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
580                                    PrivateKeyUsagePeriod_sequence, hf_index, ett_x509ce_PrivateKeyUsagePeriod);
581
582   return offset;
583 }
584
585
586
587 static int
588 dissect_x509ce_CertPolicyId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
589   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
590
591   return offset;
592 }
593
594
595
596 static int
597 dissect_x509ce_T_policyQualifierId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
598   offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509ce_object_identifier_id, &object_identifier_id);
599
600   return offset;
601 }
602
603
604
605 static int
606 dissect_x509ce_T_qualifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
607 #line 161 "x509ce.cnf"
608   offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
609
610
611
612   return offset;
613 }
614
615
616 static const ber_sequence_t PolicyQualifierInfo_sequence[] = {
617   { &hf_x509ce_policyQualifierId, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509ce_T_policyQualifierId },
618   { &hf_x509ce_qualifier    , BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509ce_T_qualifier },
619   { NULL, 0, 0, 0, NULL }
620 };
621
622 int
623 dissect_x509ce_PolicyQualifierInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
624   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
625                                    PolicyQualifierInfo_sequence, hf_index, ett_x509ce_PolicyQualifierInfo);
626
627   return offset;
628 }
629
630
631 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_PolicyQualifierInfo_sequence_of[1] = {
632   { &hf_x509ce_policyQualifiers_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509ce_PolicyQualifierInfo },
633 };
634
635 static int
636 dissect_x509ce_SEQUENCE_SIZE_1_MAX_OF_PolicyQualifierInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
637   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
638                                       SEQUENCE_SIZE_1_MAX_OF_PolicyQualifierInfo_sequence_of, hf_index, ett_x509ce_SEQUENCE_SIZE_1_MAX_OF_PolicyQualifierInfo);
639
640   return offset;
641 }
642
643
644 static const ber_sequence_t PolicyInformation_sequence[] = {
645   { &hf_x509ce_policyIdentifier, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509ce_CertPolicyId },
646   { &hf_x509ce_policyQualifiers, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509ce_SEQUENCE_SIZE_1_MAX_OF_PolicyQualifierInfo },
647   { NULL, 0, 0, 0, NULL }
648 };
649
650 int
651 dissect_x509ce_PolicyInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
652   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
653                                    PolicyInformation_sequence, hf_index, ett_x509ce_PolicyInformation);
654
655   return offset;
656 }
657
658
659 static const ber_sequence_t CertificatePoliciesSyntax_sequence_of[1] = {
660   { &hf_x509ce_CertificatePoliciesSyntax_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509ce_PolicyInformation },
661 };
662
663 int
664 dissect_x509ce_CertificatePoliciesSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
665   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
666                                       CertificatePoliciesSyntax_sequence_of, hf_index, ett_x509ce_CertificatePoliciesSyntax);
667
668   return offset;
669 }
670
671
672 static const ber_sequence_t PolicyMappingsSyntax_item_sequence[] = {
673   { &hf_x509ce_issuerDomainPolicy, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509ce_CertPolicyId },
674   { &hf_x509ce_subjectDomainPolicy, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509ce_CertPolicyId },
675   { NULL, 0, 0, 0, NULL }
676 };
677
678 static int
679 dissect_x509ce_PolicyMappingsSyntax_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
680   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
681                                    PolicyMappingsSyntax_item_sequence, hf_index, ett_x509ce_PolicyMappingsSyntax_item);
682
683   return offset;
684 }
685
686
687 static const ber_sequence_t PolicyMappingsSyntax_sequence_of[1] = {
688   { &hf_x509ce_PolicyMappingsSyntax_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509ce_PolicyMappingsSyntax_item },
689 };
690
691 int
692 dissect_x509ce_PolicyMappingsSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
693   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
694                                       PolicyMappingsSyntax_sequence_of, hf_index, ett_x509ce_PolicyMappingsSyntax);
695
696   return offset;
697 }
698
699
700 static const ber_sequence_t AttributesSyntax_sequence_of[1] = {
701   { &hf_x509ce_AttributesSyntax_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_Attribute },
702 };
703
704 int
705 dissect_x509ce_AttributesSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
706   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
707                                       AttributesSyntax_sequence_of, hf_index, ett_x509ce_AttributesSyntax);
708
709   return offset;
710 }
711
712
713
714 static int
715 dissect_x509ce_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
716   offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
717
718   return offset;
719 }
720
721
722
723 static int
724 dissect_x509ce_INTEGER_0_MAX(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
725   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
726                                                 NULL);
727
728   return offset;
729 }
730
731
732 static const ber_sequence_t BasicConstraintsSyntax_sequence[] = {
733   { &hf_x509ce_cA           , BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509ce_BOOLEAN },
734   { &hf_x509ce_pathLenConstraint, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509ce_INTEGER_0_MAX },
735   { NULL, 0, 0, 0, NULL }
736 };
737
738 int
739 dissect_x509ce_BasicConstraintsSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
740   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
741                                    BasicConstraintsSyntax_sequence, hf_index, ett_x509ce_BasicConstraintsSyntax);
742
743   return offset;
744 }
745
746
747
748 int
749 dissect_x509ce_BaseDistance(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
750   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
751                                                 NULL);
752
753   return offset;
754 }
755
756
757 static const ber_sequence_t GeneralSubtree_sequence[] = {
758   { &hf_x509ce_base         , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_GeneralName },
759   { &hf_x509ce_minimum      , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_BaseDistance },
760   { &hf_x509ce_maximum      , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_BaseDistance },
761   { NULL, 0, 0, 0, NULL }
762 };
763
764 int
765 dissect_x509ce_GeneralSubtree(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
766   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
767                                    GeneralSubtree_sequence, hf_index, ett_x509ce_GeneralSubtree);
768
769   return offset;
770 }
771
772
773 static const ber_sequence_t GeneralSubtrees_sequence_of[1] = {
774   { &hf_x509ce_GeneralSubtrees_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509ce_GeneralSubtree },
775 };
776
777 int
778 dissect_x509ce_GeneralSubtrees(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
779   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
780                                       GeneralSubtrees_sequence_of, hf_index, ett_x509ce_GeneralSubtrees);
781
782   return offset;
783 }
784
785
786 static const ber_sequence_t NameConstraintsSyntax_sequence[] = {
787   { &hf_x509ce_permittedSubtrees, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralSubtrees },
788   { &hf_x509ce_excludedSubtrees, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralSubtrees },
789   { NULL, 0, 0, 0, NULL }
790 };
791
792 int
793 dissect_x509ce_NameConstraintsSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
794   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
795                                    NameConstraintsSyntax_sequence, hf_index, ett_x509ce_NameConstraintsSyntax);
796
797   return offset;
798 }
799
800
801
802 int
803 dissect_x509ce_SkipCerts(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
804   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
805                                                 NULL);
806
807   return offset;
808 }
809
810
811 static const ber_sequence_t PolicyConstraintsSyntax_sequence[] = {
812   { &hf_x509ce_requireExplicitPolicy, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_SkipCerts },
813   { &hf_x509ce_inhibitPolicyMapping, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_SkipCerts },
814   { NULL, 0, 0, 0, NULL }
815 };
816
817 int
818 dissect_x509ce_PolicyConstraintsSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
819   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
820                                    PolicyConstraintsSyntax_sequence, hf_index, ett_x509ce_PolicyConstraintsSyntax);
821
822   return offset;
823 }
824
825
826
827 int
828 dissect_x509ce_CRLNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
829   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
830                                                 NULL);
831
832   return offset;
833 }
834
835
836 const value_string x509ce_CRLReason_vals[] = {
837   {   0, "unspecified" },
838   {   1, "keyCompromise" },
839   {   2, "cACompromise" },
840   {   3, "affiliationChanged" },
841   {   4, "superseded" },
842   {   5, "cessationOfOperation" },
843   {   6, "certificateHold" },
844   {   8, "removeFromCRL" },
845   {   9, "privilegeWithdrawn" },
846   {  10, "aaCompromise" },
847   { 0, NULL }
848 };
849
850
851 int
852 dissect_x509ce_CRLReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
853   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
854                                   NULL);
855
856   return offset;
857 }
858
859
860
861 int
862 dissect_x509ce_HoldInstruction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
863   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
864
865   return offset;
866 }
867
868
869 const value_string x509ce_DistributionPointName_vals[] = {
870   {   0, "fullName" },
871   {   1, "nameRelativeToCRLIssuer" },
872   { 0, NULL }
873 };
874
875 static const ber_choice_t DistributionPointName_choice[] = {
876   {   0, &hf_x509ce_fullName     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralNames },
877   {   1, &hf_x509ce_nameRelativeToCRLIssuer, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x509if_RelativeDistinguishedName },
878   { 0, NULL, 0, 0, 0, NULL }
879 };
880
881 int
882 dissect_x509ce_DistributionPointName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
883   offset = dissect_ber_choice(actx, tree, tvb, offset,
884                                  DistributionPointName_choice, hf_index, ett_x509ce_DistributionPointName,
885                                  NULL);
886
887   return offset;
888 }
889
890
891 static const asn_namedbit OnlyCertificateTypes_bits[] = {
892   {  0, &hf_x509ce_OnlyCertificateTypes_user, -1, -1, "user", NULL },
893   {  1, &hf_x509ce_OnlyCertificateTypes_authority, -1, -1, "authority", NULL },
894   {  2, &hf_x509ce_OnlyCertificateTypes_attribute, -1, -1, "attribute", NULL },
895   { 0, NULL, 0, 0, NULL, NULL }
896 };
897
898 int
899 dissect_x509ce_OnlyCertificateTypes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
900   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
901                                     OnlyCertificateTypes_bits, hf_index, ett_x509ce_OnlyCertificateTypes,
902                                     NULL);
903
904   return offset;
905 }
906
907
908 static const asn_namedbit ReasonFlags_bits[] = {
909   {  0, &hf_x509ce_ReasonFlags_unused, -1, -1, "unused", NULL },
910   {  1, &hf_x509ce_ReasonFlags_keyCompromise, -1, -1, "keyCompromise", NULL },
911   {  2, &hf_x509ce_ReasonFlags_cACompromise, -1, -1, "cACompromise", NULL },
912   {  3, &hf_x509ce_ReasonFlags_affiliationChanged, -1, -1, "affiliationChanged", NULL },
913   {  4, &hf_x509ce_ReasonFlags_superseded, -1, -1, "superseded", NULL },
914   {  5, &hf_x509ce_ReasonFlags_cessationOfOperation, -1, -1, "cessationOfOperation", NULL },
915   {  6, &hf_x509ce_ReasonFlags_certificateHold, -1, -1, "certificateHold", NULL },
916   {  7, &hf_x509ce_ReasonFlags_privilegeWithdrawn, -1, -1, "privilegeWithdrawn", NULL },
917   {  8, &hf_x509ce_ReasonFlags_aACompromise, -1, -1, "aACompromise", NULL },
918   { 0, NULL, 0, 0, NULL, NULL }
919 };
920
921 int
922 dissect_x509ce_ReasonFlags(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
923   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
924                                     ReasonFlags_bits, hf_index, ett_x509ce_ReasonFlags,
925                                     NULL);
926
927   return offset;
928 }
929
930
931
932 static int
933 dissect_x509ce_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
934   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
935                                                 NULL);
936
937   return offset;
938 }
939
940
941 static const ber_sequence_t NumberRange_sequence[] = {
942   { &hf_x509ce_startingNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_INTEGER },
943   { &hf_x509ce_endingNumber , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_INTEGER },
944   { &hf_x509ce_modulus      , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509ce_INTEGER },
945   { NULL, 0, 0, 0, NULL }
946 };
947
948 int
949 dissect_x509ce_NumberRange(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
950   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
951                                    NumberRange_sequence, hf_index, ett_x509ce_NumberRange);
952
953   return offset;
954 }
955
956
957
958 int
959 dissect_x509ce_CRLStreamIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
960   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
961                                                 NULL);
962
963   return offset;
964 }
965
966
967 static const ber_sequence_t BaseRevocationInfo_sequence[] = {
968   { &hf_x509ce_cRLStreamIdentifier, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CRLStreamIdentifier },
969   { &hf_x509ce_cRLNumber    , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x509ce_CRLNumber },
970   { &hf_x509ce_baseThisUpdate, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralizedTime },
971   { NULL, 0, 0, 0, NULL }
972 };
973
974 int
975 dissect_x509ce_BaseRevocationInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
976   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
977                                    BaseRevocationInfo_sequence, hf_index, ett_x509ce_BaseRevocationInfo);
978
979   return offset;
980 }
981
982
983 static const ber_sequence_t PerAuthorityScope_sequence[] = {
984   { &hf_x509ce_authorityName, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_GeneralName },
985   { &hf_x509ce_distributionPoint, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_DistributionPointName },
986   { &hf_x509ce_onlyContains , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_OnlyCertificateTypes },
987   { &hf_x509ce_onlySomeReasons, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_ReasonFlags },
988   { &hf_x509ce_serialNumberRange, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_NumberRange },
989   { &hf_x509ce_subjectKeyIdRange, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_NumberRange },
990   { &hf_x509ce_nameSubtrees , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralNames },
991   { &hf_x509ce_baseRevocationInfo, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_BaseRevocationInfo },
992   { NULL, 0, 0, 0, NULL }
993 };
994
995 int
996 dissect_x509ce_PerAuthorityScope(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
997   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
998                                    PerAuthorityScope_sequence, hf_index, ett_x509ce_PerAuthorityScope);
999
1000   return offset;
1001 }
1002
1003
1004 static const ber_sequence_t CRLScopeSyntax_sequence_of[1] = {
1005   { &hf_x509ce_CRLScopeSyntax_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509ce_PerAuthorityScope },
1006 };
1007
1008 int
1009 dissect_x509ce_CRLScopeSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1010   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1011                                       CRLScopeSyntax_sequence_of, hf_index, ett_x509ce_CRLScopeSyntax);
1012
1013   return offset;
1014 }
1015
1016
1017 static const ber_sequence_t DeltaRefInfo_sequence[] = {
1018   { &hf_x509ce_deltaLocation, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_GeneralName },
1019   { &hf_x509ce_lastDelta    , BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509ce_GeneralizedTime },
1020   { NULL, 0, 0, 0, NULL }
1021 };
1022
1023 int
1024 dissect_x509ce_DeltaRefInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1025   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1026                                    DeltaRefInfo_sequence, hf_index, ett_x509ce_DeltaRefInfo);
1027
1028   return offset;
1029 }
1030
1031
1032 static const ber_sequence_t CRLReferral_sequence[] = {
1033   { &hf_x509ce_crlr_issuer  , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_GeneralName },
1034   { &hf_x509ce_location     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_GeneralName },
1035   { &hf_x509ce_deltaRefInfo , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_DeltaRefInfo },
1036   { &hf_x509ce_cRLScope     , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509ce_CRLScopeSyntax },
1037   { &hf_x509ce_lastUpdate   , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralizedTime },
1038   { &hf_x509ce_lastChangedCRL, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralizedTime },
1039   { NULL, 0, 0, 0, NULL }
1040 };
1041
1042 int
1043 dissect_x509ce_CRLReferral(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1044   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1045                                    CRLReferral_sequence, hf_index, ett_x509ce_CRLReferral);
1046
1047   return offset;
1048 }
1049
1050
1051 const value_string x509ce_StatusReferral_vals[] = {
1052   {   0, "cRLReferral" },
1053   { 0, NULL }
1054 };
1055
1056 static const ber_choice_t StatusReferral_choice[] = {
1057   {   0, &hf_x509ce_cRLReferral  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x509ce_CRLReferral },
1058   { 0, NULL, 0, 0, 0, NULL }
1059 };
1060
1061 int
1062 dissect_x509ce_StatusReferral(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1063   offset = dissect_ber_choice(actx, tree, tvb, offset,
1064                                  StatusReferral_choice, hf_index, ett_x509ce_StatusReferral,
1065                                  NULL);
1066
1067   return offset;
1068 }
1069
1070
1071 static const ber_sequence_t StatusReferrals_sequence_of[1] = {
1072   { &hf_x509ce_StatusReferrals_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_StatusReferral },
1073 };
1074
1075 int
1076 dissect_x509ce_StatusReferrals(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1077   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1078                                       StatusReferrals_sequence_of, hf_index, ett_x509ce_StatusReferrals);
1079
1080   return offset;
1081 }
1082
1083
1084 const value_string x509ce_OrderedListSyntax_vals[] = {
1085   {   0, "ascSerialNum" },
1086   {   1, "ascRevDate" },
1087   { 0, NULL }
1088 };
1089
1090
1091 int
1092 dissect_x509ce_OrderedListSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1093   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1094                                   NULL);
1095
1096   return offset;
1097 }
1098
1099
1100 static const ber_sequence_t DeltaInformation_sequence[] = {
1101   { &hf_x509ce_deltaLocation, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_GeneralName },
1102   { &hf_x509ce_nextDelta    , BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509ce_GeneralizedTime },
1103   { NULL, 0, 0, 0, NULL }
1104 };
1105
1106 int
1107 dissect_x509ce_DeltaInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1108   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1109                                    DeltaInformation_sequence, hf_index, ett_x509ce_DeltaInformation);
1110
1111   return offset;
1112 }
1113
1114
1115 static const ber_sequence_t DistributionPoint_sequence[] = {
1116   { &hf_x509ce_distributionPoint, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_DistributionPointName },
1117   { &hf_x509ce_reasons      , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_ReasonFlags },
1118   { &hf_x509ce_cRLIssuer    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralNames },
1119   { NULL, 0, 0, 0, NULL }
1120 };
1121
1122 int
1123 dissect_x509ce_DistributionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1124   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1125                                    DistributionPoint_sequence, hf_index, ett_x509ce_DistributionPoint);
1126
1127   return offset;
1128 }
1129
1130
1131 static const ber_sequence_t CRLDistPointsSyntax_sequence_of[1] = {
1132   { &hf_x509ce_CRLDistPointsSyntax_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509ce_DistributionPoint },
1133 };
1134
1135 int
1136 dissect_x509ce_CRLDistPointsSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1137   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1138                                       CRLDistPointsSyntax_sequence_of, hf_index, ett_x509ce_CRLDistPointsSyntax);
1139
1140   return offset;
1141 }
1142
1143
1144 static const ber_sequence_t IssuingDistPointSyntax_sequence[] = {
1145   { &hf_x509ce_distributionPoint, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_DistributionPointName },
1146   { &hf_x509ce_onlyContainsUserPublicKeyCerts, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_BOOLEAN },
1147   { &hf_x509ce_onlyContainsCACerts, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_BOOLEAN },
1148   { &hf_x509ce_onlySomeReasons, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_ReasonFlags },
1149   { &hf_x509ce_indirectCRL  , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_BOOLEAN },
1150   { NULL, 0, 0, 0, NULL }
1151 };
1152
1153 int
1154 dissect_x509ce_IssuingDistPointSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1155   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1156                                    IssuingDistPointSyntax_sequence, hf_index, ett_x509ce_IssuingDistPointSyntax);
1157
1158   return offset;
1159 }
1160
1161
1162
1163 int
1164 dissect_x509ce_BaseCRLNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1165   offset = dissect_x509ce_CRLNumber(implicit_tag, tvb, offset, actx, tree, hf_index);
1166
1167   return offset;
1168 }
1169
1170
1171 static const ber_sequence_t ReasonInfo_sequence[] = {
1172   { &hf_x509ce_reasonCode   , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_x509ce_CRLReason },
1173   { &hf_x509ce_holdInstructionCode, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509ce_HoldInstruction },
1174   { NULL, 0, 0, 0, NULL }
1175 };
1176
1177 static int
1178 dissect_x509ce_ReasonInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1179   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1180                                    ReasonInfo_sequence, hf_index, ett_x509ce_ReasonInfo);
1181
1182   return offset;
1183 }
1184
1185
1186 static const ber_sequence_t CertificateSerialNumbers_sequence_of[1] = {
1187   { &hf_x509ce_CertificateSerialNumbers_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x509af_CertificateSerialNumber },
1188 };
1189
1190 static int
1191 dissect_x509ce_CertificateSerialNumbers(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1192   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1193                                       CertificateSerialNumbers_sequence_of, hf_index, ett_x509ce_CertificateSerialNumbers);
1194
1195   return offset;
1196 }
1197
1198
1199 static const ber_sequence_t CertificateGroupNumberRange_sequence[] = {
1200   { &hf_x509ce_startingNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x509ce_INTEGER },
1201   { &hf_x509ce_endingNumber , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x509ce_INTEGER },
1202   { NULL, 0, 0, 0, NULL }
1203 };
1204
1205 static int
1206 dissect_x509ce_CertificateGroupNumberRange(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1207   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1208                                    CertificateGroupNumberRange_sequence, hf_index, ett_x509ce_CertificateGroupNumberRange);
1209
1210   return offset;
1211 }
1212
1213
1214 static const value_string x509ce_CertificateGroup_vals[] = {
1215   {   0, "serialNumbers" },
1216   {   1, "serialNumberRange" },
1217   {   2, "nameSubtree" },
1218   { 0, NULL }
1219 };
1220
1221 static const ber_choice_t CertificateGroup_choice[] = {
1222   {   0, &hf_x509ce_serialNumbers, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateSerialNumbers },
1223   {   1, &hf_x509ce_serialNumberRange_01, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateGroupNumberRange },
1224   {   2, &hf_x509ce_nameSubtree  , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralName },
1225   { 0, NULL, 0, 0, 0, NULL }
1226 };
1227
1228 static int
1229 dissect_x509ce_CertificateGroup(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1230   offset = dissect_ber_choice(actx, tree, tvb, offset,
1231                                  CertificateGroup_choice, hf_index, ett_x509ce_CertificateGroup,
1232                                  NULL);
1233
1234   return offset;
1235 }
1236
1237
1238 static const ber_sequence_t ToBeRevokedGroup_sequence[] = {
1239   { &hf_x509ce_certificateIssuer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_GeneralName },
1240   { &hf_x509ce_reasonInfo   , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_ReasonInfo },
1241   { &hf_x509ce_revocationTime, BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_x509ce_GeneralizedTime },
1242   { &hf_x509ce_certificateGroup, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_CertificateGroup },
1243   { NULL, 0, 0, 0, NULL }
1244 };
1245
1246 static int
1247 dissect_x509ce_ToBeRevokedGroup(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1248   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1249                                    ToBeRevokedGroup_sequence, hf_index, ett_x509ce_ToBeRevokedGroup);
1250
1251   return offset;
1252 }
1253
1254
1255 static const ber_sequence_t ToBeRevokedSyntax_sequence_of[1] = {
1256   { &hf_x509ce_ToBeRevokedSyntax_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509ce_ToBeRevokedGroup },
1257 };
1258
1259 static int
1260 dissect_x509ce_ToBeRevokedSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1261   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1262                                       ToBeRevokedSyntax_sequence_of, hf_index, ett_x509ce_ToBeRevokedSyntax);
1263
1264   return offset;
1265 }
1266
1267
1268 static const value_string x509ce_RevokedCertificateGroup_vals[] = {
1269   {   0, "serialNumberRange" },
1270   {   1, "nameSubtree" },
1271   { 0, NULL }
1272 };
1273
1274 static const ber_choice_t RevokedCertificateGroup_choice[] = {
1275   {   0, &hf_x509ce_serialNumberRange, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509ce_NumberRange },
1276   {   1, &hf_x509ce_nameSubtree  , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_x509ce_GeneralName },
1277   { 0, NULL, 0, 0, 0, NULL }
1278 };
1279
1280 static int
1281 dissect_x509ce_RevokedCertificateGroup(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1282   offset = dissect_ber_choice(actx, tree, tvb, offset,
1283                                  RevokedCertificateGroup_choice, hf_index, ett_x509ce_RevokedCertificateGroup,
1284                                  NULL);
1285
1286   return offset;
1287 }
1288
1289
1290 static const ber_sequence_t RevokedGroup_sequence[] = {
1291   { &hf_x509ce_certificateIssuer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_GeneralName },
1292   { &hf_x509ce_reasonInfo   , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_ReasonInfo },
1293   { &hf_x509ce_invalidityDate, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralizedTime },
1294   { &hf_x509ce_revokedcertificateGroup, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_RevokedCertificateGroup },
1295   { NULL, 0, 0, 0, NULL }
1296 };
1297
1298 static int
1299 dissect_x509ce_RevokedGroup(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1300   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1301                                    RevokedGroup_sequence, hf_index, ett_x509ce_RevokedGroup);
1302
1303   return offset;
1304 }
1305
1306
1307 static const ber_sequence_t RevokedGroupsSyntax_sequence_of[1] = {
1308   { &hf_x509ce_RevokedGroupsSyntax_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509ce_RevokedGroup },
1309 };
1310
1311 static int
1312 dissect_x509ce_RevokedGroupsSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1313   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1314                                       RevokedGroupsSyntax_sequence_of, hf_index, ett_x509ce_RevokedGroupsSyntax);
1315
1316   return offset;
1317 }
1318
1319
1320
1321 static int
1322 dissect_x509ce_ExpiredCertsOnCRL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1323   offset = dissect_ber_GeneralizedTime(implicit_tag, actx, tree, tvb, offset, hf_index);
1324
1325   return offset;
1326 }
1327
1328
1329 static const ber_sequence_t AAIssuingDistPointSyntax_sequence[] = {
1330   { &hf_x509ce_distributionPoint, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_DistributionPointName },
1331   { &hf_x509ce_onlySomeReasons, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_ReasonFlags },
1332   { &hf_x509ce_indirectCRL  , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_BOOLEAN },
1333   { &hf_x509ce_containsUserAttributeCerts, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_BOOLEAN },
1334   { &hf_x509ce_containsAACerts, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_BOOLEAN },
1335   { &hf_x509ce_containsSOAPublicKeyCerts, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_BOOLEAN },
1336   { NULL, 0, 0, 0, NULL }
1337 };
1338
1339 static int
1340 dissect_x509ce_AAIssuingDistPointSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1341   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1342                                    AAIssuingDistPointSyntax_sequence, hf_index, ett_x509ce_AAIssuingDistPointSyntax);
1343
1344   return offset;
1345 }
1346
1347
1348 static const ber_sequence_t CertificateExactAssertion_sequence[] = {
1349   { &hf_x509ce_serialNumber , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x509af_CertificateSerialNumber },
1350   { &hf_x509ce_issuer       , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_x509if_Name },
1351   { NULL, 0, 0, 0, NULL }
1352 };
1353
1354 int
1355 dissect_x509ce_CertificateExactAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1356   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1357                                    CertificateExactAssertion_sequence, hf_index, ett_x509ce_CertificateExactAssertion);
1358
1359   return offset;
1360 }
1361
1362
1363 static const value_string x509ce_T_builtinNameForm_vals[] = {
1364   {   1, "rfc822Name" },
1365   {   2, "dNSName" },
1366   {   3, "x400Address" },
1367   {   4, "directoryName" },
1368   {   5, "ediPartyName" },
1369   {   6, "uniformResourceIdentifier" },
1370   {   7, "iPAddress" },
1371   {   8, "registeredId" },
1372   { 0, NULL }
1373 };
1374
1375
1376 static int
1377 dissect_x509ce_T_builtinNameForm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1378   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1379                                   NULL);
1380
1381   return offset;
1382 }
1383
1384
1385 const value_string x509ce_AltNameType_vals[] = {
1386   {   0, "builtinNameForm" },
1387   {   1, "otherNameForm" },
1388   { 0, NULL }
1389 };
1390
1391 static const ber_choice_t AltNameType_choice[] = {
1392   {   0, &hf_x509ce_builtinNameForm, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_x509ce_T_builtinNameForm },
1393   {   1, &hf_x509ce_otherNameForm, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509ce_OBJECT_IDENTIFIER },
1394   { 0, NULL, 0, 0, 0, NULL }
1395 };
1396
1397 int
1398 dissect_x509ce_AltNameType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1399   offset = dissect_ber_choice(actx, tree, tvb, offset,
1400                                  AltNameType_choice, hf_index, ett_x509ce_AltNameType,
1401                                  NULL);
1402
1403   return offset;
1404 }
1405
1406
1407 static const ber_sequence_t CertPolicySet_sequence_of[1] = {
1408   { &hf_x509ce_CertPolicySet_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509ce_CertPolicyId },
1409 };
1410
1411 int
1412 dissect_x509ce_CertPolicySet(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1413   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1414                                       CertPolicySet_sequence_of, hf_index, ett_x509ce_CertPolicySet);
1415
1416   return offset;
1417 }
1418
1419
1420 static const ber_sequence_t CertificateAssertion_sequence[] = {
1421   { &hf_x509ce_serialNumber , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509af_CertificateSerialNumber },
1422   { &hf_x509ce_issuer       , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509if_Name },
1423   { &hf_x509ce_subjectKeyIdentifier, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_SubjectKeyIdentifier },
1424   { &hf_x509ce_authorityKeyIdentifier, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_AuthorityKeyIdentifier },
1425   { &hf_x509ce_certificateValid, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509af_Time },
1426   { &hf_x509ce_privateKeyValid, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralizedTime },
1427   { &hf_x509ce_subjectPublicKeyAlgID, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_OBJECT_IDENTIFIER },
1428   { &hf_x509ce_keyUsage     , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_KeyUsage },
1429   { &hf_x509ce_subjectAltName, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_AltNameType },
1430   { &hf_x509ce_policy       , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertPolicySet },
1431   { &hf_x509ce_pathToName   , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509if_Name },
1432   { &hf_x509ce_subject      , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509if_Name },
1433   { &hf_x509ce_nameConstraints, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_NameConstraintsSyntax },
1434   { NULL, 0, 0, 0, NULL }
1435 };
1436
1437 int
1438 dissect_x509ce_CertificateAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1439   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1440                                    CertificateAssertion_sequence, hf_index, ett_x509ce_CertificateAssertion);
1441
1442   return offset;
1443 }
1444
1445
1446 static const ber_sequence_t CertificatePairExactAssertion_sequence[] = {
1447   { &hf_x509ce_cpea_issuedToThisCAAssertion, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateExactAssertion },
1448   { &hf_x509ce_cpea_issuedByThisCAAssertion, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateExactAssertion },
1449   { NULL, 0, 0, 0, NULL }
1450 };
1451
1452 int
1453 dissect_x509ce_CertificatePairExactAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1454   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1455                                    CertificatePairExactAssertion_sequence, hf_index, ett_x509ce_CertificatePairExactAssertion);
1456
1457   return offset;
1458 }
1459
1460
1461 static const ber_sequence_t CertificatePairAssertion_sequence[] = {
1462   { &hf_x509ce_issuedToThisCAAssertion, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateAssertion },
1463   { &hf_x509ce_issuedByThisCAAssertion, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateAssertion },
1464   { NULL, 0, 0, 0, NULL }
1465 };
1466
1467 int
1468 dissect_x509ce_CertificatePairAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1469   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1470                                    CertificatePairAssertion_sequence, hf_index, ett_x509ce_CertificatePairAssertion);
1471
1472   return offset;
1473 }
1474
1475
1476 static const ber_sequence_t CertificateListExactAssertion_sequence[] = {
1477   { &hf_x509ce_issuer       , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_x509if_Name },
1478   { &hf_x509ce_thisUpdate   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_x509af_Time },
1479   { &hf_x509ce_distributionPoint, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_DistributionPointName },
1480   { NULL, 0, 0, 0, NULL }
1481 };
1482
1483 int
1484 dissect_x509ce_CertificateListExactAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1485   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1486                                    CertificateListExactAssertion_sequence, hf_index, ett_x509ce_CertificateListExactAssertion);
1487
1488   return offset;
1489 }
1490
1491
1492 static const ber_sequence_t CertificateListAssertion_sequence[] = {
1493   { &hf_x509ce_issuer       , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_Name },
1494   { &hf_x509ce_minCRLNumber , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CRLNumber },
1495   { &hf_x509ce_maxCRLNumber , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CRLNumber },
1496   { &hf_x509ce_reasonFlags  , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509ce_ReasonFlags },
1497   { &hf_x509ce_dateAndTime  , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509af_Time },
1498   { &hf_x509ce_distributionPoint, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_DistributionPointName },
1499   { &hf_x509ce_authorityKeyIdentifier, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_AuthorityKeyIdentifier },
1500   { NULL, 0, 0, 0, NULL }
1501 };
1502
1503 int
1504 dissect_x509ce_CertificateListAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1505   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1506                                    CertificateListAssertion_sequence, hf_index, ett_x509ce_CertificateListAssertion);
1507
1508   return offset;
1509 }
1510
1511
1512 static const ber_sequence_t PkiPathMatchSyntax_sequence[] = {
1513   { &hf_x509ce_firstIssuer  , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_x509if_Name },
1514   { &hf_x509ce_lastSubject  , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_x509if_Name },
1515   { NULL, 0, 0, 0, NULL }
1516 };
1517
1518 int
1519 dissect_x509ce_PkiPathMatchSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1520   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1521                                    PkiPathMatchSyntax_sequence, hf_index, ett_x509ce_PkiPathMatchSyntax);
1522
1523   return offset;
1524 }
1525
1526
1527 static const ber_sequence_t AltName_sequence[] = {
1528   { &hf_x509ce_altnameType  , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_AltNameType },
1529   { &hf_x509ce_altNameValue , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509ce_GeneralName },
1530   { NULL, 0, 0, 0, NULL }
1531 };
1532
1533 static int
1534 dissect_x509ce_AltName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1535   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1536                                    AltName_sequence, hf_index, ett_x509ce_AltName);
1537
1538   return offset;
1539 }
1540
1541
1542 static const ber_sequence_t EnhancedCertificateAssertion_sequence[] = {
1543   { &hf_x509ce_serialNumber , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509af_CertificateSerialNumber },
1544   { &hf_x509ce_issuer       , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509if_Name },
1545   { &hf_x509ce_subjectKeyIdentifier, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_SubjectKeyIdentifier },
1546   { &hf_x509ce_authorityKeyIdentifier, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_AuthorityKeyIdentifier },
1547   { &hf_x509ce_certificateValid, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509af_Time },
1548   { &hf_x509ce_privateKeyValid, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralizedTime },
1549   { &hf_x509ce_subjectPublicKeyAlgID, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_OBJECT_IDENTIFIER },
1550   { &hf_x509ce_keyUsage     , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_KeyUsage },
1551   { &hf_x509ce_subjectAltName_01, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_AltName },
1552   { &hf_x509ce_policy       , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertPolicySet },
1553   { &hf_x509ce_pathToName_01, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_GeneralNames },
1554   { &hf_x509ce_subject      , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509if_Name },
1555   { &hf_x509ce_nameConstraints, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_NameConstraintsSyntax },
1556   { NULL, 0, 0, 0, NULL }
1557 };
1558
1559 static int
1560 dissect_x509ce_EnhancedCertificateAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1561   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1562                                    EnhancedCertificateAssertion_sequence, hf_index, ett_x509ce_EnhancedCertificateAssertion);
1563
1564   return offset;
1565 }
1566
1567
1568 static const ber_sequence_t CertificateTemplate_sequence[] = {
1569   { &hf_x509ce_templateID   , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509ce_OBJECT_IDENTIFIER },
1570   { &hf_x509ce_templateMajorVersion, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x509ce_INTEGER },
1571   { &hf_x509ce_templateMinorVersion, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509ce_INTEGER },
1572   { NULL, 0, 0, 0, NULL }
1573 };
1574
1575 static int
1576 dissect_x509ce_CertificateTemplate(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1577   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1578                                    CertificateTemplate_sequence, hf_index, ett_x509ce_CertificateTemplate);
1579
1580   return offset;
1581 }
1582
1583
1584
1585 static int
1586 dissect_x509ce_GeneralString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1587   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GeneralString,
1588                                             actx, tree, tvb, offset, hf_index,
1589                                             NULL);
1590
1591   return offset;
1592 }
1593
1594
1595 static const asn_namedbit EntrustInfoFlags_bits[] = {
1596   {  0, &hf_x509ce_EntrustInfoFlags_keyUpdateAllowed, -1, -1, "keyUpdateAllowed", NULL },
1597   {  1, &hf_x509ce_EntrustInfoFlags_newExtensions, -1, -1, "newExtensions", NULL },
1598   {  2, &hf_x509ce_EntrustInfoFlags_pKIXCertificate, -1, -1, "pKIXCertificate", NULL },
1599   {  3, &hf_x509ce_EntrustInfoFlags_enterpriseCategory, -1, -1, "enterpriseCategory", NULL },
1600   {  4, &hf_x509ce_EntrustInfoFlags_webCategory, -1, -1, "webCategory", NULL },
1601   {  5, &hf_x509ce_EntrustInfoFlags_sETCategory, -1, -1, "sETCategory", NULL },
1602   { 0, NULL, 0, 0, NULL, NULL }
1603 };
1604
1605 static int
1606 dissect_x509ce_EntrustInfoFlags(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1607   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
1608                                     EntrustInfoFlags_bits, hf_index, ett_x509ce_EntrustInfoFlags,
1609                                     NULL);
1610
1611   return offset;
1612 }
1613
1614
1615 static const ber_sequence_t EntrustVersionInfo_sequence[] = {
1616   { &hf_x509ce_entrustVers  , BER_CLASS_UNI, BER_UNI_TAG_GeneralString, BER_FLAGS_NOOWNTAG, dissect_x509ce_GeneralString },
1617   { &hf_x509ce_entrustVersInfoFlags, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509ce_EntrustInfoFlags },
1618   { NULL, 0, 0, 0, NULL }
1619 };
1620
1621 static int
1622 dissect_x509ce_EntrustVersionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1623   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1624                                    EntrustVersionInfo_sequence, hf_index, ett_x509ce_EntrustVersionInfo);
1625
1626   return offset;
1627 }
1628
1629 /*--- PDUs ---*/
1630
1631 static void dissect_AuthorityKeyIdentifier_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1632   asn1_ctx_t asn1_ctx;
1633   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1634   dissect_x509ce_AuthorityKeyIdentifier(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_AuthorityKeyIdentifier_PDU);
1635 }
1636 static void dissect_SubjectKeyIdentifier_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1637   asn1_ctx_t asn1_ctx;
1638   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1639   dissect_x509ce_SubjectKeyIdentifier(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_SubjectKeyIdentifier_PDU);
1640 }
1641 static void dissect_KeyUsage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1642   asn1_ctx_t asn1_ctx;
1643   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1644   dissect_x509ce_KeyUsage(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_KeyUsage_PDU);
1645 }
1646 static void dissect_KeyPurposeIDs_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1647   asn1_ctx_t asn1_ctx;
1648   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1649   dissect_x509ce_KeyPurposeIDs(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_KeyPurposeIDs_PDU);
1650 }
1651 static void dissect_PrivateKeyUsagePeriod_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1652   asn1_ctx_t asn1_ctx;
1653   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1654   dissect_x509ce_PrivateKeyUsagePeriod(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_PrivateKeyUsagePeriod_PDU);
1655 }
1656 static void dissect_CertificatePoliciesSyntax_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1657   asn1_ctx_t asn1_ctx;
1658   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1659   dissect_x509ce_CertificatePoliciesSyntax(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_CertificatePoliciesSyntax_PDU);
1660 }
1661 static void dissect_PolicyMappingsSyntax_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1662   asn1_ctx_t asn1_ctx;
1663   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1664   dissect_x509ce_PolicyMappingsSyntax(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_PolicyMappingsSyntax_PDU);
1665 }
1666 static void dissect_GeneralNames_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1667   asn1_ctx_t asn1_ctx;
1668   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1669   dissect_x509ce_GeneralNames(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_GeneralNames_PDU);
1670 }
1671 static void dissect_AttributesSyntax_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1672   asn1_ctx_t asn1_ctx;
1673   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1674   dissect_x509ce_AttributesSyntax(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_AttributesSyntax_PDU);
1675 }
1676 static void dissect_BasicConstraintsSyntax_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1677   asn1_ctx_t asn1_ctx;
1678   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1679   dissect_x509ce_BasicConstraintsSyntax(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_BasicConstraintsSyntax_PDU);
1680 }
1681 static void dissect_NameConstraintsSyntax_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1682   asn1_ctx_t asn1_ctx;
1683   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1684   dissect_x509ce_NameConstraintsSyntax(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_NameConstraintsSyntax_PDU);
1685 }
1686 static void dissect_PolicyConstraintsSyntax_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1687   asn1_ctx_t asn1_ctx;
1688   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1689   dissect_x509ce_PolicyConstraintsSyntax(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_PolicyConstraintsSyntax_PDU);
1690 }
1691 static void dissect_SkipCerts_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1692   asn1_ctx_t asn1_ctx;
1693   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1694   dissect_x509ce_SkipCerts(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_SkipCerts_PDU);
1695 }
1696 static void dissect_CRLNumber_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1697   asn1_ctx_t asn1_ctx;
1698   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1699   dissect_x509ce_CRLNumber(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_CRLNumber_PDU);
1700 }
1701 static void dissect_CRLReason_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1702   asn1_ctx_t asn1_ctx;
1703   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1704   dissect_x509ce_CRLReason(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_CRLReason_PDU);
1705 }
1706 static void dissect_HoldInstruction_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1707   asn1_ctx_t asn1_ctx;
1708   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1709   dissect_x509ce_HoldInstruction(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_HoldInstruction_PDU);
1710 }
1711 static void dissect_CRLScopeSyntax_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1712   asn1_ctx_t asn1_ctx;
1713   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1714   dissect_x509ce_CRLScopeSyntax(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_CRLScopeSyntax_PDU);
1715 }
1716 static void dissect_StatusReferrals_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1717   asn1_ctx_t asn1_ctx;
1718   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1719   dissect_x509ce_StatusReferrals(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_StatusReferrals_PDU);
1720 }
1721 static void dissect_CRLStreamIdentifier_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1722   asn1_ctx_t asn1_ctx;
1723   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1724   dissect_x509ce_CRLStreamIdentifier(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_CRLStreamIdentifier_PDU);
1725 }
1726 static void dissect_OrderedListSyntax_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1727   asn1_ctx_t asn1_ctx;
1728   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1729   dissect_x509ce_OrderedListSyntax(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_OrderedListSyntax_PDU);
1730 }
1731 static void dissect_DeltaInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1732   asn1_ctx_t asn1_ctx;
1733   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1734   dissect_x509ce_DeltaInformation(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_DeltaInformation_PDU);
1735 }
1736 static void dissect_CRLDistPointsSyntax_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1737   asn1_ctx_t asn1_ctx;
1738   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1739   dissect_x509ce_CRLDistPointsSyntax(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_CRLDistPointsSyntax_PDU);
1740 }
1741 static void dissect_IssuingDistPointSyntax_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1742   asn1_ctx_t asn1_ctx;
1743   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1744   dissect_x509ce_IssuingDistPointSyntax(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_IssuingDistPointSyntax_PDU);
1745 }
1746 static void dissect_BaseCRLNumber_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1747   asn1_ctx_t asn1_ctx;
1748   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1749   dissect_x509ce_BaseCRLNumber(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_BaseCRLNumber_PDU);
1750 }
1751 static void dissect_ToBeRevokedSyntax_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1752   asn1_ctx_t asn1_ctx;
1753   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1754   dissect_x509ce_ToBeRevokedSyntax(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_ToBeRevokedSyntax_PDU);
1755 }
1756 static void dissect_RevokedGroupsSyntax_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1757   asn1_ctx_t asn1_ctx;
1758   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1759   dissect_x509ce_RevokedGroupsSyntax(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_RevokedGroupsSyntax_PDU);
1760 }
1761 static void dissect_ExpiredCertsOnCRL_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1762   asn1_ctx_t asn1_ctx;
1763   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1764   dissect_x509ce_ExpiredCertsOnCRL(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_ExpiredCertsOnCRL_PDU);
1765 }
1766 static void dissect_AAIssuingDistPointSyntax_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1767   asn1_ctx_t asn1_ctx;
1768   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1769   dissect_x509ce_AAIssuingDistPointSyntax(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_AAIssuingDistPointSyntax_PDU);
1770 }
1771 static void dissect_CertificateAssertion_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1772   asn1_ctx_t asn1_ctx;
1773   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1774   dissect_x509ce_CertificateAssertion(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_CertificateAssertion_PDU);
1775 }
1776 static void dissect_CertificatePairExactAssertion_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1777   asn1_ctx_t asn1_ctx;
1778   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1779   dissect_x509ce_CertificatePairExactAssertion(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_CertificatePairExactAssertion_PDU);
1780 }
1781 static void dissect_CertificatePairAssertion_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1782   asn1_ctx_t asn1_ctx;
1783   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1784   dissect_x509ce_CertificatePairAssertion(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_CertificatePairAssertion_PDU);
1785 }
1786 static void dissect_CertificateListExactAssertion_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1787   asn1_ctx_t asn1_ctx;
1788   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1789   dissect_x509ce_CertificateListExactAssertion(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_CertificateListExactAssertion_PDU);
1790 }
1791 static void dissect_CertificateListAssertion_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1792   asn1_ctx_t asn1_ctx;
1793   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1794   dissect_x509ce_CertificateListAssertion(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_CertificateListAssertion_PDU);
1795 }
1796 static void dissect_PkiPathMatchSyntax_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1797   asn1_ctx_t asn1_ctx;
1798   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1799   dissect_x509ce_PkiPathMatchSyntax(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_PkiPathMatchSyntax_PDU);
1800 }
1801 static void dissect_EnhancedCertificateAssertion_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1802   asn1_ctx_t asn1_ctx;
1803   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1804   dissect_x509ce_EnhancedCertificateAssertion(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_EnhancedCertificateAssertion_PDU);
1805 }
1806 static void dissect_CertificateTemplate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1807   asn1_ctx_t asn1_ctx;
1808   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1809   dissect_x509ce_CertificateTemplate(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_CertificateTemplate_PDU);
1810 }
1811 static void dissect_EntrustVersionInfo_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1812   asn1_ctx_t asn1_ctx;
1813   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1814   dissect_x509ce_EntrustVersionInfo(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_EntrustVersionInfo_PDU);
1815 }
1816
1817
1818 /*--- End of included file: packet-x509ce-fn.c ---*/
1819 #line 61 "packet-x509ce-template.c"
1820
1821
1822 static void
1823 dissect_x509ce_invalidityDate_callback(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
1824 {
1825         asn1_ctx_t asn1_ctx;
1826         asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1827
1828         dissect_x509ce_GeneralizedTime(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_id_ce_invalidityDate);
1829 }
1830
1831 static void
1832 dissect_x509ce_baseUpdateTime_callback(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
1833 {
1834         asn1_ctx_t asn1_ctx;
1835         asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1836         dissect_x509ce_GeneralizedTime(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_id_ce_baseUpdateTime);
1837 }
1838
1839 /*--- proto_register_x509ce ----------------------------------------------*/
1840 void proto_register_x509ce(void) {
1841
1842   /* List of fields */
1843   static hf_register_info hf[] = {
1844     { &hf_x509ce_id_ce_baseUpdateTime,
1845       { "baseUpdateTime", "x509ce.id_ce_baseUpdateTime",
1846         FT_STRING, BASE_NONE, NULL, 0,
1847         NULL, HFILL }},
1848     { &hf_x509ce_id_ce_invalidityDate,
1849       { "invalidityDate", "x509ce.id_ce_invalidityDate",
1850         FT_STRING, BASE_NONE, NULL, 0,
1851         NULL, HFILL }},
1852     { &hf_x509ce_object_identifier_id, 
1853       { "Id", "x509ce.id", FT_OID, BASE_NONE, NULL, 0,
1854         "Object identifier Id", HFILL }},
1855     { &hf_x509ce_IPAddress,
1856       { "iPAddress", "x509ce.IPAddress", FT_IPv4, BASE_NONE, NULL, 0,
1857         "IP Address", HFILL }},
1858
1859
1860 /*--- Included file: packet-x509ce-hfarr.c ---*/
1861 #line 1 "packet-x509ce-hfarr.c"
1862     { &hf_x509ce_AuthorityKeyIdentifier_PDU,
1863       { "AuthorityKeyIdentifier", "x509ce.AuthorityKeyIdentifier",
1864         FT_NONE, BASE_NONE, NULL, 0,
1865         "x509ce.AuthorityKeyIdentifier", HFILL }},
1866     { &hf_x509ce_SubjectKeyIdentifier_PDU,
1867       { "SubjectKeyIdentifier", "x509ce.SubjectKeyIdentifier",
1868         FT_BYTES, BASE_NONE, NULL, 0,
1869         "x509ce.SubjectKeyIdentifier", HFILL }},
1870     { &hf_x509ce_KeyUsage_PDU,
1871       { "KeyUsage", "x509ce.KeyUsage",
1872         FT_BYTES, BASE_NONE, NULL, 0,
1873         "x509ce.KeyUsage", HFILL }},
1874     { &hf_x509ce_KeyPurposeIDs_PDU,
1875       { "KeyPurposeIDs", "x509ce.KeyPurposeIDs",
1876         FT_UINT32, BASE_DEC, NULL, 0,
1877         "x509ce.KeyPurposeIDs", HFILL }},
1878     { &hf_x509ce_PrivateKeyUsagePeriod_PDU,
1879       { "PrivateKeyUsagePeriod", "x509ce.PrivateKeyUsagePeriod",
1880         FT_NONE, BASE_NONE, NULL, 0,
1881         "x509ce.PrivateKeyUsagePeriod", HFILL }},
1882     { &hf_x509ce_CertificatePoliciesSyntax_PDU,
1883       { "CertificatePoliciesSyntax", "x509ce.CertificatePoliciesSyntax",
1884         FT_UINT32, BASE_DEC, NULL, 0,
1885         "x509ce.CertificatePoliciesSyntax", HFILL }},
1886     { &hf_x509ce_PolicyMappingsSyntax_PDU,
1887       { "PolicyMappingsSyntax", "x509ce.PolicyMappingsSyntax",
1888         FT_UINT32, BASE_DEC, NULL, 0,
1889         "x509ce.PolicyMappingsSyntax", HFILL }},
1890     { &hf_x509ce_GeneralNames_PDU,
1891       { "GeneralNames", "x509ce.GeneralNames",
1892         FT_UINT32, BASE_DEC, NULL, 0,
1893         "x509ce.GeneralNames", HFILL }},
1894     { &hf_x509ce_AttributesSyntax_PDU,
1895       { "AttributesSyntax", "x509ce.AttributesSyntax",
1896         FT_UINT32, BASE_DEC, NULL, 0,
1897         "x509ce.AttributesSyntax", HFILL }},
1898     { &hf_x509ce_BasicConstraintsSyntax_PDU,
1899       { "BasicConstraintsSyntax", "x509ce.BasicConstraintsSyntax",
1900         FT_NONE, BASE_NONE, NULL, 0,
1901         "x509ce.BasicConstraintsSyntax", HFILL }},
1902     { &hf_x509ce_NameConstraintsSyntax_PDU,
1903       { "NameConstraintsSyntax", "x509ce.NameConstraintsSyntax",
1904         FT_NONE, BASE_NONE, NULL, 0,
1905         "x509ce.NameConstraintsSyntax", HFILL }},
1906     { &hf_x509ce_PolicyConstraintsSyntax_PDU,
1907       { "PolicyConstraintsSyntax", "x509ce.PolicyConstraintsSyntax",
1908         FT_NONE, BASE_NONE, NULL, 0,
1909         "x509ce.PolicyConstraintsSyntax", HFILL }},
1910     { &hf_x509ce_SkipCerts_PDU,
1911       { "SkipCerts", "x509ce.SkipCerts",
1912         FT_UINT32, BASE_DEC, NULL, 0,
1913         "x509ce.SkipCerts", HFILL }},
1914     { &hf_x509ce_CRLNumber_PDU,
1915       { "CRLNumber", "x509ce.CRLNumber",
1916         FT_UINT32, BASE_DEC, NULL, 0,
1917         "x509ce.CRLNumber", HFILL }},
1918     { &hf_x509ce_CRLReason_PDU,
1919       { "CRLReason", "x509ce.CRLReason",
1920         FT_UINT32, BASE_DEC, VALS(x509ce_CRLReason_vals), 0,
1921         "x509ce.CRLReason", HFILL }},
1922     { &hf_x509ce_HoldInstruction_PDU,
1923       { "HoldInstruction", "x509ce.HoldInstruction",
1924         FT_OID, BASE_NONE, NULL, 0,
1925         "x509ce.HoldInstruction", HFILL }},
1926     { &hf_x509ce_CRLScopeSyntax_PDU,
1927       { "CRLScopeSyntax", "x509ce.CRLScopeSyntax",
1928         FT_UINT32, BASE_DEC, NULL, 0,
1929         "x509ce.CRLScopeSyntax", HFILL }},
1930     { &hf_x509ce_StatusReferrals_PDU,
1931       { "StatusReferrals", "x509ce.StatusReferrals",
1932         FT_UINT32, BASE_DEC, NULL, 0,
1933         "x509ce.StatusReferrals", HFILL }},
1934     { &hf_x509ce_CRLStreamIdentifier_PDU,
1935       { "CRLStreamIdentifier", "x509ce.CRLStreamIdentifier",
1936         FT_UINT32, BASE_DEC, NULL, 0,
1937         "x509ce.CRLStreamIdentifier", HFILL }},
1938     { &hf_x509ce_OrderedListSyntax_PDU,
1939       { "OrderedListSyntax", "x509ce.OrderedListSyntax",
1940         FT_UINT32, BASE_DEC, VALS(x509ce_OrderedListSyntax_vals), 0,
1941         "x509ce.OrderedListSyntax", HFILL }},
1942     { &hf_x509ce_DeltaInformation_PDU,
1943       { "DeltaInformation", "x509ce.DeltaInformation",
1944         FT_NONE, BASE_NONE, NULL, 0,
1945         "x509ce.DeltaInformation", HFILL }},
1946     { &hf_x509ce_CRLDistPointsSyntax_PDU,
1947       { "CRLDistPointsSyntax", "x509ce.CRLDistPointsSyntax",
1948         FT_UINT32, BASE_DEC, NULL, 0,
1949         "x509ce.CRLDistPointsSyntax", HFILL }},
1950     { &hf_x509ce_IssuingDistPointSyntax_PDU,
1951       { "IssuingDistPointSyntax", "x509ce.IssuingDistPointSyntax",
1952         FT_NONE, BASE_NONE, NULL, 0,
1953         "x509ce.IssuingDistPointSyntax", HFILL }},
1954     { &hf_x509ce_BaseCRLNumber_PDU,
1955       { "BaseCRLNumber", "x509ce.BaseCRLNumber",
1956         FT_UINT32, BASE_DEC, NULL, 0,
1957         "x509ce.BaseCRLNumber", HFILL }},
1958     { &hf_x509ce_ToBeRevokedSyntax_PDU,
1959       { "ToBeRevokedSyntax", "x509ce.ToBeRevokedSyntax",
1960         FT_UINT32, BASE_DEC, NULL, 0,
1961         "x509ce.ToBeRevokedSyntax", HFILL }},
1962     { &hf_x509ce_RevokedGroupsSyntax_PDU,
1963       { "RevokedGroupsSyntax", "x509ce.RevokedGroupsSyntax",
1964         FT_UINT32, BASE_DEC, NULL, 0,
1965         "x509ce.RevokedGroupsSyntax", HFILL }},
1966     { &hf_x509ce_ExpiredCertsOnCRL_PDU,
1967       { "ExpiredCertsOnCRL", "x509ce.ExpiredCertsOnCRL",
1968         FT_STRING, BASE_NONE, NULL, 0,
1969         "x509ce.ExpiredCertsOnCRL", HFILL }},
1970     { &hf_x509ce_AAIssuingDistPointSyntax_PDU,
1971       { "AAIssuingDistPointSyntax", "x509ce.AAIssuingDistPointSyntax",
1972         FT_NONE, BASE_NONE, NULL, 0,
1973         "x509ce.AAIssuingDistPointSyntax", HFILL }},
1974     { &hf_x509ce_CertificateAssertion_PDU,
1975       { "CertificateAssertion", "x509ce.CertificateAssertion",
1976         FT_NONE, BASE_NONE, NULL, 0,
1977         "x509ce.CertificateAssertion", HFILL }},
1978     { &hf_x509ce_CertificatePairExactAssertion_PDU,
1979       { "CertificatePairExactAssertion", "x509ce.CertificatePairExactAssertion",
1980         FT_NONE, BASE_NONE, NULL, 0,
1981         "x509ce.CertificatePairExactAssertion", HFILL }},
1982     { &hf_x509ce_CertificatePairAssertion_PDU,
1983       { "CertificatePairAssertion", "x509ce.CertificatePairAssertion",
1984         FT_NONE, BASE_NONE, NULL, 0,
1985         "x509ce.CertificatePairAssertion", HFILL }},
1986     { &hf_x509ce_CertificateListExactAssertion_PDU,
1987       { "CertificateListExactAssertion", "x509ce.CertificateListExactAssertion",
1988         FT_NONE, BASE_NONE, NULL, 0,
1989         "x509ce.CertificateListExactAssertion", HFILL }},
1990     { &hf_x509ce_CertificateListAssertion_PDU,
1991       { "CertificateListAssertion", "x509ce.CertificateListAssertion",
1992         FT_NONE, BASE_NONE, NULL, 0,
1993         "x509ce.CertificateListAssertion", HFILL }},
1994     { &hf_x509ce_PkiPathMatchSyntax_PDU,
1995       { "PkiPathMatchSyntax", "x509ce.PkiPathMatchSyntax",
1996         FT_NONE, BASE_NONE, NULL, 0,
1997         "x509ce.PkiPathMatchSyntax", HFILL }},
1998     { &hf_x509ce_EnhancedCertificateAssertion_PDU,
1999       { "EnhancedCertificateAssertion", "x509ce.EnhancedCertificateAssertion",
2000         FT_NONE, BASE_NONE, NULL, 0,
2001         "x509ce.EnhancedCertificateAssertion", HFILL }},
2002     { &hf_x509ce_CertificateTemplate_PDU,
2003       { "CertificateTemplate", "x509ce.CertificateTemplate",
2004         FT_NONE, BASE_NONE, NULL, 0,
2005         "x509ce.CertificateTemplate", HFILL }},
2006     { &hf_x509ce_EntrustVersionInfo_PDU,
2007       { "EntrustVersionInfo", "x509ce.EntrustVersionInfo",
2008         FT_NONE, BASE_NONE, NULL, 0,
2009         "x509ce.EntrustVersionInfo", HFILL }},
2010     { &hf_x509ce_keyIdentifier,
2011       { "keyIdentifier", "x509ce.keyIdentifier",
2012         FT_BYTES, BASE_NONE, NULL, 0,
2013         "x509ce.KeyIdentifier", HFILL }},
2014     { &hf_x509ce_authorityCertIssuer,
2015       { "authorityCertIssuer", "x509ce.authorityCertIssuer",
2016         FT_UINT32, BASE_DEC, NULL, 0,
2017         "x509ce.GeneralNames", HFILL }},
2018     { &hf_x509ce_authorityCertSerialNumber,
2019       { "authorityCertSerialNumber", "x509ce.authorityCertSerialNumber",
2020         FT_INT32, BASE_DEC, NULL, 0,
2021         "x509af.CertificateSerialNumber", HFILL }},
2022     { &hf_x509ce_KeyPurposeIDs_item,
2023       { "KeyPurposeId", "x509ce.KeyPurposeId",
2024         FT_OID, BASE_NONE, NULL, 0,
2025         "x509ce.KeyPurposeId", HFILL }},
2026     { &hf_x509ce_notBefore,
2027       { "notBefore", "x509ce.notBefore",
2028         FT_STRING, BASE_NONE, NULL, 0,
2029         "x509ce.GeneralizedTime", HFILL }},
2030     { &hf_x509ce_notAfter,
2031       { "notAfter", "x509ce.notAfter",
2032         FT_STRING, BASE_NONE, NULL, 0,
2033         "x509ce.GeneralizedTime", HFILL }},
2034     { &hf_x509ce_CertificatePoliciesSyntax_item,
2035       { "PolicyInformation", "x509ce.PolicyInformation",
2036         FT_NONE, BASE_NONE, NULL, 0,
2037         "x509ce.PolicyInformation", HFILL }},
2038     { &hf_x509ce_policyIdentifier,
2039       { "policyIdentifier", "x509ce.policyIdentifier",
2040         FT_OID, BASE_NONE, NULL, 0,
2041         "x509ce.CertPolicyId", HFILL }},
2042     { &hf_x509ce_policyQualifiers,
2043       { "policyQualifiers", "x509ce.policyQualifiers",
2044         FT_UINT32, BASE_DEC, NULL, 0,
2045         "x509ce.SEQUENCE_SIZE_1_MAX_OF_PolicyQualifierInfo", HFILL }},
2046     { &hf_x509ce_policyQualifiers_item,
2047       { "PolicyQualifierInfo", "x509ce.PolicyQualifierInfo",
2048         FT_NONE, BASE_NONE, NULL, 0,
2049         "x509ce.PolicyQualifierInfo", HFILL }},
2050     { &hf_x509ce_policyQualifierId,
2051       { "policyQualifierId", "x509ce.policyQualifierId",
2052         FT_OID, BASE_NONE, NULL, 0,
2053         "x509ce.T_policyQualifierId", HFILL }},
2054     { &hf_x509ce_qualifier,
2055       { "qualifier", "x509ce.qualifier",
2056         FT_NONE, BASE_NONE, NULL, 0,
2057         "x509ce.T_qualifier", HFILL }},
2058     { &hf_x509ce_PolicyMappingsSyntax_item,
2059       { "PolicyMappingsSyntax item", "x509ce.PolicyMappingsSyntax_item",
2060         FT_NONE, BASE_NONE, NULL, 0,
2061         "x509ce.PolicyMappingsSyntax_item", HFILL }},
2062     { &hf_x509ce_issuerDomainPolicy,
2063       { "issuerDomainPolicy", "x509ce.issuerDomainPolicy",
2064         FT_OID, BASE_NONE, NULL, 0,
2065         "x509ce.CertPolicyId", HFILL }},
2066     { &hf_x509ce_subjectDomainPolicy,
2067       { "subjectDomainPolicy", "x509ce.subjectDomainPolicy",
2068         FT_OID, BASE_NONE, NULL, 0,
2069         "x509ce.CertPolicyId", HFILL }},
2070     { &hf_x509ce_GeneralNames_item,
2071       { "GeneralName", "x509ce.GeneralName",
2072         FT_UINT32, BASE_DEC, VALS(x509ce_GeneralName_vals), 0,
2073         "x509ce.GeneralName", HFILL }},
2074     { &hf_x509ce_otherName,
2075       { "otherName", "x509ce.otherName",
2076         FT_NONE, BASE_NONE, NULL, 0,
2077         "x509ce.OtherName", HFILL }},
2078     { &hf_x509ce_rfc822Name,
2079       { "rfc822Name", "x509ce.rfc822Name",
2080         FT_STRING, BASE_NONE, NULL, 0,
2081         "x509ce.IA5String", HFILL }},
2082     { &hf_x509ce_dNSName,
2083       { "dNSName", "x509ce.dNSName",
2084         FT_STRING, BASE_NONE, NULL, 0,
2085         "x509ce.IA5String", HFILL }},
2086     { &hf_x509ce_x400Address,
2087       { "x400Address", "x509ce.x400Address",
2088         FT_NONE, BASE_NONE, NULL, 0,
2089         "x411.ORAddress", HFILL }},
2090     { &hf_x509ce_directoryName,
2091       { "directoryName", "x509ce.directoryName",
2092         FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
2093         "x509if.Name", HFILL }},
2094     { &hf_x509ce_ediPartyName,
2095       { "ediPartyName", "x509ce.ediPartyName",
2096         FT_NONE, BASE_NONE, NULL, 0,
2097         "x509ce.EDIPartyName", HFILL }},
2098     { &hf_x509ce_uniformResourceIdentifier,
2099       { "uniformResourceIdentifier", "x509ce.uniformResourceIdentifier",
2100         FT_STRING, BASE_NONE, NULL, 0,
2101         "x509ce.T_uniformResourceIdentifier", HFILL }},
2102     { &hf_x509ce_iPAddress,
2103       { "iPAddress", "x509ce.iPAddress",
2104         FT_BYTES, BASE_NONE, NULL, 0,
2105         "x509ce.T_iPAddress", HFILL }},
2106     { &hf_x509ce_registeredID,
2107       { "registeredID", "x509ce.registeredID",
2108         FT_OID, BASE_NONE, NULL, 0,
2109         "x509ce.OBJECT_IDENTIFIER", HFILL }},
2110     { &hf_x509ce_type_id,
2111       { "type-id", "x509ce.type_id",
2112         FT_OID, BASE_NONE, NULL, 0,
2113         "x509ce.OtherNameType", HFILL }},
2114     { &hf_x509ce_value,
2115       { "value", "x509ce.value",
2116         FT_NONE, BASE_NONE, NULL, 0,
2117         "x509ce.OtherNameValue", HFILL }},
2118     { &hf_x509ce_nameAssigner,
2119       { "nameAssigner", "x509ce.nameAssigner",
2120         FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
2121         "x509sat.DirectoryString", HFILL }},
2122     { &hf_x509ce_partyName,
2123       { "partyName", "x509ce.partyName",
2124         FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
2125         "x509sat.DirectoryString", HFILL }},
2126     { &hf_x509ce_AttributesSyntax_item,
2127       { "Attribute", "x509ce.Attribute",
2128         FT_NONE, BASE_NONE, NULL, 0,
2129         "x509if.Attribute", HFILL }},
2130     { &hf_x509ce_cA,
2131       { "cA", "x509ce.cA",
2132         FT_BOOLEAN, BASE_NONE, NULL, 0,
2133         "x509ce.BOOLEAN", HFILL }},
2134     { &hf_x509ce_pathLenConstraint,
2135       { "pathLenConstraint", "x509ce.pathLenConstraint",
2136         FT_UINT32, BASE_DEC, NULL, 0,
2137         "x509ce.INTEGER_0_MAX", HFILL }},
2138     { &hf_x509ce_permittedSubtrees,
2139       { "permittedSubtrees", "x509ce.permittedSubtrees",
2140         FT_UINT32, BASE_DEC, NULL, 0,
2141         "x509ce.GeneralSubtrees", HFILL }},
2142     { &hf_x509ce_excludedSubtrees,
2143       { "excludedSubtrees", "x509ce.excludedSubtrees",
2144         FT_UINT32, BASE_DEC, NULL, 0,
2145         "x509ce.GeneralSubtrees", HFILL }},
2146     { &hf_x509ce_GeneralSubtrees_item,
2147       { "GeneralSubtree", "x509ce.GeneralSubtree",
2148         FT_NONE, BASE_NONE, NULL, 0,
2149         "x509ce.GeneralSubtree", HFILL }},
2150     { &hf_x509ce_base,
2151       { "base", "x509ce.base",
2152         FT_UINT32, BASE_DEC, VALS(x509ce_GeneralName_vals), 0,
2153         "x509ce.GeneralName", HFILL }},
2154     { &hf_x509ce_minimum,
2155       { "minimum", "x509ce.minimum",
2156         FT_UINT32, BASE_DEC, NULL, 0,
2157         "x509ce.BaseDistance", HFILL }},
2158     { &hf_x509ce_maximum,
2159       { "maximum", "x509ce.maximum",
2160         FT_UINT32, BASE_DEC, NULL, 0,
2161         "x509ce.BaseDistance", HFILL }},
2162     { &hf_x509ce_requireExplicitPolicy,
2163       { "requireExplicitPolicy", "x509ce.requireExplicitPolicy",
2164         FT_UINT32, BASE_DEC, NULL, 0,
2165         "x509ce.SkipCerts", HFILL }},
2166     { &hf_x509ce_inhibitPolicyMapping,
2167       { "inhibitPolicyMapping", "x509ce.inhibitPolicyMapping",
2168         FT_UINT32, BASE_DEC, NULL, 0,
2169         "x509ce.SkipCerts", HFILL }},
2170     { &hf_x509ce_CRLScopeSyntax_item,
2171       { "PerAuthorityScope", "x509ce.PerAuthorityScope",
2172         FT_NONE, BASE_NONE, NULL, 0,
2173         "x509ce.PerAuthorityScope", HFILL }},
2174     { &hf_x509ce_authorityName,
2175       { "authorityName", "x509ce.authorityName",
2176         FT_UINT32, BASE_DEC, VALS(x509ce_GeneralName_vals), 0,
2177         "x509ce.GeneralName", HFILL }},
2178     { &hf_x509ce_distributionPoint,
2179       { "distributionPoint", "x509ce.distributionPoint",
2180         FT_UINT32, BASE_DEC, VALS(x509ce_DistributionPointName_vals), 0,
2181         "x509ce.DistributionPointName", HFILL }},
2182     { &hf_x509ce_onlyContains,
2183       { "onlyContains", "x509ce.onlyContains",
2184         FT_BYTES, BASE_NONE, NULL, 0,
2185         "x509ce.OnlyCertificateTypes", HFILL }},
2186     { &hf_x509ce_onlySomeReasons,
2187       { "onlySomeReasons", "x509ce.onlySomeReasons",
2188         FT_BYTES, BASE_NONE, NULL, 0,
2189         "x509ce.ReasonFlags", HFILL }},
2190     { &hf_x509ce_serialNumberRange,
2191       { "serialNumberRange", "x509ce.serialNumberRange",
2192         FT_NONE, BASE_NONE, NULL, 0,
2193         "x509ce.NumberRange", HFILL }},
2194     { &hf_x509ce_subjectKeyIdRange,
2195       { "subjectKeyIdRange", "x509ce.subjectKeyIdRange",
2196         FT_NONE, BASE_NONE, NULL, 0,
2197         "x509ce.NumberRange", HFILL }},
2198     { &hf_x509ce_nameSubtrees,
2199       { "nameSubtrees", "x509ce.nameSubtrees",
2200         FT_UINT32, BASE_DEC, NULL, 0,
2201         "x509ce.GeneralNames", HFILL }},
2202     { &hf_x509ce_baseRevocationInfo,
2203       { "baseRevocationInfo", "x509ce.baseRevocationInfo",
2204         FT_NONE, BASE_NONE, NULL, 0,
2205         "x509ce.BaseRevocationInfo", HFILL }},
2206     { &hf_x509ce_startingNumber,
2207       { "startingNumber", "x509ce.startingNumber",
2208         FT_INT32, BASE_DEC, NULL, 0,
2209         "x509ce.INTEGER", HFILL }},
2210     { &hf_x509ce_endingNumber,
2211       { "endingNumber", "x509ce.endingNumber",
2212         FT_INT32, BASE_DEC, NULL, 0,
2213         "x509ce.INTEGER", HFILL }},
2214     { &hf_x509ce_modulus,
2215       { "modulus", "x509ce.modulus",
2216         FT_INT32, BASE_DEC, NULL, 0,
2217         "x509ce.INTEGER", HFILL }},
2218     { &hf_x509ce_cRLStreamIdentifier,
2219       { "cRLStreamIdentifier", "x509ce.cRLStreamIdentifier",
2220         FT_UINT32, BASE_DEC, NULL, 0,
2221         "x509ce.CRLStreamIdentifier", HFILL }},
2222     { &hf_x509ce_cRLNumber,
2223       { "cRLNumber", "x509ce.cRLNumber",
2224         FT_UINT32, BASE_DEC, NULL, 0,
2225         "x509ce.CRLNumber", HFILL }},
2226     { &hf_x509ce_baseThisUpdate,
2227       { "baseThisUpdate", "x509ce.baseThisUpdate",
2228         FT_STRING, BASE_NONE, NULL, 0,
2229         "x509ce.GeneralizedTime", HFILL }},
2230     { &hf_x509ce_StatusReferrals_item,
2231       { "StatusReferral", "x509ce.StatusReferral",
2232         FT_UINT32, BASE_DEC, VALS(x509ce_StatusReferral_vals), 0,
2233         "x509ce.StatusReferral", HFILL }},
2234     { &hf_x509ce_cRLReferral,
2235       { "cRLReferral", "x509ce.cRLReferral",
2236         FT_NONE, BASE_NONE, NULL, 0,
2237         "x509ce.CRLReferral", HFILL }},
2238     { &hf_x509ce_crlr_issuer,
2239       { "issuer", "x509ce.issuer",
2240         FT_UINT32, BASE_DEC, VALS(x509ce_GeneralName_vals), 0,
2241         "x509ce.GeneralName", HFILL }},
2242     { &hf_x509ce_location,
2243       { "location", "x509ce.location",
2244         FT_UINT32, BASE_DEC, VALS(x509ce_GeneralName_vals), 0,
2245         "x509ce.GeneralName", HFILL }},
2246     { &hf_x509ce_deltaRefInfo,
2247       { "deltaRefInfo", "x509ce.deltaRefInfo",
2248         FT_NONE, BASE_NONE, NULL, 0,
2249         "x509ce.DeltaRefInfo", HFILL }},
2250     { &hf_x509ce_cRLScope,
2251       { "cRLScope", "x509ce.cRLScope",
2252         FT_UINT32, BASE_DEC, NULL, 0,
2253         "x509ce.CRLScopeSyntax", HFILL }},
2254     { &hf_x509ce_lastUpdate,
2255       { "lastUpdate", "x509ce.lastUpdate",
2256         FT_STRING, BASE_NONE, NULL, 0,
2257         "x509ce.GeneralizedTime", HFILL }},
2258     { &hf_x509ce_lastChangedCRL,
2259       { "lastChangedCRL", "x509ce.lastChangedCRL",
2260         FT_STRING, BASE_NONE, NULL, 0,
2261         "x509ce.GeneralizedTime", HFILL }},
2262     { &hf_x509ce_deltaLocation,
2263       { "deltaLocation", "x509ce.deltaLocation",
2264         FT_UINT32, BASE_DEC, VALS(x509ce_GeneralName_vals), 0,
2265         "x509ce.GeneralName", HFILL }},
2266     { &hf_x509ce_lastDelta,
2267       { "lastDelta", "x509ce.lastDelta",
2268         FT_STRING, BASE_NONE, NULL, 0,
2269         "x509ce.GeneralizedTime", HFILL }},
2270     { &hf_x509ce_nextDelta,
2271       { "nextDelta", "x509ce.nextDelta",
2272         FT_STRING, BASE_NONE, NULL, 0,
2273         "x509ce.GeneralizedTime", HFILL }},
2274     { &hf_x509ce_CRLDistPointsSyntax_item,
2275       { "DistributionPoint", "x509ce.DistributionPoint",
2276         FT_NONE, BASE_NONE, NULL, 0,
2277         "x509ce.DistributionPoint", HFILL }},
2278     { &hf_x509ce_reasons,
2279       { "reasons", "x509ce.reasons",
2280         FT_BYTES, BASE_NONE, NULL, 0,
2281         "x509ce.ReasonFlags", HFILL }},
2282     { &hf_x509ce_cRLIssuer,
2283       { "cRLIssuer", "x509ce.cRLIssuer",
2284         FT_UINT32, BASE_DEC, NULL, 0,
2285         "x509ce.GeneralNames", HFILL }},
2286     { &hf_x509ce_fullName,
2287       { "fullName", "x509ce.fullName",
2288         FT_UINT32, BASE_DEC, NULL, 0,
2289         "x509ce.GeneralNames", HFILL }},
2290     { &hf_x509ce_nameRelativeToCRLIssuer,
2291       { "nameRelativeToCRLIssuer", "x509ce.nameRelativeToCRLIssuer",
2292         FT_UINT32, BASE_DEC, NULL, 0,
2293         "x509if.RelativeDistinguishedName", HFILL }},
2294     { &hf_x509ce_onlyContainsUserPublicKeyCerts,
2295       { "onlyContainsUserPublicKeyCerts", "x509ce.onlyContainsUserPublicKeyCerts",
2296         FT_BOOLEAN, BASE_NONE, NULL, 0,
2297         "x509ce.BOOLEAN", HFILL }},
2298     { &hf_x509ce_onlyContainsCACerts,
2299       { "onlyContainsCACerts", "x509ce.onlyContainsCACerts",
2300         FT_BOOLEAN, BASE_NONE, NULL, 0,
2301         "x509ce.BOOLEAN", HFILL }},
2302     { &hf_x509ce_indirectCRL,
2303       { "indirectCRL", "x509ce.indirectCRL",
2304         FT_BOOLEAN, BASE_NONE, NULL, 0,
2305         "x509ce.BOOLEAN", HFILL }},
2306     { &hf_x509ce_ToBeRevokedSyntax_item,
2307       { "ToBeRevokedGroup", "x509ce.ToBeRevokedGroup",
2308         FT_NONE, BASE_NONE, NULL, 0,
2309         "x509ce.ToBeRevokedGroup", HFILL }},
2310     { &hf_x509ce_certificateIssuer,
2311       { "certificateIssuer", "x509ce.certificateIssuer",
2312         FT_UINT32, BASE_DEC, VALS(x509ce_GeneralName_vals), 0,
2313         "x509ce.GeneralName", HFILL }},
2314     { &hf_x509ce_reasonInfo,
2315       { "reasonInfo", "x509ce.reasonInfo",
2316         FT_NONE, BASE_NONE, NULL, 0,
2317         "x509ce.ReasonInfo", HFILL }},
2318     { &hf_x509ce_revocationTime,
2319       { "revocationTime", "x509ce.revocationTime",
2320         FT_STRING, BASE_NONE, NULL, 0,
2321         "x509ce.GeneralizedTime", HFILL }},
2322     { &hf_x509ce_certificateGroup,
2323       { "certificateGroup", "x509ce.certificateGroup",
2324         FT_UINT32, BASE_DEC, VALS(x509ce_CertificateGroup_vals), 0,
2325         "x509ce.CertificateGroup", HFILL }},
2326     { &hf_x509ce_reasonCode,
2327       { "reasonCode", "x509ce.reasonCode",
2328         FT_UINT32, BASE_DEC, VALS(x509ce_CRLReason_vals), 0,
2329         "x509ce.CRLReason", HFILL }},
2330     { &hf_x509ce_holdInstructionCode,
2331       { "holdInstructionCode", "x509ce.holdInstructionCode",
2332         FT_OID, BASE_NONE, NULL, 0,
2333         "x509ce.HoldInstruction", HFILL }},
2334     { &hf_x509ce_serialNumbers,
2335       { "serialNumbers", "x509ce.serialNumbers",
2336         FT_UINT32, BASE_DEC, NULL, 0,
2337         "x509ce.CertificateSerialNumbers", HFILL }},
2338     { &hf_x509ce_serialNumberRange_01,
2339       { "serialNumberRange", "x509ce.serialNumberRange",
2340         FT_NONE, BASE_NONE, NULL, 0,
2341         "x509ce.CertificateGroupNumberRange", HFILL }},
2342     { &hf_x509ce_nameSubtree,
2343       { "nameSubtree", "x509ce.nameSubtree",
2344         FT_UINT32, BASE_DEC, VALS(x509ce_GeneralName_vals), 0,
2345         "x509ce.GeneralName", HFILL }},
2346     { &hf_x509ce_CertificateSerialNumbers_item,
2347       { "CertificateSerialNumber", "x509ce.CertificateSerialNumber",
2348         FT_INT32, BASE_DEC, NULL, 0,
2349         "x509af.CertificateSerialNumber", HFILL }},
2350     { &hf_x509ce_RevokedGroupsSyntax_item,
2351       { "RevokedGroup", "x509ce.RevokedGroup",
2352         FT_NONE, BASE_NONE, NULL, 0,
2353         "x509ce.RevokedGroup", HFILL }},
2354     { &hf_x509ce_invalidityDate,
2355       { "invalidityDate", "x509ce.invalidityDate",
2356         FT_STRING, BASE_NONE, NULL, 0,
2357         "x509ce.GeneralizedTime", HFILL }},
2358     { &hf_x509ce_revokedcertificateGroup,
2359       { "revokedcertificateGroup", "x509ce.revokedcertificateGroup",
2360         FT_UINT32, BASE_DEC, VALS(x509ce_RevokedCertificateGroup_vals), 0,
2361         "x509ce.RevokedCertificateGroup", HFILL }},
2362     { &hf_x509ce_containsUserAttributeCerts,
2363       { "containsUserAttributeCerts", "x509ce.containsUserAttributeCerts",
2364         FT_BOOLEAN, BASE_NONE, NULL, 0,
2365         "x509ce.BOOLEAN", HFILL }},
2366     { &hf_x509ce_containsAACerts,
2367       { "containsAACerts", "x509ce.containsAACerts",
2368         FT_BOOLEAN, BASE_NONE, NULL, 0,
2369         "x509ce.BOOLEAN", HFILL }},
2370     { &hf_x509ce_containsSOAPublicKeyCerts,
2371       { "containsSOAPublicKeyCerts", "x509ce.containsSOAPublicKeyCerts",
2372         FT_BOOLEAN, BASE_NONE, NULL, 0,
2373         "x509ce.BOOLEAN", HFILL }},
2374     { &hf_x509ce_serialNumber,
2375       { "serialNumber", "x509ce.serialNumber",
2376         FT_INT32, BASE_DEC, NULL, 0,
2377         "x509af.CertificateSerialNumber", HFILL }},
2378     { &hf_x509ce_issuer,
2379       { "issuer", "x509ce.issuer",
2380         FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
2381         "x509if.Name", HFILL }},
2382     { &hf_x509ce_subjectKeyIdentifier,
2383       { "subjectKeyIdentifier", "x509ce.subjectKeyIdentifier",
2384         FT_BYTES, BASE_NONE, NULL, 0,
2385         "x509ce.SubjectKeyIdentifier", HFILL }},
2386     { &hf_x509ce_authorityKeyIdentifier,
2387       { "authorityKeyIdentifier", "x509ce.authorityKeyIdentifier",
2388         FT_NONE, BASE_NONE, NULL, 0,
2389         "x509ce.AuthorityKeyIdentifier", HFILL }},
2390     { &hf_x509ce_certificateValid,
2391       { "certificateValid", "x509ce.certificateValid",
2392         FT_UINT32, BASE_DEC, VALS(x509af_Time_vals), 0,
2393         "x509af.Time", HFILL }},
2394     { &hf_x509ce_privateKeyValid,
2395       { "privateKeyValid", "x509ce.privateKeyValid",
2396         FT_STRING, BASE_NONE, NULL, 0,
2397         "x509ce.GeneralizedTime", HFILL }},
2398     { &hf_x509ce_subjectPublicKeyAlgID,
2399       { "subjectPublicKeyAlgID", "x509ce.subjectPublicKeyAlgID",
2400         FT_OID, BASE_NONE, NULL, 0,
2401         "x509ce.OBJECT_IDENTIFIER", HFILL }},
2402     { &hf_x509ce_keyUsage,
2403       { "keyUsage", "x509ce.keyUsage",
2404         FT_BYTES, BASE_NONE, NULL, 0,
2405         "x509ce.KeyUsage", HFILL }},
2406     { &hf_x509ce_subjectAltName,
2407       { "subjectAltName", "x509ce.subjectAltName",
2408         FT_UINT32, BASE_DEC, VALS(x509ce_AltNameType_vals), 0,
2409         "x509ce.AltNameType", HFILL }},
2410     { &hf_x509ce_policy,
2411       { "policy", "x509ce.policy",
2412         FT_UINT32, BASE_DEC, NULL, 0,
2413         "x509ce.CertPolicySet", HFILL }},
2414     { &hf_x509ce_pathToName,
2415       { "pathToName", "x509ce.pathToName",
2416         FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
2417         "x509if.Name", HFILL }},
2418     { &hf_x509ce_subject,
2419       { "subject", "x509ce.subject",
2420         FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
2421         "x509if.Name", HFILL }},
2422     { &hf_x509ce_nameConstraints,
2423       { "nameConstraints", "x509ce.nameConstraints",
2424         FT_NONE, BASE_NONE, NULL, 0,
2425         "x509ce.NameConstraintsSyntax", HFILL }},
2426     { &hf_x509ce_builtinNameForm,
2427       { "builtinNameForm", "x509ce.builtinNameForm",
2428         FT_UINT32, BASE_DEC, VALS(x509ce_T_builtinNameForm_vals), 0,
2429         "x509ce.T_builtinNameForm", HFILL }},
2430     { &hf_x509ce_otherNameForm,
2431       { "otherNameForm", "x509ce.otherNameForm",
2432         FT_OID, BASE_NONE, NULL, 0,
2433         "x509ce.OBJECT_IDENTIFIER", HFILL }},
2434     { &hf_x509ce_CertPolicySet_item,
2435       { "CertPolicyId", "x509ce.CertPolicyId",
2436         FT_OID, BASE_NONE, NULL, 0,
2437         "x509ce.CertPolicyId", HFILL }},
2438     { &hf_x509ce_cpea_issuedToThisCAAssertion,
2439       { "issuedToThisCAAssertion", "x509ce.issuedToThisCAAssertion",
2440         FT_NONE, BASE_NONE, NULL, 0,
2441         "x509ce.CertificateExactAssertion", HFILL }},
2442     { &hf_x509ce_cpea_issuedByThisCAAssertion,
2443       { "issuedByThisCAAssertion", "x509ce.issuedByThisCAAssertion",
2444         FT_NONE, BASE_NONE, NULL, 0,
2445         "x509ce.CertificateExactAssertion", HFILL }},
2446     { &hf_x509ce_issuedToThisCAAssertion,
2447       { "issuedToThisCAAssertion", "x509ce.issuedToThisCAAssertion",
2448         FT_NONE, BASE_NONE, NULL, 0,
2449         "x509ce.CertificateAssertion", HFILL }},
2450     { &hf_x509ce_issuedByThisCAAssertion,
2451       { "issuedByThisCAAssertion", "x509ce.issuedByThisCAAssertion",
2452         FT_NONE, BASE_NONE, NULL, 0,
2453         "x509ce.CertificateAssertion", HFILL }},
2454     { &hf_x509ce_thisUpdate,
2455       { "thisUpdate", "x509ce.thisUpdate",
2456         FT_UINT32, BASE_DEC, VALS(x509af_Time_vals), 0,
2457         "x509af.Time", HFILL }},
2458     { &hf_x509ce_minCRLNumber,
2459       { "minCRLNumber", "x509ce.minCRLNumber",
2460         FT_UINT32, BASE_DEC, NULL, 0,
2461         "x509ce.CRLNumber", HFILL }},
2462     { &hf_x509ce_maxCRLNumber,
2463       { "maxCRLNumber", "x509ce.maxCRLNumber",
2464         FT_UINT32, BASE_DEC, NULL, 0,
2465         "x509ce.CRLNumber", HFILL }},
2466     { &hf_x509ce_reasonFlags,
2467       { "reasonFlags", "x509ce.reasonFlags",
2468         FT_BYTES, BASE_NONE, NULL, 0,
2469         "x509ce.ReasonFlags", HFILL }},
2470     { &hf_x509ce_dateAndTime,
2471       { "dateAndTime", "x509ce.dateAndTime",
2472         FT_UINT32, BASE_DEC, VALS(x509af_Time_vals), 0,
2473         "x509af.Time", HFILL }},
2474     { &hf_x509ce_firstIssuer,
2475       { "firstIssuer", "x509ce.firstIssuer",
2476         FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
2477         "x509if.Name", HFILL }},
2478     { &hf_x509ce_lastSubject,
2479       { "lastSubject", "x509ce.lastSubject",
2480         FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
2481         "x509if.Name", HFILL }},
2482     { &hf_x509ce_subjectAltName_01,
2483       { "subjectAltName", "x509ce.subjectAltName",
2484         FT_NONE, BASE_NONE, NULL, 0,
2485         "x509ce.AltName", HFILL }},
2486     { &hf_x509ce_pathToName_01,
2487       { "pathToName", "x509ce.pathToName",
2488         FT_UINT32, BASE_DEC, NULL, 0,
2489         "x509ce.GeneralNames", HFILL }},
2490     { &hf_x509ce_altnameType,
2491       { "altnameType", "x509ce.altnameType",
2492         FT_UINT32, BASE_DEC, VALS(x509ce_AltNameType_vals), 0,
2493         "x509ce.AltNameType", HFILL }},
2494     { &hf_x509ce_altNameValue,
2495       { "altNameValue", "x509ce.altNameValue",
2496         FT_UINT32, BASE_DEC, VALS(x509ce_GeneralName_vals), 0,
2497         "x509ce.GeneralName", HFILL }},
2498     { &hf_x509ce_templateID,
2499       { "templateID", "x509ce.templateID",
2500         FT_OID, BASE_NONE, NULL, 0,
2501         "x509ce.OBJECT_IDENTIFIER", HFILL }},
2502     { &hf_x509ce_templateMajorVersion,
2503       { "templateMajorVersion", "x509ce.templateMajorVersion",
2504         FT_INT32, BASE_DEC, NULL, 0,
2505         "x509ce.INTEGER", HFILL }},
2506     { &hf_x509ce_templateMinorVersion,
2507       { "templateMinorVersion", "x509ce.templateMinorVersion",
2508         FT_INT32, BASE_DEC, NULL, 0,
2509         "x509ce.INTEGER", HFILL }},
2510     { &hf_x509ce_entrustVers,
2511       { "entrustVers", "x509ce.entrustVers",
2512         FT_STRING, BASE_NONE, NULL, 0,
2513         "x509ce.GeneralString", HFILL }},
2514     { &hf_x509ce_entrustVersInfoFlags,
2515       { "entrustVersInfoFlags", "x509ce.entrustVersInfoFlags",
2516         FT_BYTES, BASE_NONE, NULL, 0,
2517         "x509ce.EntrustInfoFlags", HFILL }},
2518     { &hf_x509ce_KeyUsage_digitalSignature,
2519       { "digitalSignature", "x509ce.digitalSignature",
2520         FT_BOOLEAN, 8, NULL, 0x80,
2521         NULL, HFILL }},
2522     { &hf_x509ce_KeyUsage_contentCommitment,
2523       { "contentCommitment", "x509ce.contentCommitment",
2524         FT_BOOLEAN, 8, NULL, 0x40,
2525         NULL, HFILL }},
2526     { &hf_x509ce_KeyUsage_keyEncipherment,
2527       { "keyEncipherment", "x509ce.keyEncipherment",
2528         FT_BOOLEAN, 8, NULL, 0x20,
2529         NULL, HFILL }},
2530     { &hf_x509ce_KeyUsage_dataEncipherment,
2531       { "dataEncipherment", "x509ce.dataEncipherment",
2532         FT_BOOLEAN, 8, NULL, 0x10,
2533         NULL, HFILL }},
2534     { &hf_x509ce_KeyUsage_keyAgreement,
2535       { "keyAgreement", "x509ce.keyAgreement",
2536         FT_BOOLEAN, 8, NULL, 0x08,
2537         NULL, HFILL }},
2538     { &hf_x509ce_KeyUsage_keyCertSign,
2539       { "keyCertSign", "x509ce.keyCertSign",
2540         FT_BOOLEAN, 8, NULL, 0x04,
2541         NULL, HFILL }},
2542     { &hf_x509ce_KeyUsage_cRLSign,
2543       { "cRLSign", "x509ce.cRLSign",
2544         FT_BOOLEAN, 8, NULL, 0x02,
2545         NULL, HFILL }},
2546     { &hf_x509ce_KeyUsage_encipherOnly,
2547       { "encipherOnly", "x509ce.encipherOnly",
2548         FT_BOOLEAN, 8, NULL, 0x01,
2549         NULL, HFILL }},
2550     { &hf_x509ce_KeyUsage_decipherOnly,
2551       { "decipherOnly", "x509ce.decipherOnly",
2552         FT_BOOLEAN, 8, NULL, 0x80,
2553         NULL, HFILL }},
2554     { &hf_x509ce_OnlyCertificateTypes_user,
2555       { "user", "x509ce.user",
2556         FT_BOOLEAN, 8, NULL, 0x80,
2557         NULL, HFILL }},
2558     { &hf_x509ce_OnlyCertificateTypes_authority,
2559       { "authority", "x509ce.authority",
2560         FT_BOOLEAN, 8, NULL, 0x40,
2561         NULL, HFILL }},
2562     { &hf_x509ce_OnlyCertificateTypes_attribute,
2563       { "attribute", "x509ce.attribute",
2564         FT_BOOLEAN, 8, NULL, 0x20,
2565         NULL, HFILL }},
2566     { &hf_x509ce_ReasonFlags_unused,
2567       { "unused", "x509ce.unused",
2568         FT_BOOLEAN, 8, NULL, 0x80,
2569         NULL, HFILL }},
2570     { &hf_x509ce_ReasonFlags_keyCompromise,
2571       { "keyCompromise", "x509ce.keyCompromise",
2572         FT_BOOLEAN, 8, NULL, 0x40,
2573         NULL, HFILL }},
2574     { &hf_x509ce_ReasonFlags_cACompromise,
2575       { "cACompromise", "x509ce.cACompromise",
2576         FT_BOOLEAN, 8, NULL, 0x20,
2577         NULL, HFILL }},
2578     { &hf_x509ce_ReasonFlags_affiliationChanged,
2579       { "affiliationChanged", "x509ce.affiliationChanged",
2580         FT_BOOLEAN, 8, NULL, 0x10,
2581         NULL, HFILL }},
2582     { &hf_x509ce_ReasonFlags_superseded,
2583       { "superseded", "x509ce.superseded",
2584         FT_BOOLEAN, 8, NULL, 0x08,
2585         NULL, HFILL }},
2586     { &hf_x509ce_ReasonFlags_cessationOfOperation,
2587       { "cessationOfOperation", "x509ce.cessationOfOperation",
2588         FT_BOOLEAN, 8, NULL, 0x04,
2589         NULL, HFILL }},
2590     { &hf_x509ce_ReasonFlags_certificateHold,
2591       { "certificateHold", "x509ce.certificateHold",
2592         FT_BOOLEAN, 8, NULL, 0x02,
2593         NULL, HFILL }},
2594     { &hf_x509ce_ReasonFlags_privilegeWithdrawn,
2595       { "privilegeWithdrawn", "x509ce.privilegeWithdrawn",
2596         FT_BOOLEAN, 8, NULL, 0x01,
2597         NULL, HFILL }},
2598     { &hf_x509ce_ReasonFlags_aACompromise,
2599       { "aACompromise", "x509ce.aACompromise",
2600         FT_BOOLEAN, 8, NULL, 0x80,
2601         NULL, HFILL }},
2602     { &hf_x509ce_EntrustInfoFlags_keyUpdateAllowed,
2603       { "keyUpdateAllowed", "x509ce.keyUpdateAllowed",
2604         FT_BOOLEAN, 8, NULL, 0x80,
2605         NULL, HFILL }},
2606     { &hf_x509ce_EntrustInfoFlags_newExtensions,
2607       { "newExtensions", "x509ce.newExtensions",
2608         FT_BOOLEAN, 8, NULL, 0x40,
2609         NULL, HFILL }},
2610     { &hf_x509ce_EntrustInfoFlags_pKIXCertificate,
2611       { "pKIXCertificate", "x509ce.pKIXCertificate",
2612         FT_BOOLEAN, 8, NULL, 0x20,
2613         NULL, HFILL }},
2614     { &hf_x509ce_EntrustInfoFlags_enterpriseCategory,
2615       { "enterpriseCategory", "x509ce.enterpriseCategory",
2616         FT_BOOLEAN, 8, NULL, 0x10,
2617         NULL, HFILL }},
2618     { &hf_x509ce_EntrustInfoFlags_webCategory,
2619       { "webCategory", "x509ce.webCategory",
2620         FT_BOOLEAN, 8, NULL, 0x08,
2621         NULL, HFILL }},
2622     { &hf_x509ce_EntrustInfoFlags_sETCategory,
2623       { "sETCategory", "x509ce.sETCategory",
2624         FT_BOOLEAN, 8, NULL, 0x04,
2625         NULL, HFILL }},
2626
2627 /*--- End of included file: packet-x509ce-hfarr.c ---*/
2628 #line 101 "packet-x509ce-template.c"
2629   };
2630
2631   /* List of subtrees */
2632   static gint *ett[] = {
2633
2634 /*--- Included file: packet-x509ce-ettarr.c ---*/
2635 #line 1 "packet-x509ce-ettarr.c"
2636     &ett_x509ce_AuthorityKeyIdentifier,
2637     &ett_x509ce_KeyUsage,
2638     &ett_x509ce_KeyPurposeIDs,
2639     &ett_x509ce_PrivateKeyUsagePeriod,
2640     &ett_x509ce_CertificatePoliciesSyntax,
2641     &ett_x509ce_PolicyInformation,
2642     &ett_x509ce_SEQUENCE_SIZE_1_MAX_OF_PolicyQualifierInfo,
2643     &ett_x509ce_PolicyQualifierInfo,
2644     &ett_x509ce_PolicyMappingsSyntax,
2645     &ett_x509ce_PolicyMappingsSyntax_item,
2646     &ett_x509ce_GeneralNames,
2647     &ett_x509ce_GeneralName,
2648     &ett_x509ce_OtherName,
2649     &ett_x509ce_EDIPartyName,
2650     &ett_x509ce_AttributesSyntax,
2651     &ett_x509ce_BasicConstraintsSyntax,
2652     &ett_x509ce_NameConstraintsSyntax,
2653     &ett_x509ce_GeneralSubtrees,
2654     &ett_x509ce_GeneralSubtree,
2655     &ett_x509ce_PolicyConstraintsSyntax,
2656     &ett_x509ce_CRLScopeSyntax,
2657     &ett_x509ce_PerAuthorityScope,
2658     &ett_x509ce_OnlyCertificateTypes,
2659     &ett_x509ce_NumberRange,
2660     &ett_x509ce_BaseRevocationInfo,
2661     &ett_x509ce_StatusReferrals,
2662     &ett_x509ce_StatusReferral,
2663     &ett_x509ce_CRLReferral,
2664     &ett_x509ce_DeltaRefInfo,
2665     &ett_x509ce_DeltaInformation,
2666     &ett_x509ce_CRLDistPointsSyntax,
2667     &ett_x509ce_DistributionPoint,
2668     &ett_x509ce_DistributionPointName,
2669     &ett_x509ce_ReasonFlags,
2670     &ett_x509ce_IssuingDistPointSyntax,
2671     &ett_x509ce_ToBeRevokedSyntax,
2672     &ett_x509ce_ToBeRevokedGroup,
2673     &ett_x509ce_ReasonInfo,
2674     &ett_x509ce_CertificateGroup,
2675     &ett_x509ce_CertificateGroupNumberRange,
2676     &ett_x509ce_CertificateSerialNumbers,
2677     &ett_x509ce_RevokedGroupsSyntax,
2678     &ett_x509ce_RevokedGroup,
2679     &ett_x509ce_RevokedCertificateGroup,
2680     &ett_x509ce_AAIssuingDistPointSyntax,
2681     &ett_x509ce_CertificateExactAssertion,
2682     &ett_x509ce_CertificateAssertion,
2683     &ett_x509ce_AltNameType,
2684     &ett_x509ce_CertPolicySet,
2685     &ett_x509ce_CertificatePairExactAssertion,
2686     &ett_x509ce_CertificatePairAssertion,
2687     &ett_x509ce_CertificateListExactAssertion,
2688     &ett_x509ce_CertificateListAssertion,
2689     &ett_x509ce_PkiPathMatchSyntax,
2690     &ett_x509ce_EnhancedCertificateAssertion,
2691     &ett_x509ce_AltName,
2692     &ett_x509ce_CertificateTemplate,
2693     &ett_x509ce_EntrustVersionInfo,
2694     &ett_x509ce_EntrustInfoFlags,
2695
2696 /*--- End of included file: packet-x509ce-ettarr.c ---*/
2697 #line 106 "packet-x509ce-template.c"
2698   };
2699
2700   /* Register protocol */
2701   proto_x509ce = proto_register_protocol(PNAME, PSNAME, PFNAME);
2702
2703   /* Register fields and subtrees */
2704   proto_register_field_array(proto_x509ce, hf, array_length(hf));
2705   proto_register_subtree_array(ett, array_length(ett));
2706
2707 }
2708
2709
2710 /*--- proto_reg_handoff_x509ce -------------------------------------------*/
2711 void proto_reg_handoff_x509ce(void) {
2712
2713 /*--- Included file: packet-x509ce-dis-tab.c ---*/
2714 #line 1 "packet-x509ce-dis-tab.c"
2715   register_ber_oid_dissector("2.5.29.9", dissect_AttributesSyntax_PDU, proto_x509ce, "id-ce-subjectDirectoryAttributes");
2716   register_ber_oid_dissector("2.5.29.14", dissect_SubjectKeyIdentifier_PDU, proto_x509ce, "id-ce-subjectKeyIdentifier");
2717   register_ber_oid_dissector("2.5.29.15", dissect_KeyUsage_PDU, proto_x509ce, "id-ce-keyUsage");
2718   register_ber_oid_dissector("2.5.29.16", dissect_PrivateKeyUsagePeriod_PDU, proto_x509ce, "id-ce-privateKeyUsagePeriod");
2719   register_ber_oid_dissector("2.5.29.17", dissect_GeneralNames_PDU, proto_x509ce, "id-ce-subjectAltName");
2720   register_ber_oid_dissector("2.5.29.18", dissect_GeneralNames_PDU, proto_x509ce, "id-ce-issuerAltName");
2721   register_ber_oid_dissector("2.5.29.19", dissect_BasicConstraintsSyntax_PDU, proto_x509ce, "id-ce-basicConstraints");
2722   register_ber_oid_dissector("2.5.29.20", dissect_CRLNumber_PDU, proto_x509ce, "id-ce-cRLNumber");
2723   register_ber_oid_dissector("2.5.29.21", dissect_CRLReason_PDU, proto_x509ce, "id-ce-reasonCode");
2724   register_ber_oid_dissector("2.5.29.23", dissect_HoldInstruction_PDU, proto_x509ce, "id-ce-instructionCode");
2725   register_ber_oid_dissector("2.5.29.27", dissect_BaseCRLNumber_PDU, proto_x509ce, "id-ce-deltaCRLIndicator");
2726   register_ber_oid_dissector("2.5.29.28", dissect_IssuingDistPointSyntax_PDU, proto_x509ce, "id-ce-issuingDistributionPoint");
2727   register_ber_oid_dissector("2.5.29.29", dissect_GeneralNames_PDU, proto_x509ce, "id-ce-certificateIssuer");
2728   register_ber_oid_dissector("2.5.29.30", dissect_NameConstraintsSyntax_PDU, proto_x509ce, "id-ce-nameConstraints");
2729   register_ber_oid_dissector("2.5.29.31", dissect_CRLDistPointsSyntax_PDU, proto_x509ce, "id-ce-cRLDistributionPoints");
2730   register_ber_oid_dissector("2.5.29.32", dissect_CertificatePoliciesSyntax_PDU, proto_x509ce, "id-ce-certificatePolicies");
2731   register_ber_oid_dissector("2.5.29.33", dissect_PolicyMappingsSyntax_PDU, proto_x509ce, "id-ce-policyMappings");
2732   register_ber_oid_dissector("2.5.29.35", dissect_AuthorityKeyIdentifier_PDU, proto_x509ce, "id-ce-authorityKeyIdentifier");
2733   register_ber_oid_dissector("2.5.29.36", dissect_PolicyConstraintsSyntax_PDU, proto_x509ce, "id-ce-policyConstraints");
2734   register_ber_oid_dissector("2.5.29.37", dissect_KeyPurposeIDs_PDU, proto_x509ce, "id-ce-extKeyUsage");
2735   register_ber_oid_dissector("2.5.29.40", dissect_CRLStreamIdentifier_PDU, proto_x509ce, "id-ce-cRLStreamIdentifier");
2736   register_ber_oid_dissector("2.5.29.44", dissect_CRLScopeSyntax_PDU, proto_x509ce, "id-ce-cRLScope");
2737   register_ber_oid_dissector("2.5.29.45", dissect_StatusReferrals_PDU, proto_x509ce, "id-ce-statusReferrals");
2738   register_ber_oid_dissector("2.5.29.46", dissect_CRLDistPointsSyntax_PDU, proto_x509ce, "id-ce-freshestCRL");
2739   register_ber_oid_dissector("2.5.29.47", dissect_OrderedListSyntax_PDU, proto_x509ce, "id-ce-orderedList");
2740   register_ber_oid_dissector("2.5.29.53", dissect_DeltaInformation_PDU, proto_x509ce, "id-ce-deltaInfo");
2741   register_ber_oid_dissector("2.5.29.54", dissect_SkipCerts_PDU, proto_x509ce, "id-ce-inhibitAnyPolicy");
2742   register_ber_oid_dissector("2.5.29.58", dissect_ToBeRevokedSyntax_PDU, proto_x509ce, "id-ce-toBeRevoked");
2743   register_ber_oid_dissector("2.5.29.59", dissect_RevokedGroupsSyntax_PDU, proto_x509ce, "id-ce-RevokedGroups");
2744   register_ber_oid_dissector("2.5.29.60", dissect_ExpiredCertsOnCRL_PDU, proto_x509ce, "id-ce-expiredCertsOnCRL");
2745   register_ber_oid_dissector("2.5.29.61", dissect_AAIssuingDistPointSyntax_PDU, proto_x509ce, "id-ce-aAissuingDistributionPoint");
2746   register_ber_oid_dissector("2.5.13.35", dissect_CertificateAssertion_PDU, proto_x509ce, "id-mr-certificateMatch");
2747   register_ber_oid_dissector("2.5.13.36", dissect_CertificatePairExactAssertion_PDU, proto_x509ce, "id-mr-certificatePairExactMatch");
2748   register_ber_oid_dissector("2.5.13.37", dissect_CertificatePairAssertion_PDU, proto_x509ce, "id-mr-certificatePairMatch");
2749   register_ber_oid_dissector("2.5.13.38", dissect_CertificateListExactAssertion_PDU, proto_x509ce, "id-mr-certificateListExactMatch");
2750   register_ber_oid_dissector("2.5.13.39", dissect_CertificateListAssertion_PDU, proto_x509ce, "id-mr-certificateListMatch");
2751   register_ber_oid_dissector("2.5.13.62", dissect_PkiPathMatchSyntax_PDU, proto_x509ce, "id-mr-pkiPathMatch");
2752   register_ber_oid_dissector("2.5.13.65", dissect_EnhancedCertificateAssertion_PDU, proto_x509ce, "id-mr-enhancedCertificateMatch");
2753   register_ber_oid_dissector("1.3.6.1.4.1.311.21.7", dissect_CertificateTemplate_PDU, proto_x509ce, "id-ms-certificate-template");
2754   register_ber_oid_dissector("1.3.6.1.4.1.311.21.10", dissect_CertificatePoliciesSyntax_PDU, proto_x509ce, "id-ms-application-certificate-policies");
2755   register_ber_oid_dissector("1.2.840.113533.7.65.0", dissect_EntrustVersionInfo_PDU, proto_x509ce, "id-ce-entrustVersionInfo");
2756
2757
2758 /*--- End of included file: packet-x509ce-dis-tab.c ---*/
2759 #line 121 "packet-x509ce-template.c"
2760         register_ber_oid_dissector("2.5.29.24", dissect_x509ce_invalidityDate_callback, proto_x509ce, "id-ce-invalidityDate");
2761         register_ber_oid_dissector("2.5.29.51", dissect_x509ce_baseUpdateTime_callback, proto_x509ce, "id-ce-baseUpdateTime");
2762 }
2763