diff options
author | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2004-11-30 04:08:16 +0000 |
---|---|---|
committer | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2004-11-30 04:08:16 +0000 |
commit | 8f73759eef58357e3f1b8347fa97b0cb95a0ef7e (patch) | |
tree | 80f2019e1d08ac031c493cc246a84b1d91c762f1 /asn1 | |
parent | f07b25895be6ef8ea300372c93a25c39f350f21f (diff) |
Make ethereal dissect application/pkix-crl CertificateRevocationLists over HTTP.
svn path=/trunk/; revision=12624
Diffstat (limited to 'asn1')
-rw-r--r-- | asn1/x509af/packet-x509af-template.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/asn1/x509af/packet-x509af-template.c b/asn1/x509af/packet-x509af-template.c index bd9abac00f..a10c7205eb 100644 --- a/asn1/x509af/packet-x509af-template.c +++ b/asn1/x509af/packet-x509af-template.c @@ -51,6 +51,7 @@ static int hf_x509af_extension_id = -1; #include "packet-x509af-hf.c" /* Initialize the subtree pointers */ +static gint ett_pkix_crl = -1; #include "packet-x509af-ett.c" static char algorithm_id[64]; /*64 chars should be long enough? */ @@ -62,6 +63,30 @@ static char extension_id[64]; /*64 chars should be long enough? */ #include "packet-x509af-fn.c" +static int +dissect_pkix_crl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) +{ + proto_item *item=NULL; + proto_tree *tree=NULL; + + if (check_col(pinfo->cinfo, COL_PROTOCOL)) + col_set_str(pinfo->cinfo, COL_PROTOCOL, "PKIX-CRL"); + + if (check_col(pinfo->cinfo, COL_INFO)) { + col_clear(pinfo->cinfo, COL_INFO); + + col_add_fstr(pinfo->cinfo, COL_INFO, "Certificate Revocation List"); + } + + + if(parent_tree){ + item=proto_tree_add_text(parent_tree, tvb, 0, -1, "Certificate Revocation List"); + tree = proto_item_add_subtree(item, ett_pkix_crl); + } + + return dissect_x509af_CertificateList(FALSE, tvb, 0, pinfo, tree, -1); +} + /*--- proto_register_x509af ----------------------------------------------*/ void proto_register_x509af(void) { @@ -80,6 +105,7 @@ void proto_register_x509af(void) { /* List of subtrees */ static gint *ett[] = { + &ett_pkix_crl, #include "packet-x509af-ettarr.c" }; @@ -95,6 +121,11 @@ void proto_register_x509af(void) { /*--- proto_reg_handoff_x509af -------------------------------------------*/ void proto_reg_handoff_x509af(void) { + dissector_handle_t pkix_crl_handle; + + pkix_crl_handle = new_create_dissector_handle(dissect_pkix_crl, proto_x509af); + dissector_add_string("media_type", "application/pkix-crl", pkix_crl_handle); + #include "packet-x509af-dis-tab.c" /*XXX these should really go to a better place but since that |