aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-x509ce.c
diff options
context:
space:
mode:
authorRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2004-07-26 09:21:36 +0000
committerRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2004-07-26 09:21:36 +0000
commit135f0cdfa3cce5d6d3bf1d9d4c3658353cd44f36 (patch)
tree8ba151ba3b5035f35544dd2c72f4dfe2efae0c5b /epan/dissectors/packet-x509ce.c
parent1b3acfff24c7c7ef33a091a11cc0051a095f894a (diff)
update tox509ce virtually all of x509ce now implemented (but there are still bugs)
svn path=/trunk/; revision=11524
Diffstat (limited to 'epan/dissectors/packet-x509ce.c')
-rw-r--r--epan/dissectors/packet-x509ce.c1385
1 files changed, 1340 insertions, 45 deletions
diff --git a/epan/dissectors/packet-x509ce.c b/epan/dissectors/packet-x509ce.c
index 565e90ec21..30c0cc84df 100644
--- a/epan/dissectors/packet-x509ce.c
+++ b/epan/dissectors/packet-x509ce.c
@@ -43,6 +43,7 @@
#include "packet-ber.h"
#include "packet-x509ce.h"
+#include "packet-x509af.h"
#include "packet-x509if.h"
#define PNAME "X.509 Certificate Extensions"
@@ -60,6 +61,26 @@ static int hf_x509ce_id_ce_issuerAltName = -1;
static int hf_x509ce_id_ce_basicConstraints = -1;
static int hf_x509ce_id_ce_cRLNumber = -1;
static int hf_x509ce_id_ce_reasonCode = -1;
+static int hf_x509ce_id_ce_instructionCode = -1;
+static int hf_x509ce_id_ce_invalidityDate = -1;
+static int hf_x509ce_id_ce_deltaCRLIndicator = -1;
+static int hf_x509ce_id_ce_issuingDistributionPoint = -1;
+static int hf_x509ce_id_ce_certificateIssuer = -1;
+static int hf_x509ce_id_ce_nameConstraints = -1;
+static int hf_x509ce_id_ce_cRLDistributionPoints = -1;
+static int hf_x509ce_id_ce_certificatePolicies = -1;
+static int hf_x509ce_id_ce_policyMappings = -1;
+static int hf_x509ce_id_ce_authorityKeyIdentifier = -1;
+static int hf_x509ce_id_ce_policyConstraints = -1;
+static int hf_x509ce_id_ce_extKeyUsage = -1;
+static int hf_x509ce_id_ce_cRLStreamIdentifier = -1;
+static int hf_x509ce_id_ce_cRLScope = -1;
+static int hf_x509ce_id_ce_statusReferrals = -1;
+static int hf_x509ce_id_ce_freshestCRL = -1;
+static int hf_x509ce_id_ce_orderedList = -1;
+static int hf_x509ce_id_ce_baseUpdateTime = -1;
+static int hf_x509ce_id_ce_deltaInfo = -1;
+static int hf_x509ce_id_ce_inhibitAnyPolicy = -1;
/*--- Included file: packet-x509ce-hf.c ---*/
@@ -68,8 +89,19 @@ static int hf_x509ce_id_ce_reasonCode = -1;
/* packet-x509ce-hf.c */
/* ../../tools/asn2eth.py -X -b -p x509ce -c x509ce.cnf -s packet-x509ce-template CertificateExtensions.asn */
+static int hf_x509ce_keyIdentifier = -1; /* KeyIdentifier */
+static int hf_x509ce_authorityCertIssuer = -1; /* GeneralNames */
+static int hf_x509ce_authorityCertSerialNumber = -1; /* CertificateSerialNumber */
+static int hf_x509ce_KeyPurposeIDs_item = -1; /* KeyPurposeId */
static int hf_x509ce_notBefore = -1; /* GeneralizedTime */
static int hf_x509ce_notAfter = -1; /* GeneralizedTime */
+static int hf_x509ce_CertificatePoliciesSyntax_item = -1; /* PolicyInformation */
+static int hf_x509ce_policyIdentifier = -1; /* CertPolicyId */
+static int hf_x509ce_policyQualifiers = -1; /* SEQUNCE_OF_PolicyQualifierInfo */
+static int hf_x509ce_policyQualifiers_item = -1; /* PolicyQualifierInfo */
+static int hf_x509ce_PolicyMappingsSyntax_item = -1; /* PolicyMappingsSyntax_item */
+static int hf_x509ce_issuerDomainPolicy = -1; /* CertPolicyId */
+static int hf_x509ce_subjectDomainPolicy = -1; /* CertPolicyId */
static int hf_x509ce_GeneralNames_item = -1; /* GeneralName */
static int hf_x509ce_rfc822Name = -1; /* IA5String */
static int hf_x509ce_dNSName = -1; /* IA5String */
@@ -79,6 +111,51 @@ static int hf_x509ce_registeredID = -1; /* OBJECT_IDENTIFIER */
static int hf_x509ce_AttributesSyntax_item = -1; /* Attribute */
static int hf_x509ce_cA = -1; /* BOOLEAN */
static int hf_x509ce_pathLenConstraint = -1; /* INTEGER */
+static int hf_x509ce_permittedSubtrees = -1; /* GeneralSubtrees */
+static int hf_x509ce_excludedSubtrees = -1; /* GeneralSubtrees */
+static int hf_x509ce_GeneralSubtrees_item = -1; /* GeneralSubtree */
+static int hf_x509ce_base = -1; /* GeneralName */
+static int hf_x509ce_minimum = -1; /* BaseDistance */
+static int hf_x509ce_maximum = -1; /* BaseDistance */
+static int hf_x509ce_requireExplicitPolicy = -1; /* SkipCerts */
+static int hf_x509ce_inhibitPolicyMapping = -1; /* SkipCerts */
+static int hf_x509ce_CRLScopeSyntax_item = -1; /* PerAuthorityScope */
+static int hf_x509ce_authorityName = -1; /* GeneralName */
+static int hf_x509ce_distributionPoint = -1; /* DistributionPointName */
+static int hf_x509ce_onlyContains = -1; /* OnlyCertificateTypes */
+static int hf_x509ce_onlySomeReasons = -1; /* ReasonFlags */
+static int hf_x509ce_serialNumberRange = -1; /* NumberRange */
+static int hf_x509ce_subjectKeyIdRange = -1; /* NumberRange */
+static int hf_x509ce_nameSubtrees = -1; /* GeneralNames */
+static int hf_x509ce_baseRevocationInfo = -1; /* BaseRevocationInfo */
+static int hf_x509ce_startingNumber = -1; /* INTEGER */
+static int hf_x509ce_endingNumber = -1; /* INTEGER */
+static int hf_x509ce_modulus = -1; /* INTEGER */
+static int hf_x509ce_cRLStreamIdentifier = -1; /* CRLStreamIdentifier */
+static int hf_x509ce_cRLNumber = -1; /* CRLNumber */
+static int hf_x509ce_baseThisUpdate = -1; /* GeneralizedTime */
+static int hf_x509ce_StatusReferrals_item = -1; /* StatusReferral */
+static int hf_x509ce_cRLReferral = -1; /* CRLReferral */
+static int hf_x509ce_issuer = -1; /* GeneralName */
+static int hf_x509ce_location = -1; /* GeneralName */
+static int hf_x509ce_deltaRefInfo = -1; /* DeltaRefInfo */
+static int hf_x509ce_cRLScope = -1; /* CRLScopeSyntax */
+static int hf_x509ce_lastUpdate = -1; /* GeneralizedTime */
+static int hf_x509ce_lastChangedCRL = -1; /* GeneralizedTime */
+static int hf_x509ce_deltaLocation = -1; /* GeneralName */
+static int hf_x509ce_lastDelta = -1; /* GeneralizedTime */
+static int hf_x509ce_nextDelta = -1; /* GeneralizedTime */
+static int hf_x509ce_CRLDistPointsSyntax_item = -1; /* DistributionPoint */
+static int hf_x509ce_reasons = -1; /* ReasonFlags */
+static int hf_x509ce_cRLIssuer = -1; /* GeneralNames */
+static int hf_x509ce_fullName = -1; /* GeneralNames */
+static int hf_x509ce_nameRelativeToCRLIssuer = -1; /* RelativeDistinguishedName */
+static int hf_x509ce_containsUserPublicKeyCerts = -1; /* BOOLEAN */
+static int hf_x509ce_containsCACerts = -1; /* BOOLEAN */
+static int hf_x509ce_indirectCRL = -1; /* BOOLEAN */
+static int hf_x509ce_containsUserAttributeCerts = -1; /* BOOLEAN */
+static int hf_x509ce_containsAACerts = -1; /* BOOLEAN */
+static int hf_x509ce_containsSOAPublicKeyCerts = -1; /* BOOLEAN */
/* named bits */
static int hf_x509ce_KeyUsage_digitalSignature = -1;
static int hf_x509ce_KeyUsage_nonRepudiation = -1;
@@ -89,6 +166,20 @@ static int hf_x509ce_KeyUsage_keyCertSign = -1;
static int hf_x509ce_KeyUsage_cRLSign = -1;
static int hf_x509ce_KeyUsage_encipherOnly = -1;
static int hf_x509ce_KeyUsage_decipherOnly = -1;
+static int hf_x509ce_OnlyCertificateTypes_userPublicKey = -1;
+static int hf_x509ce_OnlyCertificateTypes_cA = -1;
+static int hf_x509ce_OnlyCertificateTypes_userAttribute = -1;
+static int hf_x509ce_OnlyCertificateTypes_aA = -1;
+static int hf_x509ce_OnlyCertificateTypes_sOAPublicKey = -1;
+static int hf_x509ce_ReasonFlags_unused = -1;
+static int hf_x509ce_ReasonFlags_keyCompromise = -1;
+static int hf_x509ce_ReasonFlags_cACompromise = -1;
+static int hf_x509ce_ReasonFlags_affiliationChanged = -1;
+static int hf_x509ce_ReasonFlags_superseded = -1;
+static int hf_x509ce_ReasonFlags_cessationOfOperation = -1;
+static int hf_x509ce_ReasonFlags_certificateHold = -1;
+static int hf_x509ce_ReasonFlags_privilegeWithdrawn = -1;
+static int hf_x509ce_ReasonFlags_aACompromise = -1;
/*--- End of included file: packet-x509ce-hf.c ---*/
@@ -102,12 +193,39 @@ static int hf_x509ce_KeyUsage_decipherOnly = -1;
/* packet-x509ce-ett.c */
/* ../../tools/asn2eth.py -X -b -p x509ce -c x509ce.cnf -s packet-x509ce-template CertificateExtensions.asn */
+static gint ett_x509ce_AuthorityKeyIdentifier = -1;
static gint ett_x509ce_KeyUsage = -1;
+static gint ett_x509ce_KeyPurposeIDs = -1;
static gint ett_x509ce_PrivateKeyUsagePeriod = -1;
+static gint ett_x509ce_CertificatePoliciesSyntax = -1;
+static gint ett_x509ce_PolicyInformation = -1;
+static gint ett_x509ce_SEQUNCE_OF_PolicyQualifierInfo = -1;
+static gint ett_x509ce_PolicyQualifierInfo = -1;
+static gint ett_x509ce_PolicyMappingsSyntax = -1;
+static gint ett_x509ce_PolicyMappingsSyntax_item = -1;
static gint ett_x509ce_GeneralNames = -1;
static gint ett_x509ce_GeneralName = -1;
static gint ett_x509ce_AttributesSyntax = -1;
static gint ett_x509ce_BasicConstraintsSyntax = -1;
+static gint ett_x509ce_NameConstraintsSyntax = -1;
+static gint ett_x509ce_GeneralSubtrees = -1;
+static gint ett_x509ce_GeneralSubtree = -1;
+static gint ett_x509ce_PolicyConstraintsSyntax = -1;
+static gint ett_x509ce_CRLScopeSyntax = -1;
+static gint ett_x509ce_PerAuthorityScope = -1;
+static gint ett_x509ce_OnlyCertificateTypes = -1;
+static gint ett_x509ce_NumberRange = -1;
+static gint ett_x509ce_BaseRevocationInfo = -1;
+static gint ett_x509ce_StatusReferrals = -1;
+static gint ett_x509ce_StatusReferral = -1;
+static gint ett_x509ce_CRLReferral = -1;
+static gint ett_x509ce_DeltaRefInfo = -1;
+static gint ett_x509ce_DeltaInformation = -1;
+static gint ett_x509ce_CRLDistPointsSyntax = -1;
+static gint ett_x509ce_DistributionPoint = -1;
+static gint ett_x509ce_DistributionPointName = -1;
+static gint ett_x509ce_ReasonFlags = -1;
+static gint ett_x509ce_IssuingDistPointSyntax = -1;
/*--- End of included file: packet-x509ce-ett.c ---*/
@@ -120,9 +238,15 @@ static gint ett_x509ce_BasicConstraintsSyntax = -1;
/* packet-x509ce-fn.c */
/* ../../tools/asn2eth.py -X -b -p x509ce -c x509ce.cnf -s packet-x509ce-template CertificateExtensions.asn */
+static int dissect_authorityCertSerialNumber(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509af_CertificateSerialNumber(FALSE, tvb, offset, pinfo, tree, hf_x509ce_authorityCertSerialNumber);
+}
static int dissect_AttributesSyntax_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
return dissect_x509if_Attribute(FALSE, tvb, offset, pinfo, tree, hf_x509ce_AttributesSyntax_item);
}
+static int dissect_nameRelativeToCRLIssuer(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509if_RelativeDistinguishedName(FALSE, tvb, offset, pinfo, tree, hf_x509ce_nameRelativeToCRLIssuer);
+}
static int
dissect_x509ce_KeyIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
@@ -131,6 +255,136 @@ dissect_x509ce_KeyIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offse
return offset;
}
+static int dissect_keyIdentifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_KeyIdentifier(FALSE, tvb, offset, pinfo, tree, hf_x509ce_keyIdentifier);
+}
+
+
+static int
+dissect_x509ce_IA5String(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_restricted_string(implicit_tag, 1,
+ pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_rfc822Name(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_IA5String(FALSE, tvb, offset, pinfo, tree, hf_x509ce_rfc822Name);
+}
+static int dissect_dNSName(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_IA5String(FALSE, tvb, offset, pinfo, tree, hf_x509ce_dNSName);
+}
+static int dissect_uniformResourceIdentifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_IA5String(FALSE, tvb, offset, pinfo, tree, hf_x509ce_uniformResourceIdentifier);
+}
+
+
+static int
+dissect_x509ce_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_iPAddress(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_OCTET_STRING(FALSE, tvb, offset, pinfo, tree, hf_x509ce_iPAddress);
+}
+
+
+static int
+dissect_x509ce_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset,
+ hf_index, NULL);
+
+ return offset;
+}
+static int dissect_registeredID(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_x509ce_registeredID);
+}
+
+
+static const value_string GeneralName_vals[] = {
+ { 1, "rfc822Name" },
+ { 2, "dNSName" },
+ { 6, "uniformResourceIdentifier" },
+ { 7, "iPAddress" },
+ { 8, "registeredID" },
+ { 0, NULL }
+};
+
+static ber_choice GeneralName_choice[] = {
+ { 1, BER_CLASS_CON, 1, 0, dissect_rfc822Name },
+ { 2, BER_CLASS_CON, 2, 0, dissect_dNSName },
+ { 6, BER_CLASS_CON, 6, 0, dissect_uniformResourceIdentifier },
+ { 7, BER_CLASS_CON, 7, 0, dissect_iPAddress },
+ { 8, BER_CLASS_CON, 8, 0, dissect_registeredID },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_x509ce_GeneralName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ GeneralName_choice, hf_index, ett_x509ce_GeneralName);
+
+ return offset;
+}
+static int dissect_GeneralNames_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_GeneralName(FALSE, tvb, offset, pinfo, tree, hf_x509ce_GeneralNames_item);
+}
+static int dissect_base(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_GeneralName(FALSE, tvb, offset, pinfo, tree, hf_x509ce_base);
+}
+static int dissect_authorityName(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_GeneralName(FALSE, tvb, offset, pinfo, tree, hf_x509ce_authorityName);
+}
+static int dissect_issuer(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_GeneralName(FALSE, tvb, offset, pinfo, tree, hf_x509ce_issuer);
+}
+static int dissect_location(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_GeneralName(FALSE, tvb, offset, pinfo, tree, hf_x509ce_location);
+}
+static int dissect_deltaLocation(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_GeneralName(FALSE, tvb, offset, pinfo, tree, hf_x509ce_deltaLocation);
+}
+
+static ber_sequence GeneralNames_sequence_of[1] = {
+ { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_GeneralNames_item },
+};
+
+int
+dissect_x509ce_GeneralNames(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ GeneralNames_sequence_of, hf_index, ett_x509ce_GeneralNames);
+
+ return offset;
+}
+static int dissect_authorityCertIssuer(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_GeneralNames(FALSE, tvb, offset, pinfo, tree, hf_x509ce_authorityCertIssuer);
+}
+static int dissect_nameSubtrees(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_GeneralNames(FALSE, tvb, offset, pinfo, tree, hf_x509ce_nameSubtrees);
+}
+static int dissect_cRLIssuer(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_GeneralNames(FALSE, tvb, offset, pinfo, tree, hf_x509ce_cRLIssuer);
+}
+static int dissect_fullName(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_GeneralNames(FALSE, tvb, offset, pinfo, tree, hf_x509ce_fullName);
+}
+
+static ber_sequence AuthorityKeyIdentifier_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_keyIdentifier },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_authorityCertIssuer },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_authorityCertSerialNumber },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_x509ce_AuthorityKeyIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ AuthorityKeyIdentifier_sequence, hf_index, ett_x509ce_AuthorityKeyIdentifier);
+
+ return offset;
+}
static int
@@ -164,6 +418,30 @@ dissect_x509ce_KeyUsage(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, pa
static int
+dissect_x509ce_KeyPurposeId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset,
+ hf_index, NULL);
+
+ return offset;
+}
+static int dissect_KeyPurposeIDs_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_KeyPurposeId(FALSE, tvb, offset, pinfo, tree, hf_x509ce_KeyPurposeIDs_item);
+}
+
+static ber_sequence KeyPurposeIDs_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_KeyPurposeIDs_item },
+};
+
+static int
+dissect_x509ce_KeyPurposeIDs(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ KeyPurposeIDs_sequence_of, hf_index, ett_x509ce_KeyPurposeIDs);
+
+ return offset;
+}
+
+
+static int
dissect_x509ce_GeneralizedTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
offset = dissect_ber_generalized_time(pinfo, tree, tvb, offset, hf_index);
@@ -175,6 +453,21 @@ static int dissect_notBefore(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb
static int dissect_notAfter(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
return dissect_x509ce_GeneralizedTime(FALSE, tvb, offset, pinfo, tree, hf_x509ce_notAfter);
}
+static int dissect_baseThisUpdate(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_GeneralizedTime(FALSE, tvb, offset, pinfo, tree, hf_x509ce_baseThisUpdate);
+}
+static int dissect_lastUpdate(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_GeneralizedTime(FALSE, tvb, offset, pinfo, tree, hf_x509ce_lastUpdate);
+}
+static int dissect_lastChangedCRL(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_GeneralizedTime(FALSE, tvb, offset, pinfo, tree, hf_x509ce_lastChangedCRL);
+}
+static int dissect_lastDelta(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_GeneralizedTime(FALSE, tvb, offset, pinfo, tree, hf_x509ce_lastDelta);
+}
+static int dissect_nextDelta(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_GeneralizedTime(FALSE, tvb, offset, pinfo, tree, hf_x509ce_nextDelta);
+}
static ber_sequence PrivateKeyUsagePeriod_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_notBefore },
@@ -192,85 +485,106 @@ dissect_x509ce_PrivateKeyUsagePeriod(gboolean implicit_tag _U_, tvbuff_t *tvb, i
static int
-dissect_x509ce_IA5String(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
- offset = dissect_ber_restricted_string(implicit_tag, 1,
- pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_x509ce_CertPolicyId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset,
+ hf_index, NULL);
return offset;
}
-static int dissect_rfc822Name(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_x509ce_IA5String(FALSE, tvb, offset, pinfo, tree, hf_x509ce_rfc822Name);
+static int dissect_policyIdentifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_CertPolicyId(FALSE, tvb, offset, pinfo, tree, hf_x509ce_policyIdentifier);
}
-static int dissect_dNSName(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_x509ce_IA5String(FALSE, tvb, offset, pinfo, tree, hf_x509ce_dNSName);
+static int dissect_issuerDomainPolicy(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_CertPolicyId(FALSE, tvb, offset, pinfo, tree, hf_x509ce_issuerDomainPolicy);
}
-static int dissect_uniformResourceIdentifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_x509ce_IA5String(FALSE, tvb, offset, pinfo, tree, hf_x509ce_uniformResourceIdentifier);
+static int dissect_subjectDomainPolicy(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_CertPolicyId(FALSE, tvb, offset, pinfo, tree, hf_x509ce_subjectDomainPolicy);
}
+static ber_sequence PolicyQualifierInfo_sequence[] = {
+ { 0, 0, 0, NULL }
+};
static int
-dissect_x509ce_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_x509ce_PolicyQualifierInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ PolicyQualifierInfo_sequence, hf_index, ett_x509ce_PolicyQualifierInfo);
return offset;
}
-static int dissect_iPAddress(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_x509ce_OCTET_STRING(FALSE, tvb, offset, pinfo, tree, hf_x509ce_iPAddress);
+static int dissect_policyQualifiers_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_PolicyQualifierInfo(FALSE, tvb, offset, pinfo, tree, hf_x509ce_policyQualifiers_item);
}
+static ber_sequence SEQUNCE_OF_PolicyQualifierInfo_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_policyQualifiers_item },
+};
static int
-dissect_x509ce_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
- offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset,
- hf_index, NULL);
+dissect_x509ce_SEQUNCE_OF_PolicyQualifierInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ SEQUNCE_OF_PolicyQualifierInfo_sequence_of, hf_index, ett_x509ce_SEQUNCE_OF_PolicyQualifierInfo);
return offset;
}
-static int dissect_registeredID(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_x509ce_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_x509ce_registeredID);
+static int dissect_policyQualifiers(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_SEQUNCE_OF_PolicyQualifierInfo(FALSE, tvb, offset, pinfo, tree, hf_x509ce_policyQualifiers);
}
+static ber_sequence PolicyInformation_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_policyIdentifier },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_policyQualifiers },
+ { 0, 0, 0, NULL }
+};
-static const value_string GeneralName_vals[] = {
- { 1, "rfc822Name" },
- { 2, "dNSName" },
- { 6, "uniformResourceIdentifier" },
- { 7, "iPAddress" },
- { 8, "registeredID" },
- { 0, NULL }
+static int
+dissect_x509ce_PolicyInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ PolicyInformation_sequence, hf_index, ett_x509ce_PolicyInformation);
+
+ return offset;
+}
+static int dissect_CertificatePoliciesSyntax_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_PolicyInformation(FALSE, tvb, offset, pinfo, tree, hf_x509ce_CertificatePoliciesSyntax_item);
+}
+
+static ber_sequence CertificatePoliciesSyntax_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_CertificatePoliciesSyntax_item },
};
-static ber_choice GeneralName_choice[] = {
- { 1, BER_CLASS_CON, 1, 0, dissect_rfc822Name },
- { 2, BER_CLASS_CON, 2, 0, dissect_dNSName },
- { 6, BER_CLASS_CON, 6, 0, dissect_uniformResourceIdentifier },
- { 7, BER_CLASS_CON, 7, 0, dissect_iPAddress },
- { 8, BER_CLASS_CON, 8, 0, dissect_registeredID },
- { 0, 0, 0, 0, NULL }
+static int
+dissect_x509ce_CertificatePoliciesSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ CertificatePoliciesSyntax_sequence_of, hf_index, ett_x509ce_CertificatePoliciesSyntax);
+
+ return offset;
+}
+
+static ber_sequence PolicyMappingsSyntax_item_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_issuerDomainPolicy },
+ { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_subjectDomainPolicy },
+ { 0, 0, 0, NULL }
};
static int
-dissect_x509ce_GeneralName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
- offset = dissect_ber_choice(pinfo, tree, tvb, offset,
- GeneralName_choice, hf_index, ett_x509ce_GeneralName);
+dissect_x509ce_PolicyMappingsSyntax_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ PolicyMappingsSyntax_item_sequence, hf_index, ett_x509ce_PolicyMappingsSyntax_item);
return offset;
}
-static int dissect_GeneralNames_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_x509ce_GeneralName(FALSE, tvb, offset, pinfo, tree, hf_x509ce_GeneralNames_item);
+static int dissect_PolicyMappingsSyntax_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_PolicyMappingsSyntax_item(FALSE, tvb, offset, pinfo, tree, hf_x509ce_PolicyMappingsSyntax_item);
}
-static ber_sequence GeneralNames_sequence_of[1] = {
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_GeneralNames_item },
+static ber_sequence PolicyMappingsSyntax_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_PolicyMappingsSyntax_item },
};
-int
-dissect_x509ce_GeneralNames(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+static int
+dissect_x509ce_PolicyMappingsSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- GeneralNames_sequence_of, hf_index, ett_x509ce_GeneralNames);
+ PolicyMappingsSyntax_sequence_of, hf_index, ett_x509ce_PolicyMappingsSyntax);
return offset;
}
@@ -297,6 +611,24 @@ dissect_x509ce_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, pac
static int dissect_cA(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
return dissect_x509ce_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_x509ce_cA);
}
+static int dissect_containsUserPublicKeyCerts(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_x509ce_containsUserPublicKeyCerts);
+}
+static int dissect_containsCACerts(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_x509ce_containsCACerts);
+}
+static int dissect_indirectCRL(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_x509ce_indirectCRL);
+}
+static int dissect_containsUserAttributeCerts(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_x509ce_containsUserAttributeCerts);
+}
+static int dissect_containsAACerts(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_x509ce_containsAACerts);
+}
+static int dissect_containsSOAPublicKeyCerts(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_x509ce_containsSOAPublicKeyCerts);
+}
@@ -309,6 +641,15 @@ dissect_x509ce_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, pac
static int dissect_pathLenConstraint(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
return dissect_x509ce_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_x509ce_pathLenConstraint);
}
+static int dissect_startingNumber(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_x509ce_startingNumber);
+}
+static int dissect_endingNumber(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_x509ce_endingNumber);
+}
+static int dissect_modulus(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_x509ce_modulus);
+}
static ber_sequence BasicConstraintsSyntax_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cA },
@@ -327,11 +668,108 @@ dissect_x509ce_BasicConstraintsSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb,
static int
+dissect_x509ce_BaseDistance(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_integer(pinfo, tree, tvb, offset, hf_index, NULL);
+
+ return offset;
+}
+static int dissect_minimum(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_BaseDistance(FALSE, tvb, offset, pinfo, tree, hf_x509ce_minimum);
+}
+static int dissect_maximum(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_BaseDistance(FALSE, tvb, offset, pinfo, tree, hf_x509ce_maximum);
+}
+
+static ber_sequence GeneralSubtree_sequence[] = {
+ { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_base },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_minimum },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_maximum },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_x509ce_GeneralSubtree(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ GeneralSubtree_sequence, hf_index, ett_x509ce_GeneralSubtree);
+
+ return offset;
+}
+static int dissect_GeneralSubtrees_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_GeneralSubtree(FALSE, tvb, offset, pinfo, tree, hf_x509ce_GeneralSubtrees_item);
+}
+
+static ber_sequence GeneralSubtrees_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_GeneralSubtrees_item },
+};
+
+static int
+dissect_x509ce_GeneralSubtrees(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ GeneralSubtrees_sequence_of, hf_index, ett_x509ce_GeneralSubtrees);
+
+ return offset;
+}
+static int dissect_permittedSubtrees(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_GeneralSubtrees(FALSE, tvb, offset, pinfo, tree, hf_x509ce_permittedSubtrees);
+}
+static int dissect_excludedSubtrees(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_GeneralSubtrees(FALSE, tvb, offset, pinfo, tree, hf_x509ce_excludedSubtrees);
+}
+
+static ber_sequence NameConstraintsSyntax_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_permittedSubtrees },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_excludedSubtrees },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_x509ce_NameConstraintsSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ NameConstraintsSyntax_sequence, hf_index, ett_x509ce_NameConstraintsSyntax);
+
+ return offset;
+}
+
+
+
+static int
+dissect_x509ce_SkipCerts(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_integer(pinfo, tree, tvb, offset, hf_index, NULL);
+
+ return offset;
+}
+static int dissect_requireExplicitPolicy(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_SkipCerts(FALSE, tvb, offset, pinfo, tree, hf_x509ce_requireExplicitPolicy);
+}
+static int dissect_inhibitPolicyMapping(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_SkipCerts(FALSE, tvb, offset, pinfo, tree, hf_x509ce_inhibitPolicyMapping);
+}
+
+static ber_sequence PolicyConstraintsSyntax_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_requireExplicitPolicy },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_inhibitPolicyMapping },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_x509ce_PolicyConstraintsSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ PolicyConstraintsSyntax_sequence, hf_index, ett_x509ce_PolicyConstraintsSyntax);
+
+ return offset;
+}
+
+
+
+static int
dissect_x509ce_CRLNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
offset = dissect_ber_integer(pinfo, tree, tvb, offset, hf_index, NULL);
return offset;
}
+static int dissect_cRLNumber(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_CRLNumber(FALSE, tvb, offset, pinfo, tree, hf_x509ce_cRLNumber);
+}
static const value_string CRLReason_vals[] = {
@@ -357,6 +795,336 @@ dissect_x509ce_CRLReason(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, p
}
+static int
+dissect_x509ce_HoldInstruction(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset,
+ hf_index, NULL);
+
+ return offset;
+}
+
+
+static const value_string DistributionPointName_vals[] = {
+ { 0, "fullName" },
+ { 1, "nameRelativeToCRLIssuer" },
+ { 0, NULL }
+};
+
+static ber_choice DistributionPointName_choice[] = {
+ { 0, BER_CLASS_CON, 0, 0, dissect_fullName },
+ { 1, BER_CLASS_CON, 1, 0, dissect_nameRelativeToCRLIssuer },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_x509ce_DistributionPointName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ DistributionPointName_choice, hf_index, ett_x509ce_DistributionPointName);
+
+ return offset;
+}
+static int dissect_distributionPoint(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_DistributionPointName(FALSE, tvb, offset, pinfo, tree, hf_x509ce_distributionPoint);
+}
+
+static asn_namedbit OnlyCertificateTypes_bits[] = {
+ { 0, &hf_x509ce_OnlyCertificateTypes_userPublicKey, -1, -1, NULL, NULL },
+ { 1, &hf_x509ce_OnlyCertificateTypes_cA, -1, -1, NULL, NULL },
+ { 2, &hf_x509ce_OnlyCertificateTypes_userAttribute, -1, -1, NULL, NULL },
+ { 3, &hf_x509ce_OnlyCertificateTypes_aA, -1, -1, NULL, NULL },
+ { 4, &hf_x509ce_OnlyCertificateTypes_sOAPublicKey, -1, -1, NULL, NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_x509ce_OnlyCertificateTypes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
+ OnlyCertificateTypes_bits, hf_index, ett_x509ce_OnlyCertificateTypes,
+ NULL);
+
+ return offset;
+}
+static int dissect_onlyContains(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_OnlyCertificateTypes(FALSE, tvb, offset, pinfo, tree, hf_x509ce_onlyContains);
+}
+
+static asn_namedbit ReasonFlags_bits[] = {
+ { 0, &hf_x509ce_ReasonFlags_unused, -1, -1, NULL, NULL },
+ { 1, &hf_x509ce_ReasonFlags_keyCompromise, -1, -1, NULL, NULL },
+ { 2, &hf_x509ce_ReasonFlags_cACompromise, -1, -1, NULL, NULL },
+ { 3, &hf_x509ce_ReasonFlags_affiliationChanged, -1, -1, NULL, NULL },
+ { 4, &hf_x509ce_ReasonFlags_superseded, -1, -1, NULL, NULL },
+ { 5, &hf_x509ce_ReasonFlags_cessationOfOperation, -1, -1, NULL, NULL },
+ { 6, &hf_x509ce_ReasonFlags_certificateHold, -1, -1, NULL, NULL },
+ { 7, &hf_x509ce_ReasonFlags_privilegeWithdrawn, -1, -1, NULL, NULL },
+ { 8, &hf_x509ce_ReasonFlags_aACompromise, -1, -1, NULL, NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_x509ce_ReasonFlags(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
+ ReasonFlags_bits, hf_index, ett_x509ce_ReasonFlags,
+ NULL);
+
+ return offset;
+}
+static int dissect_onlySomeReasons(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_ReasonFlags(FALSE, tvb, offset, pinfo, tree, hf_x509ce_onlySomeReasons);
+}
+static int dissect_reasons(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_ReasonFlags(FALSE, tvb, offset, pinfo, tree, hf_x509ce_reasons);
+}
+
+static ber_sequence NumberRange_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_startingNumber },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_endingNumber },
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_modulus },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_x509ce_NumberRange(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ NumberRange_sequence, hf_index, ett_x509ce_NumberRange);
+
+ return offset;
+}
+static int dissect_serialNumberRange(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_NumberRange(FALSE, tvb, offset, pinfo, tree, hf_x509ce_serialNumberRange);
+}
+static int dissect_subjectKeyIdRange(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_NumberRange(FALSE, tvb, offset, pinfo, tree, hf_x509ce_subjectKeyIdRange);
+}
+
+
+
+static int
+dissect_x509ce_CRLStreamIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_integer(pinfo, tree, tvb, offset, hf_index, NULL);
+
+ return offset;
+}
+static int dissect_cRLStreamIdentifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_CRLStreamIdentifier(FALSE, tvb, offset, pinfo, tree, hf_x509ce_cRLStreamIdentifier);
+}
+
+static ber_sequence BaseRevocationInfo_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_cRLStreamIdentifier },
+ { BER_CLASS_CON, 1, 0, dissect_cRLNumber },
+ { BER_CLASS_CON, 2, 0, dissect_baseThisUpdate },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_x509ce_BaseRevocationInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ BaseRevocationInfo_sequence, hf_index, ett_x509ce_BaseRevocationInfo);
+
+ return offset;
+}
+static int dissect_baseRevocationInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_BaseRevocationInfo(FALSE, tvb, offset, pinfo, tree, hf_x509ce_baseRevocationInfo);
+}
+
+static ber_sequence PerAuthorityScope_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_authorityName },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_distributionPoint },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_onlyContains },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_onlySomeReasons },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_serialNumberRange },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_subjectKeyIdRange },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_nameSubtrees },
+ { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_baseRevocationInfo },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_x509ce_PerAuthorityScope(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ PerAuthorityScope_sequence, hf_index, ett_x509ce_PerAuthorityScope);
+
+ return offset;
+}
+static int dissect_CRLScopeSyntax_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_PerAuthorityScope(FALSE, tvb, offset, pinfo, tree, hf_x509ce_CRLScopeSyntax_item);
+}
+
+static ber_sequence CRLScopeSyntax_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_CRLScopeSyntax_item },
+};
+
+static int
+dissect_x509ce_CRLScopeSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ CRLScopeSyntax_sequence_of, hf_index, ett_x509ce_CRLScopeSyntax);
+
+ return offset;
+}
+static int dissect_cRLScope(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_CRLScopeSyntax(FALSE, tvb, offset, pinfo, tree, hf_x509ce_cRLScope);
+}
+
+static ber_sequence DeltaRefInfo_sequence[] = {
+ { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_deltaLocation },
+ { BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_lastDelta },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_x509ce_DeltaRefInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ DeltaRefInfo_sequence, hf_index, ett_x509ce_DeltaRefInfo);
+
+ return offset;
+}
+static int dissect_deltaRefInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_DeltaRefInfo(FALSE, tvb, offset, pinfo, tree, hf_x509ce_deltaRefInfo);
+}
+
+static ber_sequence CRLReferral_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_issuer },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_location },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_deltaRefInfo },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_cRLScope },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_lastUpdate },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_lastChangedCRL },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_x509ce_CRLReferral(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ CRLReferral_sequence, hf_index, ett_x509ce_CRLReferral);
+
+ return offset;
+}
+static int dissect_cRLReferral(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_CRLReferral(FALSE, tvb, offset, pinfo, tree, hf_x509ce_cRLReferral);
+}
+
+
+static const value_string StatusReferral_vals[] = {
+ { 0, "cRLReferral" },
+ { 0, NULL }
+};
+
+static ber_choice StatusReferral_choice[] = {
+ { 0, BER_CLASS_CON, 0, 0, dissect_cRLReferral },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_x509ce_StatusReferral(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ StatusReferral_choice, hf_index, ett_x509ce_StatusReferral);
+
+ return offset;
+}
+static int dissect_StatusReferrals_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_StatusReferral(FALSE, tvb, offset, pinfo, tree, hf_x509ce_StatusReferrals_item);
+}
+
+static ber_sequence StatusReferrals_sequence_of[1] = {
+ { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_StatusReferrals_item },
+};
+
+static int
+dissect_x509ce_StatusReferrals(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ StatusReferrals_sequence_of, hf_index, ett_x509ce_StatusReferrals);
+
+ return offset;
+}
+
+
+static const value_string OrderedListSyntax_vals[] = {
+ { 0, "ascSerialNum" },
+ { 1, "ascRevDate" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_x509ce_OrderedListSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_integer(pinfo, tree, tvb, offset, hf_index, NULL);
+
+ return offset;
+}
+
+static ber_sequence DeltaInformation_sequence[] = {
+ { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_deltaLocation },
+ { BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_nextDelta },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_x509ce_DeltaInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ DeltaInformation_sequence, hf_index, ett_x509ce_DeltaInformation);
+
+ return offset;
+}
+
+static ber_sequence DistributionPoint_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_distributionPoint },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_reasons },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_cRLIssuer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_x509ce_DistributionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ DistributionPoint_sequence, hf_index, ett_x509ce_DistributionPoint);
+
+ return offset;
+}
+static int dissect_CRLDistPointsSyntax_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_DistributionPoint(FALSE, tvb, offset, pinfo, tree, hf_x509ce_CRLDistPointsSyntax_item);
+}
+
+static ber_sequence CRLDistPointsSyntax_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_CRLDistPointsSyntax_item },
+};
+
+static int
+dissect_x509ce_CRLDistPointsSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ CRLDistPointsSyntax_sequence_of, hf_index, ett_x509ce_CRLDistPointsSyntax);
+
+ return offset;
+}
+
+static ber_sequence IssuingDistPointSyntax_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_distributionPoint },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_containsUserPublicKeyCerts },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_containsCACerts },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_onlySomeReasons },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_indirectCRL },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_containsUserAttributeCerts },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_containsAACerts },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_containsSOAPublicKeyCerts },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_x509ce_IssuingDistPointSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ IssuingDistPointSyntax_sequence, hf_index, ett_x509ce_IssuingDistPointSyntax);
+
+ return offset;
+}
+
+
+static int
+dissect_x509ce_BaseCRLNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_x509ce_CRLNumber(implicit_tag, tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+
+
/*--- End of included file: packet-x509ce-fn.c ---*/
@@ -415,11 +1183,211 @@ dissect_x509ce_reasonCode_callback(tvbuff_t *tvb, packet_info *pinfo, proto_tree
dissect_x509ce_CRLReason(FALSE, tvb, 0, pinfo, tree, hf_x509ce_id_ce_reasonCode);
}
+static void
+dissect_x509ce_instructionCode_callback(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ dissect_x509ce_HoldInstruction(FALSE, tvb, 0, pinfo, tree, hf_x509ce_id_ce_instructionCode);
+}
+
+static void
+dissect_x509ce_invalidityDate_callback(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ dissect_x509ce_GeneralizedTime(FALSE, tvb, 0, pinfo, tree, hf_x509ce_id_ce_invalidityDate);
+}
+
+static void
+dissect_x509ce_deltaCRLIndicator_callback(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ dissect_x509ce_BaseCRLNumber(FALSE, tvb, 0, pinfo, tree, hf_x509ce_id_ce_deltaCRLIndicator);
+}
+
+static void
+dissect_x509ce_issuingDistributionPoint_callback(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ dissect_x509ce_IssuingDistPointSyntax(FALSE, tvb, 0, pinfo, tree, hf_x509ce_id_ce_issuingDistributionPoint);
+}
+
+static void
+dissect_x509ce_certificateIssuer_callback(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ dissect_x509ce_GeneralNames(FALSE, tvb, 0, pinfo, tree, hf_x509ce_id_ce_certificateIssuer);
+}
+
+static void
+dissect_x509ce_nameConstraints_callback(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ dissect_x509ce_NameConstraintsSyntax(FALSE, tvb, 0, pinfo, tree, hf_x509ce_id_ce_nameConstraints);
+}
+
+static void
+dissect_x509ce_cRLDistributionPoints_callback(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ dissect_x509ce_CRLDistPointsSyntax(FALSE, tvb, 0, pinfo, tree, hf_x509ce_id_ce_cRLDistributionPoints);
+}
+
+static void
+dissect_x509ce_certificatePolicies_callback(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ dissect_x509ce_CertificatePoliciesSyntax(FALSE, tvb, 0, pinfo, tree, hf_x509ce_id_ce_certificatePolicies);
+}
+
+static void
+dissect_x509ce_policyMappings_callback(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ dissect_x509ce_PolicyMappingsSyntax(FALSE, tvb, 0, pinfo, tree, hf_x509ce_id_ce_policyMappings);
+}
+
+static void
+dissect_x509ce_authorityKeyIdentifier_callback(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ dissect_x509ce_AuthorityKeyIdentifier(FALSE, tvb, 0, pinfo, tree, hf_x509ce_id_ce_authorityKeyIdentifier);
+}
+
+static void
+dissect_x509ce_policyConstraints_callback(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ dissect_x509ce_PolicyConstraintsSyntax(FALSE, tvb, 0, pinfo, tree, hf_x509ce_id_ce_policyConstraints);
+}
+
+static void
+dissect_x509ce_extKeyUsage_callback(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ dissect_x509ce_KeyPurposeIDs(FALSE, tvb, 0, pinfo, tree, hf_x509ce_id_ce_extKeyUsage);
+}
+
+static void
+dissect_x509ce_cRLStreamIdentifier_callback(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ dissect_x509ce_CRLStreamIdentifier(FALSE, tvb, 0, pinfo, tree, hf_x509ce_id_ce_cRLStreamIdentifier);
+}
+
+static void
+dissect_x509ce_cRLScope_callback(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ dissect_x509ce_CRLScopeSyntax(FALSE, tvb, 0, pinfo, tree, hf_x509ce_id_ce_cRLScope);
+}
+
+static void
+dissect_x509ce_statusReferrals_callback(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ dissect_x509ce_StatusReferrals(FALSE, tvb, 0, pinfo, tree, hf_x509ce_id_ce_statusReferrals);
+}
+
+static void
+dissect_x509ce_freshestCRL_callback(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ dissect_x509ce_CRLDistPointsSyntax(FALSE, tvb, 0, pinfo, tree, hf_x509ce_id_ce_freshestCRL);
+}
+
+static void
+dissect_x509ce_orderedList_callback(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ dissect_x509ce_OrderedListSyntax(FALSE, tvb, 0, pinfo, tree, hf_x509ce_id_ce_orderedList);
+}
+
+static void
+dissect_x509ce_baseUpdateTime_callback(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ dissect_x509ce_GeneralizedTime(FALSE, tvb, 0, pinfo, tree, hf_x509ce_id_ce_baseUpdateTime);
+}
+
+static void
+dissect_x509ce_deltaInfo_callback(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ dissect_x509ce_DeltaInformation(FALSE, tvb, 0, pinfo, tree, hf_x509ce_id_ce_deltaInfo);
+}
+
+static void
+dissect_x509ce_inhibitAnyPolicy_callback(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ dissect_x509ce_SkipCerts(FALSE, tvb, 0, pinfo, tree, hf_x509ce_id_ce_inhibitAnyPolicy);
+}
+
/*--- proto_register_x509ce ----------------------------------------------*/
void proto_register_x509ce(void) {
/* List of fields */
static hf_register_info hf[] = {
+ { &hf_x509ce_id_ce_inhibitAnyPolicy,
+ { "inhibitAnyPolicy", "x509ce.id_ce_inhibitAnyPolicy",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "inhibitAnyPolicy", HFILL }},
+ { &hf_x509ce_id_ce_deltaInfo,
+ { "deltaInfo", "x509ce.id_ce_deltaInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "deltaInfo", HFILL }},
+ { &hf_x509ce_id_ce_baseUpdateTime,
+ { "baseUpdateTime", "x509ce.id_ce_baseUpdateTime",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "baseUpdateTime", HFILL }},
+ { &hf_x509ce_id_ce_orderedList,
+ { "orderedList", "x509ce.id_ce_orderedList",
+ FT_UINT32, BASE_DEC, VALS(OrderedListSyntax_vals), 0,
+ "orderedList", HFILL }},
+ { &hf_x509ce_id_ce_freshestCRL,
+ { "freshestCRL", "x509ce.id_ce_freshestCRL",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "freshestCRL", HFILL }},
+ { &hf_x509ce_id_ce_statusReferrals,
+ { "statusReferrals", "x509ce.id_ce_statusReferrals",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "statusReferrals", HFILL }},
+ { &hf_x509ce_id_ce_cRLScope,
+ { "cRLScope", "x509ce.id_ce_cRLScope",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "cRLScope", HFILL }},
+ { &hf_x509ce_id_ce_cRLStreamIdentifier,
+ { "cRLStreamIdentifier", "x509ce.id_ce_cRLStreamIdentifier",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "cRLStreamIdentifier", HFILL }},
+ { &hf_x509ce_id_ce_extKeyUsage,
+ { "extKeyUsage", "x509ce.id_ce_extKeyUsage",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "extKeyUsage", HFILL }},
+ { &hf_x509ce_id_ce_policyConstraints,
+ { "policyConstraints", "x509ce.id_ce_policyConstraints",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "policyConstraints", HFILL }},
+ { &hf_x509ce_id_ce_authorityKeyIdentifier,
+ { "authorityKeyIdentifier", "x509ce.id_ce_authorityKeyIdentifier",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "authorityKeyIdentifier", HFILL }},
+ { &hf_x509ce_id_ce_policyMappings,
+ { "policyMappings", "x509ce.id_ce_policyMappings",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "policyMappings", HFILL }},
+ { &hf_x509ce_id_ce_certificatePolicies,
+ { "certificatePolicies", "x509ce.id_ce_certificatePolicies",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "certificatePolicies", HFILL }},
+ { &hf_x509ce_id_ce_cRLDistributionPoints,
+ { "cRLDistributionPoints", "x509ce.id_ce_cRLDistributionPoints",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "cRLDistributionPoints", HFILL }},
+ { &hf_x509ce_id_ce_nameConstraints,
+ { "nameConstraints", "x509ce.id_ce_nameConstraints",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "nameConstraints", HFILL }},
+ { &hf_x509ce_id_ce_certificateIssuer,
+ { "certificateIssuer", "x509ce.id_ce_certificateIssuer",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "certificateIssuer", HFILL }},
+ { &hf_x509ce_id_ce_issuingDistributionPoint,
+ { "issuingDistributionPoint", "x509ce.id_ce_issuingDistributionPoint",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "issuingDistributionPoint", HFILL }},
+ { &hf_x509ce_id_ce_deltaCRLIndicator,
+ { "deltaCRLIndicator", "x509ce.id_ce_deltaCRLIndicator",
+ FT_UINT32, BASE_DEC, VALS(CRLReason_vals), 0,
+ "deltaCRLIndicator", HFILL }},
+ { &hf_x509ce_id_ce_invalidityDate,
+ { "invalidityDate", "x509ce.id_ce_invalidityDate",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "invalidityDate", HFILL }},
+ { &hf_x509ce_id_ce_instructionCode,
+ { "instructionCode", "x509ce.id_ce_instructionCode",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "instructionCode", HFILL }},
{ &hf_x509ce_id_ce_reasonCode,
{ "reasonCode", "x509ce.id_ce_reasonCode",
FT_UINT32, BASE_DEC, VALS(CRLReason_vals), 0,
@@ -450,7 +1418,7 @@ void proto_register_x509ce(void) {
"subjectDirectoryAttributes", HFILL }},
{ &hf_x509ce_id_ce_subjectKeyIdentifier,
{ "subjectKeyIdentifier", "x509ce.id_ce_subjectKeyIdentifier",
- FT_STRING, BASE_NONE, NULL, 0,
+ FT_BYTES, BASE_HEX, NULL, 0,
"subjectKeyIdentifier", HFILL }},
{ &hf_x509ce_id_ce_keyUsage,
{ "keyUsage", "x509ce.id_ce_keyUsage",
@@ -464,6 +1432,22 @@ void proto_register_x509ce(void) {
/* packet-x509ce-hfarr.c */
/* ../../tools/asn2eth.py -X -b -p x509ce -c x509ce.cnf -s packet-x509ce-template CertificateExtensions.asn */
+ { &hf_x509ce_keyIdentifier,
+ { "keyIdentifier", "x509ce.keyIdentifier",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "AuthorityKeyIdentifier/keyIdentifier", HFILL }},
+ { &hf_x509ce_authorityCertIssuer,
+ { "authorityCertIssuer", "x509ce.authorityCertIssuer",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "AuthorityKeyIdentifier/authorityCertIssuer", HFILL }},
+ { &hf_x509ce_authorityCertSerialNumber,
+ { "authorityCertSerialNumber", "x509ce.authorityCertSerialNumber",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "AuthorityKeyIdentifier/authorityCertSerialNumber", HFILL }},
+ { &hf_x509ce_KeyPurposeIDs_item,
+ { "Item[##]", "x509ce.KeyPurposeIDs_item",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "KeyPurposeIDs/_item", HFILL }},
{ &hf_x509ce_notBefore,
{ "notBefore", "x509ce.notBefore",
FT_STRING, BASE_NONE, NULL, 0,
@@ -472,6 +1456,34 @@ void proto_register_x509ce(void) {
{ "notAfter", "x509ce.notAfter",
FT_STRING, BASE_NONE, NULL, 0,
"PrivateKeyUsagePeriod/notAfter", HFILL }},
+ { &hf_x509ce_CertificatePoliciesSyntax_item,
+ { "Item[##]", "x509ce.CertificatePoliciesSyntax_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "CertificatePoliciesSyntax/_item", HFILL }},
+ { &hf_x509ce_policyIdentifier,
+ { "policyIdentifier", "x509ce.policyIdentifier",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "PolicyInformation/policyIdentifier", HFILL }},
+ { &hf_x509ce_policyQualifiers,
+ { "policyQualifiers", "x509ce.policyQualifiers",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "PolicyInformation/policyQualifiers", HFILL }},
+ { &hf_x509ce_policyQualifiers_item,
+ { "Item[##]", "x509ce.policyQualifiers_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "PolicyInformation/policyQualifiers/_item", HFILL }},
+ { &hf_x509ce_PolicyMappingsSyntax_item,
+ { "Item[##]", "x509ce.PolicyMappingsSyntax_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "PolicyMappingsSyntax/_item", HFILL }},
+ { &hf_x509ce_issuerDomainPolicy,
+ { "issuerDomainPolicy", "x509ce.issuerDomainPolicy",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "PolicyMappingsSyntax/_item/issuerDomainPolicy", HFILL }},
+ { &hf_x509ce_subjectDomainPolicy,
+ { "subjectDomainPolicy", "x509ce.subjectDomainPolicy",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "PolicyMappingsSyntax/_item/subjectDomainPolicy", HFILL }},
{ &hf_x509ce_GeneralNames_item,
{ "Item[##]", "x509ce.GeneralNames_item",
FT_UINT32, BASE_DEC, VALS(GeneralName_vals), 0,
@@ -508,6 +1520,186 @@ void proto_register_x509ce(void) {
{ "pathLenConstraint", "x509ce.pathLenConstraint",
FT_INT32, BASE_DEC, NULL, 0,
"BasicConstraintsSyntax/pathLenConstraint", HFILL }},
+ { &hf_x509ce_permittedSubtrees,
+ { "permittedSubtrees", "x509ce.permittedSubtrees",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "NameConstraintsSyntax/permittedSubtrees", HFILL }},
+ { &hf_x509ce_excludedSubtrees,
+ { "excludedSubtrees", "x509ce.excludedSubtrees",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "NameConstraintsSyntax/excludedSubtrees", HFILL }},
+ { &hf_x509ce_GeneralSubtrees_item,
+ { "Item[##]", "x509ce.GeneralSubtrees_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "GeneralSubtrees/_item", HFILL }},
+ { &hf_x509ce_base,
+ { "base", "x509ce.base",
+ FT_UINT32, BASE_DEC, VALS(GeneralName_vals), 0,
+ "GeneralSubtree/base", HFILL }},
+ { &hf_x509ce_minimum,
+ { "minimum", "x509ce.minimum",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "GeneralSubtree/minimum", HFILL }},
+ { &hf_x509ce_maximum,
+ { "maximum", "x509ce.maximum",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "GeneralSubtree/maximum", HFILL }},
+ { &hf_x509ce_requireExplicitPolicy,
+ { "requireExplicitPolicy", "x509ce.requireExplicitPolicy",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "PolicyConstraintsSyntax/requireExplicitPolicy", HFILL }},
+ { &hf_x509ce_inhibitPolicyMapping,
+ { "inhibitPolicyMapping", "x509ce.inhibitPolicyMapping",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "PolicyConstraintsSyntax/inhibitPolicyMapping", HFILL }},
+ { &hf_x509ce_CRLScopeSyntax_item,
+ { "Item[##]", "x509ce.CRLScopeSyntax_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "CRLScopeSyntax/_item", HFILL }},
+ { &hf_x509ce_authorityName,
+ { "authorityName", "x509ce.authorityName",
+ FT_UINT32, BASE_DEC, VALS(GeneralName_vals), 0,
+ "PerAuthorityScope/authorityName", HFILL }},
+ { &hf_x509ce_distributionPoint,
+ { "distributionPoint", "x509ce.distributionPoint",
+ FT_UINT32, BASE_DEC, VALS(DistributionPointName_vals), 0,
+ "", HFILL }},
+ { &hf_x509ce_onlyContains,
+ { "onlyContains", "x509ce.onlyContains",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "PerAuthorityScope/onlyContains", HFILL }},
+ { &hf_x509ce_onlySomeReasons,
+ { "onlySomeReasons", "x509ce.onlySomeReasons",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "", HFILL }},
+ { &hf_x509ce_serialNumberRange,
+ { "serialNumberRange", "x509ce.serialNumberRange",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "PerAuthorityScope/serialNumberRange", HFILL }},
+ { &hf_x509ce_subjectKeyIdRange,
+ { "subjectKeyIdRange", "x509ce.subjectKeyIdRange",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "PerAuthorityScope/subjectKeyIdRange", HFILL }},
+ { &hf_x509ce_nameSubtrees,
+ { "nameSubtrees", "x509ce.nameSubtrees",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "PerAuthorityScope/nameSubtrees", HFILL }},
+ { &hf_x509ce_baseRevocationInfo,
+ { "baseRevocationInfo", "x509ce.baseRevocationInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "PerAuthorityScope/baseRevocationInfo", HFILL }},
+ { &hf_x509ce_startingNumber,
+ { "startingNumber", "x509ce.startingNumber",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "NumberRange/startingNumber", HFILL }},
+ { &hf_x509ce_endingNumber,
+ { "endingNumber", "x509ce.endingNumber",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "NumberRange/endingNumber", HFILL }},
+ { &hf_x509ce_modulus,
+ { "modulus", "x509ce.modulus",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "NumberRange/modulus", HFILL }},
+ { &hf_x509ce_cRLStreamIdentifier,
+ { "cRLStreamIdentifier", "x509ce.cRLStreamIdentifier",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "BaseRevocationInfo/cRLStreamIdentifier", HFILL }},
+ { &hf_x509ce_cRLNumber,
+ { "cRLNumber", "x509ce.cRLNumber",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "BaseRevocationInfo/cRLNumber", HFILL }},
+ { &hf_x509ce_baseThisUpdate,
+ { "baseThisUpdate", "x509ce.baseThisUpdate",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "BaseRevocationInfo/baseThisUpdate", HFILL }},
+ { &hf_x509ce_StatusReferrals_item,
+ { "Item[##]", "x509ce.StatusReferrals_item",
+ FT_UINT32, BASE_DEC, VALS(StatusReferral_vals), 0,
+ "StatusReferrals/_item", HFILL }},
+ { &hf_x509ce_cRLReferral,
+ { "cRLReferral", "x509ce.cRLReferral",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "StatusReferral/cRLReferral", HFILL }},
+ { &hf_x509ce_issuer,
+ { "issuer", "x509ce.issuer",
+ FT_UINT32, BASE_DEC, VALS(GeneralName_vals), 0,
+ "CRLReferral/issuer", HFILL }},
+ { &hf_x509ce_location,
+ { "location", "x509ce.location",
+ FT_UINT32, BASE_DEC, VALS(GeneralName_vals), 0,
+ "CRLReferral/location", HFILL }},
+ { &hf_x509ce_deltaRefInfo,
+ { "deltaRefInfo", "x509ce.deltaRefInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "CRLReferral/deltaRefInfo", HFILL }},
+ { &hf_x509ce_cRLScope,
+ { "cRLScope", "x509ce.cRLScope",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "CRLReferral/cRLScope", HFILL }},
+ { &hf_x509ce_lastUpdate,
+ { "lastUpdate", "x509ce.lastUpdate",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "CRLReferral/lastUpdate", HFILL }},
+ { &hf_x509ce_lastChangedCRL,
+ { "lastChangedCRL", "x509ce.lastChangedCRL",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "CRLReferral/lastChangedCRL", HFILL }},
+ { &hf_x509ce_deltaLocation,
+ { "deltaLocation", "x509ce.deltaLocation",
+ FT_UINT32, BASE_DEC, VALS(GeneralName_vals), 0,
+ "", HFILL }},
+ { &hf_x509ce_lastDelta,
+ { "lastDelta", "x509ce.lastDelta",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "DeltaRefInfo/lastDelta", HFILL }},
+ { &hf_x509ce_nextDelta,
+ { "nextDelta", "x509ce.nextDelta",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "DeltaInformation/nextDelta", HFILL }},
+ { &hf_x509ce_CRLDistPointsSyntax_item,
+ { "Item[##]", "x509ce.CRLDistPointsSyntax_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "CRLDistPointsSyntax/_item", HFILL }},
+ { &hf_x509ce_reasons,
+ { "reasons", "x509ce.reasons",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "DistributionPoint/reasons", HFILL }},
+ { &hf_x509ce_cRLIssuer,
+ { "cRLIssuer", "x509ce.cRLIssuer",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "DistributionPoint/cRLIssuer", HFILL }},
+ { &hf_x509ce_fullName,
+ { "fullName", "x509ce.fullName",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "DistributionPointName/fullName", HFILL }},
+ { &hf_x509ce_nameRelativeToCRLIssuer,
+ { "nameRelativeToCRLIssuer", "x509ce.nameRelativeToCRLIssuer",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "DistributionPointName/nameRelativeToCRLIssuer", HFILL }},
+ { &hf_x509ce_containsUserPublicKeyCerts,
+ { "containsUserPublicKeyCerts", "x509ce.containsUserPublicKeyCerts",
+ FT_BOOLEAN, 8, NULL, 0,
+ "IssuingDistPointSyntax/containsUserPublicKeyCerts", HFILL }},
+ { &hf_x509ce_containsCACerts,
+ { "containsCACerts", "x509ce.containsCACerts",
+ FT_BOOLEAN, 8, NULL, 0,
+ "IssuingDistPointSyntax/containsCACerts", HFILL }},
+ { &hf_x509ce_indirectCRL,
+ { "indirectCRL", "x509ce.indirectCRL",
+ FT_BOOLEAN, 8, NULL, 0,
+ "IssuingDistPointSyntax/indirectCRL", HFILL }},
+ { &hf_x509ce_containsUserAttributeCerts,
+ { "containsUserAttributeCerts", "x509ce.containsUserAttributeCerts",
+ FT_BOOLEAN, 8, NULL, 0,
+ "IssuingDistPointSyntax/containsUserAttributeCerts", HFILL }},
+ { &hf_x509ce_containsAACerts,
+ { "containsAACerts", "x509ce.containsAACerts",
+ FT_BOOLEAN, 8, NULL, 0,
+ "IssuingDistPointSyntax/containsAACerts", HFILL }},
+ { &hf_x509ce_containsSOAPublicKeyCerts,
+ { "containsSOAPublicKeyCerts", "x509ce.containsSOAPublicKeyCerts",
+ FT_BOOLEAN, 8, NULL, 0,
+ "IssuingDistPointSyntax/containsSOAPublicKeyCerts", HFILL }},
{ &hf_x509ce_KeyUsage_digitalSignature,
{ "digitalSignature", "x509ce.digitalSignature",
FT_BOOLEAN, 8, NULL, 0x80,
@@ -544,6 +1736,62 @@ void proto_register_x509ce(void) {
{ "decipherOnly", "x509ce.decipherOnly",
FT_BOOLEAN, 8, NULL, 0x80,
"", HFILL }},
+ { &hf_x509ce_OnlyCertificateTypes_userPublicKey,
+ { "userPublicKey", "x509ce.userPublicKey",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ "", HFILL }},
+ { &hf_x509ce_OnlyCertificateTypes_cA,
+ { "cA", "x509ce.cA",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ "", HFILL }},
+ { &hf_x509ce_OnlyCertificateTypes_userAttribute,
+ { "userAttribute", "x509ce.userAttribute",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ "", HFILL }},
+ { &hf_x509ce_OnlyCertificateTypes_aA,
+ { "aA", "x509ce.aA",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ "", HFILL }},
+ { &hf_x509ce_OnlyCertificateTypes_sOAPublicKey,
+ { "sOAPublicKey", "x509ce.sOAPublicKey",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ "", HFILL }},
+ { &hf_x509ce_ReasonFlags_unused,
+ { "unused", "x509ce.unused",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ "", HFILL }},
+ { &hf_x509ce_ReasonFlags_keyCompromise,
+ { "keyCompromise", "x509ce.keyCompromise",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ "", HFILL }},
+ { &hf_x509ce_ReasonFlags_cACompromise,
+ { "cACompromise", "x509ce.cACompromise",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ "", HFILL }},
+ { &hf_x509ce_ReasonFlags_affiliationChanged,
+ { "affiliationChanged", "x509ce.affiliationChanged",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ "", HFILL }},
+ { &hf_x509ce_ReasonFlags_superseded,
+ { "superseded", "x509ce.superseded",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ "", HFILL }},
+ { &hf_x509ce_ReasonFlags_cessationOfOperation,
+ { "cessationOfOperation", "x509ce.cessationOfOperation",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ "", HFILL }},
+ { &hf_x509ce_ReasonFlags_certificateHold,
+ { "certificateHold", "x509ce.certificateHold",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ "", HFILL }},
+ { &hf_x509ce_ReasonFlags_privilegeWithdrawn,
+ { "privilegeWithdrawn", "x509ce.privilegeWithdrawn",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ "", HFILL }},
+ { &hf_x509ce_ReasonFlags_aACompromise,
+ { "aACompromise", "x509ce.aACompromise",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ "", HFILL }},
/*--- End of included file: packet-x509ce-hfarr.c ---*/
@@ -559,12 +1807,39 @@ void proto_register_x509ce(void) {
/* packet-x509ce-ettarr.c */
/* ../../tools/asn2eth.py -X -b -p x509ce -c x509ce.cnf -s packet-x509ce-template CertificateExtensions.asn */
+ &ett_x509ce_AuthorityKeyIdentifier,
&ett_x509ce_KeyUsage,
+ &ett_x509ce_KeyPurposeIDs,
&ett_x509ce_PrivateKeyUsagePeriod,
+ &ett_x509ce_CertificatePoliciesSyntax,
+ &ett_x509ce_PolicyInformation,
+ &ett_x509ce_SEQUNCE_OF_PolicyQualifierInfo,
+ &ett_x509ce_PolicyQualifierInfo,
+ &ett_x509ce_PolicyMappingsSyntax,
+ &ett_x509ce_PolicyMappingsSyntax_item,
&ett_x509ce_GeneralNames,
&ett_x509ce_GeneralName,
&ett_x509ce_AttributesSyntax,
&ett_x509ce_BasicConstraintsSyntax,
+ &ett_x509ce_NameConstraintsSyntax,
+ &ett_x509ce_GeneralSubtrees,
+ &ett_x509ce_GeneralSubtree,
+ &ett_x509ce_PolicyConstraintsSyntax,
+ &ett_x509ce_CRLScopeSyntax,
+ &ett_x509ce_PerAuthorityScope,
+ &ett_x509ce_OnlyCertificateTypes,
+ &ett_x509ce_NumberRange,
+ &ett_x509ce_BaseRevocationInfo,
+ &ett_x509ce_StatusReferrals,
+ &ett_x509ce_StatusReferral,
+ &ett_x509ce_CRLReferral,
+ &ett_x509ce_DeltaRefInfo,
+ &ett_x509ce_DeltaInformation,
+ &ett_x509ce_CRLDistPointsSyntax,
+ &ett_x509ce_DistributionPoint,
+ &ett_x509ce_DistributionPointName,
+ &ett_x509ce_ReasonFlags,
+ &ett_x509ce_IssuingDistPointSyntax,
/*--- End of included file: packet-x509ce-ettarr.c ---*/
@@ -591,5 +1866,25 @@ void proto_reg_handoff_x509ce(void) {
register_ber_oid_dissector("2.5.29.19", dissect_x509ce_basicConstraints_callback, proto_x509ce, "id-ce-basicConstraints");
register_ber_oid_dissector("2.5.29.20", dissect_x509ce_cRLNumber_callback, proto_x509ce, "id-ce-cRLNumber");
register_ber_oid_dissector("2.5.29.21", dissect_x509ce_reasonCode_callback, proto_x509ce, "id-ce-reasonCode");
+ register_ber_oid_dissector("2.5.29.23", dissect_x509ce_instructionCode_callback, proto_x509ce, "id-ce-instructionCode");
+ register_ber_oid_dissector("2.5.29.24", dissect_x509ce_invalidityDate_callback, proto_x509ce, "id-ce-invalidityDate");
+ register_ber_oid_dissector("2.5.29.27", dissect_x509ce_deltaCRLIndicator_callback, proto_x509ce, "id-ce-deltaCRLIndicator");
+ register_ber_oid_dissector("2.5.29.28", dissect_x509ce_issuingDistributionPoint_callback, proto_x509ce, "id-ce-issuingDistributionPoint");
+ register_ber_oid_dissector("2.5.29.29", dissect_x509ce_certificateIssuer_callback, proto_x509ce, "id-ce-certificateIssuer");
+ register_ber_oid_dissector("2.5.29.30", dissect_x509ce_nameConstraints_callback, proto_x509ce, "id-ce-nameConstraints");
+ register_ber_oid_dissector("2.5.29.31", dissect_x509ce_cRLDistributionPoints_callback, proto_x509ce, "id-ce-cRLDistributionPoints");
+ register_ber_oid_dissector("2.5.29.32", dissect_x509ce_certificatePolicies_callback, proto_x509ce, "id-ce-certificatePolicies");
+ register_ber_oid_dissector("2.5.29.33", dissect_x509ce_policyMappings_callback, proto_x509ce, "id-ce-policyMappings");
+ register_ber_oid_dissector("2.5.29.35", dissect_x509ce_authorityKeyIdentifier_callback, proto_x509ce, "id-ce-authorityKeyIdentifier");
+ register_ber_oid_dissector("2.5.29.36", dissect_x509ce_policyConstraints_callback, proto_x509ce, "id-ce-policyConstraints");
+ register_ber_oid_dissector("2.5.29.37", dissect_x509ce_extKeyUsage_callback, proto_x509ce, "id-ce-extKeyUsage");
+ register_ber_oid_dissector("2.5.29.40", dissect_x509ce_cRLStreamIdentifier_callback, proto_x509ce, "id-ce-cRLStreamIdentifier");
+ register_ber_oid_dissector("2.5.29.44", dissect_x509ce_cRLScope_callback, proto_x509ce, "id-ce-cRLScope");
+ register_ber_oid_dissector("2.5.29.45", dissect_x509ce_statusReferrals_callback, proto_x509ce, "id-ce-statusReferrals");
+ register_ber_oid_dissector("2.5.29.46", dissect_x509ce_freshestCRL_callback, proto_x509ce, "id-ce-freshestCRL");
+ register_ber_oid_dissector("2.5.29.47", dissect_x509ce_orderedList_callback, proto_x509ce, "id-ce-orderedList");
+ register_ber_oid_dissector("2.5.29.51", dissect_x509ce_baseUpdateTime_callback, proto_x509ce, "id-ce-baseUpdateTime");
+ register_ber_oid_dissector("2.5.29.53", dissect_x509ce_deltaInfo_callback, proto_x509ce, "id-ce-deltaInfo");
+ register_ber_oid_dissector("2.5.29.54", dissect_x509ce_inhibitAnyPolicy_callback, proto_x509ce, "id-ce-inhibitAnyPolicy");
}