diff options
author | Erik de Jong <erikdejong@gmail.com> | 2017-02-13 19:31:26 +0100 |
---|---|---|
committer | Peter Wu <peter@lekensteyn.nl> | 2017-03-02 23:58:05 +0000 |
commit | f1c75cf6ef7e9f9de1ec7fd798df941b972ec71c (patch) | |
tree | 7d7c2f66bf7595e010026d6f4d3b3a53175af824 /epan/dissectors/packet-tcp.c | |
parent | 4bd3c4d44ddcdf8e98fdf08a425e3a68e9b18395 (diff) |
Rewrite dissectors to use Libgcrypt functions.
As discussed on the mailinglist, rewriting dissectors to use Libgcrypt
functions as Libgcrypt will be mandatory after change 20030.
Removal of following functions:
- crypt_md4
- crypt_rc4*
- aes_cmac_encrypt_*
- md5_*
- sha1_*
- sha256_*
Further candidates:
- aes_*
- rijndael_*
- ...
Added functions:
- ws_hmac_buffer
Added const macros:
- HASH_MD5_LENGTH
- HASH_SHA1_LENGTH
Changes on epan/crypt/* verified with captures from
https://wiki.wireshark.org/HowToDecrypt802.11
Changes on packet-snmp.c and packet-radius.c verified with captures from
https://wiki.wireshark.org/SampleCapture
Changes on packet-tacacs.c verified with capture from
http://ccie-in-3-months.blogspot.nl/2009/04/decoding-login-credentials-regardless.html
Change-Id: Iea6ba2bf207cf0f1bf2117068fb1abcfeaafaa46
Link: https://www.wireshark.org/lists/wireshark-dev/201702/msg00011.html
Reviewed-on: https://code.wireshark.org/review/20095
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Diffstat (limited to 'epan/dissectors/packet-tcp.c')
-rw-r--r-- | epan/dissectors/packet-tcp.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/epan/dissectors/packet-tcp.c b/epan/dissectors/packet-tcp.c index 08bd75e29e..57c2812e93 100644 --- a/epan/dissectors/packet-tcp.c +++ b/epan/dissectors/packet-tcp.c @@ -43,7 +43,7 @@ #include <wsutil/utf8_entities.h> #include <wsutil/str_util.h> -#include <wsutil/sha1.h> +#include <wsutil/wsgcrypt.h> #include <wsutil/pint.h> #include "packet-tcp.h" @@ -2432,20 +2432,17 @@ tcp_sequence_number_analysis_print_bytes_in_flight(packet_info * pinfo _U_, static void mptcp_cryptodata_sha1(const guint64 key, guint32 *token, guint64 *idsn) { - guint8 digest_buf[SHA1_DIGEST_LEN]; + guint8 digest_buf[HASH_SHA1_LENGTH]; guint64 pseudokey = GUINT64_TO_BE(key); - sha1_context sha1_ctx; guint32 _token; guint64 _isdn; - sha1_starts(&sha1_ctx); - sha1_update(&sha1_ctx, (const guint8 *)&pseudokey, 8); - sha1_finish(&sha1_ctx, digest_buf); + gcry_md_hash_buffer(GCRY_MD_SHA1, digest_buf, (const guint8 *)&pseudokey, 8); /* memcpy to prevent -Wstrict-aliasing errors with GCC 4 */ - memcpy(&_token, &digest_buf[0], sizeof(_token)); + memcpy(&_token, digest_buf, sizeof(_token)); *token = GUINT32_FROM_BE(_token); - memcpy(&_isdn, &digest_buf[SHA1_DIGEST_LEN-8], sizeof(_isdn)); + memcpy(&_isdn, digest_buf + HASH_SHA1_LENGTH - sizeof(_isdn), sizeof(_isdn)); *idsn = GUINT64_FROM_BE(_isdn); } |