diff options
author | Peter Wu <peter@lekensteyn.nl> | 2017-02-03 15:15:10 +0100 |
---|---|---|
committer | Alexis La Goutte <alexis.lagoutte@gmail.com> | 2017-02-06 21:29:56 +0000 |
commit | 658253ba34e569313f8fec0d2e4ed7367501c7a3 (patch) | |
tree | ed6c4057e694c9646380601e13ec047c2df84222 /epan/dissectors/packet-ssl-utils.h | |
parent | 4623b05cd54e323047f6b4266653107f57a88684 (diff) |
(D)TLS: simplify SignatureAndHashAlgorithm dissection
Merge the length parsing into the SignatureAndHashAlgorithm vector
parsing. Remove extra expert info which are replaced by the generic
ones.
Tested with a mutated pcap where the signature length field is off by
one (too large = expert error, too small = expert warning, as expected).
Change-Id: I43350352ae00eb42bbe5c2ee81289fb592b88f86
Reviewed-on: https://code.wireshark.org/review/19933
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-ssl-utils.h')
-rw-r--r-- | epan/dissectors/packet-ssl-utils.h | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/epan/dissectors/packet-ssl-utils.h b/epan/dissectors/packet-ssl-utils.h index 414e01daeb..1a6f9e2c31 100644 --- a/epan/dissectors/packet-ssl-utils.h +++ b/epan/dissectors/packet-ssl-utils.h @@ -818,9 +818,7 @@ typedef struct ssl_common_dissect { expert_field malformed_trailing_data; expert_field hs_ext_cert_status_undecoded; - expert_field hs_sig_hash_alg_len_bad; expert_field hs_cipher_suites_len_bad; - expert_field hs_sig_hash_algs_bad; expert_field resumed; expert_field record_length_invalid; @@ -922,9 +920,9 @@ ssl_dissect_hnd_cert(ssl_common_dissect_t *hf, tvbuff_t *tvb, proto_tree *tree, GHashTable *key_hash, gint is_from_server); extern void -ssl_dissect_hnd_cert_req(ssl_common_dissect_t *hf, tvbuff_t *tvb, - proto_tree *tree, guint32 offset, packet_info *pinfo, - const SslSession *session); +ssl_dissect_hnd_cert_req(ssl_common_dissect_t *hf, tvbuff_t *tvb, packet_info *pinfo, + proto_tree *tree, guint32 offset, guint32 offset_end, + const SslSession *session); extern void ssl_dissect_hnd_cli_cert_verify(ssl_common_dissect_t *hf, tvbuff_t *tvb, @@ -968,7 +966,6 @@ ssl_common_dissect_t name = { \ }, \ /* ei */ { \ EI_INIT, EI_INIT, EI_INIT, EI_INIT, EI_INIT, EI_INIT, EI_INIT, \ - EI_INIT, EI_INIT, \ }, \ } /* }}} */ @@ -1628,18 +1625,10 @@ ssl_common_dissect_t name = { \ { prefix ".handshake.status_request.undecoded", PI_UNDECODED, PI_NOTE, \ "Responder ID list or Request Extensions are not implemented, contact Wireshark developers if you want this to be supported", EXPFILL } \ }, \ - { & name .ei.hs_sig_hash_alg_len_bad, \ - { prefix ".handshake.sig_hash_alg_len.mult2", PI_MALFORMED, PI_ERROR, \ - "Signature Hash Algorithm length must be a multiple of 2", EXPFILL } \ - }, \ { & name .ei.hs_cipher_suites_len_bad, \ { prefix ".handshake.cipher_suites_length.mult2", PI_MALFORMED, PI_ERROR, \ "Cipher suite length must be a multiple of 2", EXPFILL } \ }, \ - { & name .ei.hs_sig_hash_algs_bad, \ - { prefix ".handshake.sig_hash_algs.mult2", PI_MALFORMED, PI_ERROR, \ - "Hash Algorithm length must be a multiple of 2", EXPFILL } \ - }, \ { & name .ei.resumed, \ { prefix ".resumed", PI_SEQUENCE, PI_NOTE, \ "This session reuses previously negotiated keys (Session resumption)", EXPFILL } \ |