diff options
author | rodri <rgl@antares-labs.eu> | 2023-02-11 23:21:00 +0000 |
---|---|---|
committer | rodri <rgl@antares-labs.eu> | 2023-02-11 23:21:00 +0000 |
commit | 62e75d8830eb56ab03bd4689d51ffd6d4150f461 (patch) | |
tree | 5c84e92fbb3df890adeed7ba5f06ecda95b6e83e /pack.c | |
parent | 775309861b51dd1f340d82074b7e9234f3e0675e (diff) | |
download | musw-62e75d8830eb56ab03bd4689d51ffd6d4150f461.tar.gz musw-62e75d8830eb56ab03bd4689d51ffd6d4150f461.tar.bz2 musw-62e75d8830eb56ab03bd4689d51ffd6d4150f461.zip |
implemented per-packet HMAC to avoid MITM tampering.
Diffstat (limited to 'pack.c')
-rw-r--r-- | pack.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -1,6 +1,8 @@ #include <u.h> #include <libc.h> #include <ip.h> +#include <mp.h> +#include <libsec.h> #include <draw.h> #include <geometry.h> #include "dat.h" @@ -91,6 +93,7 @@ vpack(uchar *p, int n, char *fmt, va_list a) put4(p, F->seq), p += 4; put4(p, F->ack), p += 4; put2(p, F->len), p += 2; + memmove(p, F->sig, MD5dlen), p += MD5dlen; if(p+F->len > e) goto err; @@ -161,6 +164,7 @@ vunpack(uchar *p, int n, char *fmt, va_list a) F->seq = get4(p), p += 4; F->ack = get4(p), p += 4; F->len = get2(p), p += 2; + memmove(F->sig, p, MD5dlen), p += MD5dlen; if(p+F->len > e) goto err; |