aboutsummaryrefslogtreecommitdiffstats
path: root/epan/crypt
diff options
context:
space:
mode:
authorMikael Kanstrup <mikael.kanstrup@sony.com>2019-11-11 16:11:45 +0100
committerAnders Broman <a.broman58@gmail.com>2019-11-14 08:27:54 +0000
commitc6dff594b9b992b0e5809d35e1a754e39c190192 (patch)
tree23881e691a4c8e661e0ee97eba96dcf114fdb38e /epan/crypt
parentb07dada4c93538e4615a54b714358c9383b56049 (diff)
dot11decrypt: Fix MIC calc for HMAC-SHA384
The temporary buffer to store calculated mic is too short to keep the message digest when using HMAC-SHA384 algo. HMAC-SHA384 yields a message digest of 48 bytes so increase buffer size to make room for the largest possible value. Ping-Bug: 16197 Change-Id: I36fd094c39ce77329fb303fa181d286be694ae65 Reviewed-on: https://code.wireshark.org/review/35067 Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/crypt')
-rw-r--r--epan/crypt/dot11decrypt.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/epan/crypt/dot11decrypt.c b/epan/crypt/dot11decrypt.c
index 46aad9bb76..bfc622e337 100644
--- a/epan/crypt/dot11decrypt.c
+++ b/epan/crypt/dot11decrypt.c
@@ -1668,7 +1668,8 @@ Dot11DecryptRsnaMicCheck(
guint8 *mic = eapol_parsed->mic;
guint16 mic_len = eapol_parsed->mic_len;
guint16 kck_len = Dot11DecryptGetKckLen(akm) / 8;
- UCHAR c_mic[32] = { 0 }; /* MIC 16 byte, though HMAC-SHA256 algo need 32 bytes buffer */
+ /* MIC 16 or 24 bytes, though HMAC-SHA256 / SHA384 algos need 32 / 48 bytes buffer */
+ UCHAR c_mic[48] = { 0 };
int algo = -1;
gboolean hmac = TRUE;