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