Reduce memory allocations due to HMAC() and EVP_MD_*().
authorGuus Sliepen <guus@tinc-vpn.org>
Sun, 18 Feb 2018 15:51:06 +0000 (16:51 +0100)
committerGuus Sliepen <guus@tinc-vpn.org>
Sun, 18 Feb 2018 15:51:06 +0000 (16:51 +0100)
commitecfef0eeb9b52f6d75b4aa936a1e11e6d8e678e3
tree9542ce3abfbd1652ef69684a7a81a66e184c23d0
parent6be453fc63da9f87455b5e579cb686f95fa92102
Reduce memory allocations due to HMAC() and EVP_MD_*().

HMAC() allocates a temporary buffer on the heap each time it is called.
Similarly, we called EVP_MD_CTX_create() every time we wanted to
calculate a hash. Use HMAC_CTX and EVP_MD_CTX variables to store the
state so no (re)allocations are necessary. HMAC() was called for every
legacy packet sent and received.

This issue was found thanks to heaptrack.
src/openssl/digest.c
src/openssl/digest.h