aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--asn1/pkix1explicit/PKIX1EXPLICIT93.asn3
-rw-r--r--asn1/pkix1explicit/pkix1explicit.cnf4
-rw-r--r--asn1/pkix1explicit/pkix1explicit_exp.cnf1
-rw-r--r--asn1/pkix1implicit/PKIX1IMPLICIT93.asn46
-rw-r--r--asn1/pkix1implicit/packet-pkix1implicit-template.c1
-rw-r--r--asn1/pkix1implicit/pkix1implicit.cnf4
-rw-r--r--epan/dissectors/packet-pkix1explicit.c23
-rw-r--r--epan/dissectors/packet-pkix1explicit.h1
-rw-r--r--epan/dissectors/packet-pkix1implicit.c215
9 files changed, 266 insertions, 32 deletions
diff --git a/asn1/pkix1explicit/PKIX1EXPLICIT93.asn b/asn1/pkix1explicit/PKIX1EXPLICIT93.asn
index 2d3ebf09a2..002656a38e 100644
--- a/asn1/pkix1explicit/PKIX1EXPLICIT93.asn
+++ b/asn1/pkix1explicit/PKIX1EXPLICIT93.asn
@@ -494,7 +494,8 @@ ValidationParms ::= SEQUENCE {
--id-at-dnQualifier OBJECT IDENTIFIER ::= {id-at 46}
--
-- Directory string type, used extensively in Name types
---
+--Make it a PrintableString will amke it look prettier
+DirectoryString ::= PrintableString
--DirectoryString { INTEGER:maxSize } ::= CHOICE {
-- teletexString TeletexString (SIZE (1..maxSize)),
-- printableString PrintableString (SIZE (1..maxSize)),
diff --git a/asn1/pkix1explicit/pkix1explicit.cnf b/asn1/pkix1explicit/pkix1explicit.cnf
index ff8840e963..b24d64ccee 100644
--- a/asn1/pkix1explicit/pkix1explicit.cnf
+++ b/asn1/pkix1explicit/pkix1explicit.cnf
@@ -9,6 +9,7 @@
TeletexDomainDefinedAttribute
TerminalType
+DirectoryString
#.REGISTER
DomainParameters B "1.2.840.10046.2.1" "dhpublicnumber"
@@ -23,5 +24,8 @@ CertificateSerialNumber
#.FIELD_RENAME
+#.FN_BODY DirectoryString
+ offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+
#.END
diff --git a/asn1/pkix1explicit/pkix1explicit_exp.cnf b/asn1/pkix1explicit/pkix1explicit_exp.cnf
index e7919fa143..8066c06ba2 100644
--- a/asn1/pkix1explicit/pkix1explicit_exp.cnf
+++ b/asn1/pkix1explicit/pkix1explicit_exp.cnf
@@ -6,6 +6,7 @@ Name BER_CLASS_ANY -1
SubjectPublicKeyInfo BER_CLASS_UNI BER_UNI_TAG_SEQUENCE
TeletexDomainDefinedAttribute BER_CLASS_UNI BER_UNI_TAG_SEQUENCE
TerminalType BER_CLASS_UNI BER_UNI_TAG_INTEGER
+DirectoryString BER_CLASS_UNI BER_UNI_TAG_PrintableString
#.END
#.TYPE_ATTR
diff --git a/asn1/pkix1implicit/PKIX1IMPLICIT93.asn b/asn1/pkix1implicit/PKIX1IMPLICIT93.asn
index b65b33cd14..828b1898a4 100644
--- a/asn1/pkix1implicit/PKIX1IMPLICIT93.asn
+++ b/asn1/pkix1implicit/PKIX1IMPLICIT93.asn
@@ -177,24 +177,24 @@ Dummy ::= NULL
-- IDENTIFIED BY id-ce-subjectAltName }
--
--GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
---
---GeneralName ::= CHOICE {
+
+GeneralName ::= CHOICE {
-- otherName [0] INSTANCE OF OTHER-NAME,
--- rfc822Name [1] IA5String,
--- dNSName [2] IA5String,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
-- x400Address [3] ORAddress,
--- directoryName [4] Name,
--- ediPartyName [5] EDIPartyName,
--- uniformResourceIdentifier [6] IA5String,
--- iPAddress [7] OCTET STRING,
--- registeredID [8] OBJECT IDENTIFIER }
---
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER }
+
--OTHER-NAME ::= TYPE-IDENTIFIER
---
---EDIPartyName ::= SEQUENCE {
--- nameAssigner [0] DirectoryString {ub-name} OPTIONAL,
--- partyName [1] DirectoryString {ub-name} }
---
+
+EDIPartyName ::= SEQUENCE {
+ nameAssigner [0] DirectoryString OPTIONAL,
+ partyName [1] DirectoryString }
+
--issuerAltName EXTENSION ::= {
-- SYNTAX GeneralNames
-- IDENTIFIED BY id-ce-issuerAltName }
@@ -365,14 +365,14 @@ Dummy ::= NULL
--authorityInfoAccess EXTENSION ::= {
-- SYNTAX AuthorityInfoAccessSyntax
-- IDENTIFIED BY id-pe-authorityInfoAccess }
---
---AuthorityInfoAccessSyntax ::=
--- SEQUENCE SIZE (1..MAX) OF AccessDescription
---
---AccessDescription ::= SEQUENCE {
--- accessMethod OBJECT IDENTIFIER,
--- accessLocation GeneralName }
---
+
+AuthorityInfoAccessSyntax ::=
+ SEQUENCE SIZE (1..MAX) OF AccessDescription
+
+AccessDescription ::= SEQUENCE {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
--id-pe-authorityInfoAccess OBJECT IDENTIFIER ::= { id-pe 1 }
--
--id-ad-ocsp OBJECT IDENTIFIER ::= { id-ad 1 }
diff --git a/asn1/pkix1implicit/packet-pkix1implicit-template.c b/asn1/pkix1implicit/packet-pkix1implicit-template.c
index b064db52b7..15763907e4 100644
--- a/asn1/pkix1implicit/packet-pkix1implicit-template.c
+++ b/asn1/pkix1implicit/packet-pkix1implicit-template.c
@@ -35,6 +35,7 @@
#include "packet-ber.h"
#include "packet-pkix1implicit.h"
+#include "packet-pkix1explicit.h"
#define PNAME "PKIX1Implitit"
#define PSNAME "PKIX1IMPLICIT"
diff --git a/asn1/pkix1implicit/pkix1implicit.cnf b/asn1/pkix1implicit/pkix1implicit.cnf
index 5637a589a8..977ee02996 100644
--- a/asn1/pkix1implicit/pkix1implicit.cnf
+++ b/asn1/pkix1implicit/pkix1implicit.cnf
@@ -4,6 +4,9 @@
# $Id$
#.MODULE_IMPORT
+PKIX1Explicit93 pkix1explicit
+
+#.INCLUDE ../pkix1explicit/pkix1explicit_exp.cnf
#.EXPORTS
@@ -12,6 +15,7 @@ UserNotice
#.PDU
#.REGISTER
+AuthorityInfoAccessSyntax B "1.3.6.1.5.5.7.1.1" "id-pe-authorityInfoAccessSyntax"
Dummy B "1.3.6.1.5.5.7.3.1" "id-kp-serverAuth"
Dummy B "1.3.6.1.5.5.7.3.2" "id-kp-clientAuth"
Dummy B "1.3.6.1.5.5.7.3.3" "id-kp-codeSigning"
diff --git a/epan/dissectors/packet-pkix1explicit.c b/epan/dissectors/packet-pkix1explicit.c
index b321636819..62283e1556 100644
--- a/epan/dissectors/packet-pkix1explicit.c
+++ b/epan/dissectors/packet-pkix1explicit.c
@@ -121,7 +121,7 @@ dissect_pkix1explicit_SubjectPublicKeyInfo(gboolean implicit_tag, tvbuff_t *tvb,
static int
-dissect_pkix1explicit_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+dissect_pkix1explicit_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
return offset;
@@ -144,7 +144,7 @@ static int dissect_pgenCounter(packet_info *pinfo, proto_tree *tree, tvbuff_t *t
static int
-dissect_pkix1explicit_BIT_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+dissect_pkix1explicit_BIT_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
NULL, hf_index, -1,
NULL);
@@ -162,7 +162,7 @@ static const ber_sequence ValidationParms_sequence[] = {
};
static int
-dissect_pkix1explicit_ValidationParms(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+dissect_pkix1explicit_ValidationParms(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
ValidationParms_sequence, hf_index, ett_pkix1explicit_ValidationParms);
@@ -182,7 +182,7 @@ static const ber_sequence DomainParameters_sequence[] = {
};
static int
-dissect_pkix1explicit_DomainParameters(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+dissect_pkix1explicit_DomainParameters(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
DomainParameters_sequence, hf_index, ett_pkix1explicit_DomainParameters);
@@ -190,6 +190,15 @@ dissect_pkix1explicit_DomainParameters(gboolean implicit_tag _U_, tvbuff_t *tvb,
}
+int
+dissect_pkix1explicit_DirectoryString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+
+
+ return offset;
+}
+
+
const value_string TerminalType_vals[] = {
{ 3, "telex" },
{ 4, "teletex" },
@@ -202,7 +211,7 @@ const value_string TerminalType_vals[] = {
int
-dissect_pkix1explicit_TerminalType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+dissect_pkix1explicit_TerminalType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
return offset;
@@ -210,7 +219,7 @@ dissect_pkix1explicit_TerminalType(gboolean implicit_tag _U_, tvbuff_t *tvb, int
static int
-dissect_pkix1explicit_TeletexString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+dissect_pkix1explicit_TeletexString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
pinfo, tree, tvb, offset, hf_index,
NULL);
@@ -231,7 +240,7 @@ static const ber_sequence TeletexDomainDefinedAttribute_sequence[] = {
};
int
-dissect_pkix1explicit_TeletexDomainDefinedAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+dissect_pkix1explicit_TeletexDomainDefinedAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
TeletexDomainDefinedAttribute_sequence, hf_index, ett_pkix1explicit_TeletexDomainDefinedAttribute);
diff --git a/epan/dissectors/packet-pkix1explicit.h b/epan/dissectors/packet-pkix1explicit.h
index 76b734d2e3..9d748a82f2 100644
--- a/epan/dissectors/packet-pkix1explicit.h
+++ b/epan/dissectors/packet-pkix1explicit.h
@@ -42,6 +42,7 @@ int dissect_pkix1explicit_SubjectPublicKeyInfo(gboolean implicit_tag, tvbuff_t *
/*--- Included file: packet-pkix1explicit-exp.h ---*/
extern const value_string TerminalType_vals[];
+int dissect_pkix1explicit_DirectoryString(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
int dissect_pkix1explicit_TerminalType(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
int dissect_pkix1explicit_TeletexDomainDefinedAttribute(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
diff --git a/epan/dissectors/packet-pkix1implicit.c b/epan/dissectors/packet-pkix1implicit.c
index 5830f6ac2c..aa97249093 100644
--- a/epan/dissectors/packet-pkix1implicit.c
+++ b/epan/dissectors/packet-pkix1implicit.c
@@ -8,7 +8,7 @@
/* packet-pkix1implicit.c
* Routines for PKIX1Implitic packet dissection
*
- * $Id: packet-pkix1implicit-template.c 12203 2004-10-05 09:18:55Z guy $
+ * $Id: packet-pkix1implicit-template.c 12549 2004-11-20 21:26:08Z sahlberg $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -42,6 +42,7 @@
#include "packet-ber.h"
#include "packet-pkix1implicit.h"
+#include "packet-pkix1explicit.h"
#define PNAME "PKIX1Implitit"
#define PSNAME "PKIX1IMPLICIT"
@@ -53,6 +54,19 @@ static int proto_pkix1implicit = -1;
/*--- Included file: packet-pkix1implicit-hf.c ---*/
static int hf_pkix1implicit_Dummy_PDU = -1; /* Dummy */
+static int hf_pkix1implicit_AuthorityInfoAccessSyntax_PDU = -1; /* AuthorityInfoAccessSyntax */
+static int hf_pkix1implicit_rfc822Name = -1; /* IA5String */
+static int hf_pkix1implicit_dNSName = -1; /* IA5String */
+static int hf_pkix1implicit_directoryName = -1; /* Name */
+static int hf_pkix1implicit_ediPartyName = -1; /* EDIPartyName */
+static int hf_pkix1implicit_uniformResourceIdentifier = -1; /* IA5String */
+static int hf_pkix1implicit_iPAddress = -1; /* OCTET_STRING */
+static int hf_pkix1implicit_registeredID = -1; /* OBJECT_IDENTIFIER */
+static int hf_pkix1implicit_nameAssigner = -1; /* DirectoryString */
+static int hf_pkix1implicit_partyName = -1; /* DirectoryString */
+static int hf_pkix1implicit_AuthorityInfoAccessSyntax_item = -1; /* AccessDescription */
+static int hf_pkix1implicit_accessMethod = -1; /* OBJECT_IDENTIFIER */
+static int hf_pkix1implicit_accessLocation = -1; /* GeneralName */
static int hf_pkix1implicit_noticeRef = -1; /* NoticeReference */
static int hf_pkix1implicit_explicitText = -1; /* DisplayText */
static int hf_pkix1implicit_organization = -1; /* DisplayText */
@@ -69,6 +83,10 @@ static int hf_pkix1implicit_utf8String = -1; /* UTF8String */
/*--- Included file: packet-pkix1implicit-ett.c ---*/
+static gint ett_pkix1implicit_GeneralName = -1;
+static gint ett_pkix1implicit_EDIPartyName = -1;
+static gint ett_pkix1implicit_AuthorityInfoAccessSyntax = -1;
+static gint ett_pkix1implicit_AccessDescription = -1;
static gint ett_pkix1implicit_UserNotice = -1;
static gint ett_pkix1implicit_NoticeReference = -1;
static gint ett_pkix1implicit_SEQUNCE_OF_INTEGER = -1;
@@ -83,6 +101,15 @@ static gint ett_pkix1implicit_DisplayText = -1;
/*--- Fields for imported types ---*/
+static int dissect_directoryName_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_pkix1explicit_Name(TRUE, tvb, offset, pinfo, tree, hf_pkix1implicit_directoryName);
+}
+static int dissect_nameAssigner_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_pkix1explicit_DirectoryString(TRUE, tvb, offset, pinfo, tree, hf_pkix1implicit_nameAssigner);
+}
+static int dissect_partyName_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_pkix1explicit_DirectoryString(TRUE, tvb, offset, pinfo, tree, hf_pkix1implicit_partyName);
+}
static int
@@ -97,6 +124,132 @@ dissect_pkix1implicit_Dummy(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset
static int
+dissect_pkix1implicit_IA5String(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, 1,
+ pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_rfc822Name_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_pkix1implicit_IA5String(TRUE, tvb, offset, pinfo, tree, hf_pkix1implicit_rfc822Name);
+}
+static int dissect_dNSName_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_pkix1implicit_IA5String(TRUE, tvb, offset, pinfo, tree, hf_pkix1implicit_dNSName);
+}
+static int dissect_uniformResourceIdentifier_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_pkix1implicit_IA5String(TRUE, tvb, offset, pinfo, tree, hf_pkix1implicit_uniformResourceIdentifier);
+}
+
+static const ber_sequence EDIPartyName_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_nameAssigner_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_partyName_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_pkix1implicit_EDIPartyName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ EDIPartyName_sequence, hf_index, ett_pkix1implicit_EDIPartyName);
+
+ return offset;
+}
+static int dissect_ediPartyName_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_pkix1implicit_EDIPartyName(TRUE, tvb, offset, pinfo, tree, hf_pkix1implicit_ediPartyName);
+}
+
+
+static int
+dissect_pkix1implicit_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_iPAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_pkix1implicit_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_pkix1implicit_iPAddress);
+}
+
+
+static int
+dissect_pkix1implicit_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset,
+ hf_index, NULL);
+
+ return offset;
+}
+static int dissect_registeredID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_pkix1implicit_OBJECT_IDENTIFIER(TRUE, tvb, offset, pinfo, tree, hf_pkix1implicit_registeredID);
+}
+static int dissect_accessMethod(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_pkix1implicit_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_pkix1implicit_accessMethod);
+}
+
+
+static const value_string GeneralName_vals[] = {
+ { 1, "rfc822Name" },
+ { 2, "dNSName" },
+ { 4, "directoryName" },
+ { 5, "ediPartyName" },
+ { 6, "uniformResourceIdentifier" },
+ { 7, "iPAddress" },
+ { 8, "registeredID" },
+ { 0, NULL }
+};
+
+static const ber_choice GeneralName_choice[] = {
+ { 1, BER_CLASS_CON, 1, 0, dissect_rfc822Name_impl },
+ { 2, BER_CLASS_CON, 2, 0, dissect_dNSName_impl },
+ { 4, BER_CLASS_CON, 4, 0, dissect_directoryName_impl },
+ { 5, BER_CLASS_CON, 5, 0, dissect_ediPartyName_impl },
+ { 6, BER_CLASS_CON, 6, 0, dissect_uniformResourceIdentifier_impl },
+ { 7, BER_CLASS_CON, 7, 0, dissect_iPAddress_impl },
+ { 8, BER_CLASS_CON, 8, 0, dissect_registeredID_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_pkix1implicit_GeneralName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ GeneralName_choice, hf_index, ett_pkix1implicit_GeneralName);
+
+ return offset;
+}
+static int dissect_accessLocation(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_pkix1implicit_GeneralName(FALSE, tvb, offset, pinfo, tree, hf_pkix1implicit_accessLocation);
+}
+
+static const ber_sequence AccessDescription_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_accessMethod },
+ { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_accessLocation },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_pkix1implicit_AccessDescription(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ AccessDescription_sequence, hf_index, ett_pkix1implicit_AccessDescription);
+
+ return offset;
+}
+static int dissect_AuthorityInfoAccessSyntax_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_pkix1implicit_AccessDescription(FALSE, tvb, offset, pinfo, tree, hf_pkix1implicit_AuthorityInfoAccessSyntax_item);
+}
+
+static const ber_sequence AuthorityInfoAccessSyntax_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_AuthorityInfoAccessSyntax_item },
+};
+
+static int
+dissect_pkix1implicit_AuthorityInfoAccessSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ AuthorityInfoAccessSyntax_sequence_of, hf_index, ett_pkix1implicit_AuthorityInfoAccessSyntax);
+
+ return offset;
+}
+
+
+static int
dissect_pkix1implicit_VisibleString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_VisibleString,
pinfo, tree, tvb, offset, hf_index,
@@ -226,6 +379,9 @@ dissect_pkix1implicit_UserNotice(gboolean implicit_tag _U_, tvbuff_t *tvb, int o
static void dissect_Dummy_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
dissect_pkix1implicit_Dummy(FALSE, tvb, 0, pinfo, tree, hf_pkix1implicit_Dummy_PDU);
}
+static void dissect_AuthorityInfoAccessSyntax_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_pkix1implicit_AuthorityInfoAccessSyntax(FALSE, tvb, 0, pinfo, tree, hf_pkix1implicit_AuthorityInfoAccessSyntax_PDU);
+}
/*--- End of included file: packet-pkix1implicit-fn.c ---*/
@@ -244,6 +400,58 @@ void proto_register_pkix1implicit(void) {
{ "Dummy", "pkix1implicit.Dummy",
FT_NONE, BASE_NONE, NULL, 0,
"Dummy", HFILL }},
+ { &hf_pkix1implicit_AuthorityInfoAccessSyntax_PDU,
+ { "AuthorityInfoAccessSyntax", "pkix1implicit.AuthorityInfoAccessSyntax",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "AuthorityInfoAccessSyntax", HFILL }},
+ { &hf_pkix1implicit_rfc822Name,
+ { "rfc822Name", "pkix1implicit.rfc822Name",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "GeneralName/rfc822Name", HFILL }},
+ { &hf_pkix1implicit_dNSName,
+ { "dNSName", "pkix1implicit.dNSName",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "GeneralName/dNSName", HFILL }},
+ { &hf_pkix1implicit_directoryName,
+ { "directoryName", "pkix1implicit.directoryName",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "GeneralName/directoryName", HFILL }},
+ { &hf_pkix1implicit_ediPartyName,
+ { "ediPartyName", "pkix1implicit.ediPartyName",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "GeneralName/ediPartyName", HFILL }},
+ { &hf_pkix1implicit_uniformResourceIdentifier,
+ { "uniformResourceIdentifier", "pkix1implicit.uniformResourceIdentifier",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "GeneralName/uniformResourceIdentifier", HFILL }},
+ { &hf_pkix1implicit_iPAddress,
+ { "iPAddress", "pkix1implicit.iPAddress",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "GeneralName/iPAddress", HFILL }},
+ { &hf_pkix1implicit_registeredID,
+ { "registeredID", "pkix1implicit.registeredID",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "GeneralName/registeredID", HFILL }},
+ { &hf_pkix1implicit_nameAssigner,
+ { "nameAssigner", "pkix1implicit.nameAssigner",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "EDIPartyName/nameAssigner", HFILL }},
+ { &hf_pkix1implicit_partyName,
+ { "partyName", "pkix1implicit.partyName",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "EDIPartyName/partyName", HFILL }},
+ { &hf_pkix1implicit_AuthorityInfoAccessSyntax_item,
+ { "Item", "pkix1implicit.AuthorityInfoAccessSyntax_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "AuthorityInfoAccessSyntax/_item", HFILL }},
+ { &hf_pkix1implicit_accessMethod,
+ { "accessMethod", "pkix1implicit.accessMethod",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "AccessDescription/accessMethod", HFILL }},
+ { &hf_pkix1implicit_accessLocation,
+ { "accessLocation", "pkix1implicit.accessLocation",
+ FT_UINT32, BASE_DEC, VALS(GeneralName_vals), 0,
+ "AccessDescription/accessLocation", HFILL }},
{ &hf_pkix1implicit_noticeRef,
{ "noticeRef", "pkix1implicit.noticeRef",
FT_NONE, BASE_NONE, NULL, 0,
@@ -286,6 +494,10 @@ void proto_register_pkix1implicit(void) {
/*--- Included file: packet-pkix1implicit-ettarr.c ---*/
+ &ett_pkix1implicit_GeneralName,
+ &ett_pkix1implicit_EDIPartyName,
+ &ett_pkix1implicit_AuthorityInfoAccessSyntax,
+ &ett_pkix1implicit_AccessDescription,
&ett_pkix1implicit_UserNotice,
&ett_pkix1implicit_NoticeReference,
&ett_pkix1implicit_SEQUNCE_OF_INTEGER,
@@ -310,6 +522,7 @@ void proto_reg_handoff_pkix1implicit(void) {
/*--- Included file: packet-pkix1implicit-dis-tab.c ---*/
+ register_ber_oid_dissector("1.3.6.1.5.5.7.1.1", dissect_AuthorityInfoAccessSyntax_PDU, proto_pkix1implicit, "id-pe-authorityInfoAccessSyntax");
register_ber_oid_dissector("1.3.6.1.5.5.7.3.1", dissect_Dummy_PDU, proto_pkix1implicit, "id-kp-serverAuth");
register_ber_oid_dissector("1.3.6.1.5.5.7.3.2", dissect_Dummy_PDU, proto_pkix1implicit, "id-kp-clientAuth");
register_ber_oid_dissector("1.3.6.1.5.5.7.3.3", dissect_Dummy_PDU, proto_pkix1implicit, "id-kp-codeSigning");