diff options
author | Gerald Combs <gerald@wireshark.org> | 2004-11-01 18:11:48 +0000 |
---|---|---|
committer | Gerald Combs <gerald@wireshark.org> | 2004-11-01 18:11:48 +0000 |
commit | 5d0468963bafaba86b4a40a5f8ebcf49291004ff (patch) | |
tree | 203fd2e1e9cdd7bb0a36af68011a62a2e90f9254 /epan/dissectors/packet-pkix1explicit.c | |
parent | 2e8853d825686df0c481501f0ce849975610efb5 (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.c | 129 |
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 ---*/ + } |