Thanks!
I wonder if it would work to have:
``` static EVP_MD_CTX crypto_ctx = {0}; ```
instead of:
``` EVP_MD_CTX *crypto_ctx = NULL; ```
And then get rid of using EVP_MD_CTX_new()/_free() functions. That makes it look very similar like the old variant.