aboutsummaryrefslogtreecommitdiffstats
path: root/asn1/pkinit
diff options
context:
space:
mode:
authorgerald <gerald@f5534014-38df-0310-8fa8-9805f1628bb7>2004-10-28 22:06:55 +0000
committergerald <gerald@f5534014-38df-0310-8fa8-9805f1628bb7>2004-10-28 22:06:55 +0000
commitfe34244ca00adb9d770ee54457fcc11048265598 (patch)
treebe8e613482626efd38c3c9d08cef55bdfb5d0051 /asn1/pkinit
parentde669ce9749e571ee49acd8bccb8d2e04d278468 (diff)
Add support for pkauthdata and pkdhkeydata OIDs.
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@12426 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'asn1/pkinit')
-rw-r--r--asn1/pkinit/PKINIT.asn52
-rw-r--r--asn1/pkinit/packet-pkinit-template.c17
-rw-r--r--asn1/pkinit/pkinit.cnf4
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