Coverage Report

Created: 2026-06-30 07:22

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