Add support for the dhpublicnumber OID.

svn path=/trunk/; revision=12465
This commit is contained in:
Gerald Combs 2004-11-01 18:11:48 +00:00
parent 2e8853d825
commit 5d0468963b
4 changed files with 147 additions and 14 deletions

View File

@ -329,20 +329,20 @@ CertificateSerialNumber ::= INTEGER
-- r INTEGER,
-- s INTEGER }
--
--dhpublicnumber OBJECT IDENTIFIER ::= {
-- iso(1) member-body(2) us(840) ansi-x942(10046) number-type(2) 1 }
--
--DomainParameters ::= SEQUENCE {
-- p INTEGER,
-- g INTEGER,
-- q INTEGER,
-- j INTEGER OPTIONAL,
-- validationParms ValidationParms OPTIONAL }
--
--ValidationParms ::= SEQUENCE {
-- seed BIT STRING,
-- pgenCounter INTEGER }
--
dhpublicnumber OBJECT IDENTIFIER ::= {
iso(1) member-body(2) us(840) ansi-x942(10046) number-type(2) 1 }
DomainParameters ::= SEQUENCE {
p INTEGER,
g INTEGER,
q INTEGER,
j INTEGER OPTIONAL,
validationParms ValidationParms OPTIONAL }
ValidationParms ::= SEQUENCE {
seed BIT STRING,
pgenCounter INTEGER }
--id-dsa OBJECT IDENTIFIER ::= {
-- iso(1) member-body(2) us(840) x9-57(10040) x9algorithm(4) 1 }
--

View File

@ -109,5 +109,6 @@ void proto_register_pkix1explicit(void) {
/*--- proto_reg_handoff_pkix1explicit -------------------------------------------*/
void proto_reg_handoff_pkix1explicit(void) {
#include "packet-pkix1explicit-dis-tab.c"
}

View File

@ -10,6 +10,9 @@
TeletexDomainDefinedAttribute
TerminalType
#.REGISTER
DomainParameters B "1.2.840.10046.2.1" "dhpublicnumber"
#.PDU
#.NO_EMIT

View File

@ -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 ---*/
}