diff options
author | Gerald Combs <gerald@wireshark.org> | 2004-10-28 22:06:55 +0000 |
---|---|---|
committer | Gerald Combs <gerald@wireshark.org> | 2004-10-28 22:06:55 +0000 |
commit | 24f30a8850a1f11ae2470fd5124e827f443fa62b (patch) | |
tree | be8e613482626efd38c3c9d08cef55bdfb5d0051 /asn1/pkinit | |
parent | bef8e01fcdfb99155406d7b53500f4764dffbc1a (diff) |
Add support for pkauthdata and pkdhkeydata OIDs.
svn path=/trunk/; revision=12426
Diffstat (limited to 'asn1/pkinit')
-rw-r--r-- | asn1/pkinit/PKINIT.asn | 52 | ||||
-rw-r--r-- | asn1/pkinit/packet-pkinit-template.c | 17 | ||||
-rw-r--r-- | asn1/pkinit/pkinit.cnf | 4 |
3 files changed, 46 insertions, 27 deletions
diff --git a/asn1/pkinit/PKINIT.asn b/asn1/pkinit/PKINIT.asn index 12dd24fc67..2a1549d304 100644 --- a/asn1/pkinit/PKINIT.asn +++ b/asn1/pkinit/PKINIT.asn @@ -54,7 +54,7 @@ BEGIN -- kerberosv5 (2) pkinit (3) } -- -- --- id-pkdhkeydata OBJECT IDENTIFIER ::= { id-pkinit 1 } +-- id-pkauthdata OBJECT IDENTIFIER ::= { id-pkinit 1 } -- id-pkdhkeydata OBJECT IDENTIFIER ::= { id-pkinit 2 } -- id-pkrkeydata OBJECT IDENTIFIER ::= { id-pkinit 3 } -- id-pkekuoid OBJECT IDENTIFIER ::= { id-pkinit 4 } @@ -89,24 +89,24 @@ TrustedCA ::= CHOICE { ... } --- --- AuthPack ::= SEQUENCE { --- pkAuthenticator [0] PKAuthenticator, --- clientPublicValue [1] SubjectPublicKeyInfo OPTIONAL, --- supportedCMSTypes [2] SEQUENCE OF AlgorithmIdentifier --- OPTIONAL, --- ... --- } --- --- --- PKAuthenticator ::= SEQUENCE { --- cusec [0] INTEGER, --- ctime [1] KerberosTime, --- nonce [2] INTEGER (0..4294967295), --- paChecksum [3] Checksum, --- ... --- } --- + +AuthPack ::= SEQUENCE { + pkAuthenticator [0] PKAuthenticator, + clientPublicValue [1] SubjectPublicKeyInfo OPTIONAL, + supportedCMSTypes [2] SEQUENCE OF AlgorithmIdentifier + OPTIONAL, + ... +} + + +PKAuthenticator ::= SEQUENCE { + cusec [0] INTEGER, + ctime [1] KerberosTime, + nonce [2] INTEGER (0..4294967295), + paChecksum [3] Checksum, + ... +} + -- -- TrustedCertifiers ::= SEQUENCE OF Name -- @@ -134,13 +134,13 @@ PaPkAsRep ::= CHOICE { } --- KDCDHKeyInfo ::= SEQUENCE { --- subjectPublicKey [0] BIT STRING, --- nonce [1] INTEGER, --- dhKeyExpiration [2] KerberosTime OPTIONAL, --- ... --- } --- +KDCDHKeyInfo ::= SEQUENCE { + subjectPublicKey [0] BIT STRING, + nonce [1] INTEGER, + dhKeyExpiration [2] KerberosTime OPTIONAL, + ... +} + -- -- ReplyKeyPack ::= SEQUENCE { -- replyKey [0] EncryptionKey, diff --git a/asn1/pkinit/packet-pkinit-template.c b/asn1/pkinit/packet-pkinit-template.c index 2dd03e6e09..627f7565ac 100644 --- a/asn1/pkinit/packet-pkinit-template.c +++ b/asn1/pkinit/packet-pkinit-template.c @@ -37,6 +37,7 @@ #include "packet-pkinit.h" #include "packet-cms.h" #include "packet-pkix1explicit.h" +#include "packet-kerberos.h" #define PNAME "PKINIT" #define PSNAME "PKInit" @@ -49,6 +50,8 @@ static int proto_pkinit = -1; /* Initialize the subtree pointers */ #include "packet-pkinit-ett.c" +static int dissect_KerberosV5Spec2_KerberosTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index _U_); +static int dissect_KerberosV5Spec2_Checksum(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index _U_); #include "packet-pkinit-fn.c" @@ -64,6 +67,18 @@ dissect_pkinit_PA_PK_AS_REP(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, return offset; } +static int +dissect_KerberosV5Spec2_KerberosTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index _U_) { + offset = dissect_krb5_ctime(pinfo, tree, tvb, offset); + return offset; +} + +static int +dissect_KerberosV5Spec2_Checksum(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index _U_) { + offset = dissect_krb5_Checksum(pinfo, tree, tvb, offset); + return offset; +} + /*--- proto_register_pkinit ----------------------------------------------*/ void proto_register_pkinit(void) { @@ -90,5 +105,7 @@ void proto_register_pkinit(void) { /*--- proto_reg_handoff_pkinit -------------------------------------------*/ void proto_reg_handoff_pkinit(void) { + register_ber_oid_dissector("1.3.6.1.5.2.3.1", dissect_AuthPack_PDU, proto_pkinit, "id-pkauthdata"); + register_ber_oid_dissector("1.3.6.1.5.2.3.2", dissect_KDCDHKeyInfo_PDU, proto_pkinit, "id-pkdhkeydata"); } diff --git a/asn1/pkinit/pkinit.cnf b/asn1/pkinit/pkinit.cnf index 6fc1ad5536..d893daf6a2 100644 --- a/asn1/pkinit/pkinit.cnf +++ b/asn1/pkinit/pkinit.cnf @@ -12,7 +12,9 @@ CryptographicMessageSyntax cms #.EXPORTS -#.PDU +#.REGISTER +AuthPack B "1.3.6.1.5.2.3.1" "id-pkauthdata" +KDCDHKeyInfo B "1.3.6.1.5.2.3.2" "id-pkdhkeydata" #.NO_EMIT |