diff options
author | sahlberg <sahlberg@f5534014-38df-0310-8fa8-9805f1628bb7> | 2004-11-21 05:21:26 +0000 |
---|---|---|
committer | sahlberg <sahlberg@f5534014-38df-0310-8fa8-9805f1628bb7> | 2004-11-21 05:21:26 +0000 |
commit | 91533832dbbfc7b1751b0f815f1c9d15159aab2a (patch) | |
tree | 1f46cc18eb8470cae8af7465d7af02e1b0d283f6 | |
parent | 038e018311479fd9057aa8758e72d263ab916a88 (diff) |
add dissection of AuthorityInfoAccessSyntax
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@12552 f5534014-38df-0310-8fa8-9805f1628bb7
-rw-r--r-- | asn1/pkix1explicit/PKIX1EXPLICIT93.asn | 3 | ||||
-rw-r--r-- | asn1/pkix1explicit/pkix1explicit.cnf | 4 | ||||
-rw-r--r-- | asn1/pkix1explicit/pkix1explicit_exp.cnf | 1 | ||||
-rw-r--r-- | asn1/pkix1implicit/PKIX1IMPLICIT93.asn | 46 | ||||
-rw-r--r-- | asn1/pkix1implicit/packet-pkix1implicit-template.c | 1 | ||||
-rw-r--r-- | asn1/pkix1implicit/pkix1implicit.cnf | 4 | ||||
-rw-r--r-- | epan/dissectors/packet-pkix1explicit.c | 23 | ||||
-rw-r--r-- | epan/dissectors/packet-pkix1explicit.h | 1 | ||||
-rw-r--r-- | epan/dissectors/packet-pkix1implicit.c | 215 |
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"); |