aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-pkix1explicit.c
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2004-11-01 18:11:48 +0000
committerGerald Combs <gerald@wireshark.org>2004-11-01 18:11:48 +0000
commit5d0468963bafaba86b4a40a5f8ebcf49291004ff (patch)
tree203fd2e1e9cdd7bb0a36af68011a62a2e90f9254 /epan/dissectors/packet-pkix1explicit.c
parent2e8853d825686df0c481501f0ce849975610efb5 (diff)
Add support for the dhpublicnumber OID.
svn path=/trunk/; revision=12465
Diffstat (limited to 'epan/dissectors/packet-pkix1explicit.c')
-rw-r--r--epan/dissectors/packet-pkix1explicit.c129
1 files changed, 129 insertions, 0 deletions
diff --git a/epan/dissectors/packet-pkix1explicit.c b/epan/dissectors/packet-pkix1explicit.c
index e5dae121b0..a4fa32b3d5 100644
--- a/epan/dissectors/packet-pkix1explicit.c
+++ b/epan/dissectors/packet-pkix1explicit.c
@@ -56,6 +56,14 @@ static int proto_pkix1explicit = -1;
/*--- Included file: packet-pkix1explicit-hf.c ---*/
+static int hf_pkix1explicit_DomainParameters_PDU = -1; /* DomainParameters */
+static int hf_pkix1explicit_p = -1; /* INTEGER */
+static int hf_pkix1explicit_g = -1; /* INTEGER */
+static int hf_pkix1explicit_q = -1; /* INTEGER */
+static int hf_pkix1explicit_j = -1; /* INTEGER */
+static int hf_pkix1explicit_validationParms = -1; /* ValidationParms */
+static int hf_pkix1explicit_seed = -1; /* BIT_STRING */
+static int hf_pkix1explicit_pgenCounter = -1; /* INTEGER */
static int hf_pkix1explicit_type = -1; /* TeletexString */
static int hf_pkix1explicit_value = -1; /* TeletexString */
@@ -66,6 +74,8 @@ static int hf_pkix1explicit_value = -1; /* TeletexString */
/*--- Included file: packet-pkix1explicit-ett.c ---*/
+static gint ett_pkix1explicit_DomainParameters = -1;
+static gint ett_pkix1explicit_ValidationParms = -1;
static gint ett_pkix1explicit_TeletexDomainDefinedAttribute = -1;
/*--- End of included file: packet-pkix1explicit-ett.c ---*/
@@ -109,6 +119,77 @@ 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) {
+ offset = dissect_ber_integer(pinfo, tree, tvb, offset, hf_index, NULL);
+
+ return offset;
+}
+static int dissect_p(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_pkix1explicit_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_pkix1explicit_p);
+}
+static int dissect_g(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_pkix1explicit_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_pkix1explicit_g);
+}
+static int dissect_q(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_pkix1explicit_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_pkix1explicit_q);
+}
+static int dissect_j(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_pkix1explicit_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_pkix1explicit_j);
+}
+static int dissect_pgenCounter(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_pkix1explicit_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_pkix1explicit_pgenCounter);
+}
+
+
+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) {
+ offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
+ NULL, hf_index, -1,
+ NULL);
+
+ return offset;
+}
+static int dissect_seed(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_pkix1explicit_BIT_STRING(FALSE, tvb, offset, pinfo, tree, hf_pkix1explicit_seed);
+}
+
+static const ber_sequence ValidationParms_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_seed },
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_pgenCounter },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_pkix1explicit_ValidationParms(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,
+ ValidationParms_sequence, hf_index, ett_pkix1explicit_ValidationParms);
+
+ return offset;
+}
+static int dissect_validationParms(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_pkix1explicit_ValidationParms(FALSE, tvb, offset, pinfo, tree, hf_pkix1explicit_validationParms);
+}
+
+static const ber_sequence DomainParameters_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_p },
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_g },
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_q },
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_j },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_validationParms },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_pkix1explicit_DomainParameters(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,
+ DomainParameters_sequence, hf_index, ett_pkix1explicit_DomainParameters);
+
+ return offset;
+}
+
+
const value_string TerminalType_vals[] = {
{ 3, "telex" },
{ 4, "teletex" },
@@ -157,6 +238,12 @@ dissect_pkix1explicit_TeletexDomainDefinedAttribute(gboolean implicit_tag _U_, t
return offset;
}
+/*--- PDUs ---*/
+
+static void dissect_DomainParameters_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_pkix1explicit_DomainParameters(FALSE, tvb, 0, pinfo, tree, hf_pkix1explicit_DomainParameters_PDU);
+}
+
/*--- End of included file: packet-pkix1explicit-fn.c ---*/
@@ -170,6 +257,38 @@ void proto_register_pkix1explicit(void) {
/*--- Included file: packet-pkix1explicit-hfarr.c ---*/
+ { &hf_pkix1explicit_DomainParameters_PDU,
+ { "DomainParameters", "pkix1explicit.DomainParameters",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "DomainParameters", HFILL }},
+ { &hf_pkix1explicit_p,
+ { "p", "pkix1explicit.p",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "DomainParameters/p", HFILL }},
+ { &hf_pkix1explicit_g,
+ { "g", "pkix1explicit.g",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "DomainParameters/g", HFILL }},
+ { &hf_pkix1explicit_q,
+ { "q", "pkix1explicit.q",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "DomainParameters/q", HFILL }},
+ { &hf_pkix1explicit_j,
+ { "j", "pkix1explicit.j",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "DomainParameters/j", HFILL }},
+ { &hf_pkix1explicit_validationParms,
+ { "validationParms", "pkix1explicit.validationParms",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "DomainParameters/validationParms", HFILL }},
+ { &hf_pkix1explicit_seed,
+ { "seed", "pkix1explicit.seed",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "ValidationParms/seed", HFILL }},
+ { &hf_pkix1explicit_pgenCounter,
+ { "pgenCounter", "pkix1explicit.pgenCounter",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "ValidationParms/pgenCounter", HFILL }},
{ &hf_pkix1explicit_type,
{ "type", "pkix1explicit.type",
FT_STRING, BASE_NONE, NULL, 0,
@@ -188,6 +307,8 @@ void proto_register_pkix1explicit(void) {
/*--- Included file: packet-pkix1explicit-ettarr.c ---*/
+ &ett_pkix1explicit_DomainParameters,
+ &ett_pkix1explicit_ValidationParms,
&ett_pkix1explicit_TeletexDomainDefinedAttribute,
/*--- End of included file: packet-pkix1explicit-ettarr.c ---*/
@@ -206,5 +327,13 @@ void proto_register_pkix1explicit(void) {
/*--- proto_reg_handoff_pkix1explicit -------------------------------------------*/
void proto_reg_handoff_pkix1explicit(void) {
+
+/*--- Included file: packet-pkix1explicit-dis-tab.c ---*/
+
+ register_ber_oid_dissector("1.2.840.10046.2.1", dissect_DomainParameters_PDU, proto_pkix1explicit, "dhpublicnumber");
+
+
+/*--- End of included file: packet-pkix1explicit-dis-tab.c ---*/
+
}