* fix a buffer overflow introduced during the porting. Linux originally
did digest = gcry_md_read(hd, hash_id); memcpy(dst, digest, len);
I ported that to do EVP_DigestFinal directly into dst, causing
corruption. Avoid this by writing to some intermediate (large) buffer
and then using memcpy like Linux does.