- gcry_md_hash_buffer(digest->algo, outdata, indata, inlen);
+ unsigned int len = gcry_md_get_algo_dlen(digest->algo);
+ char tmpdata[len];
+
+ gcry_md_hash_buffer(digest->algo, tmpdata, indata, inlen);
+ memcpy(outdata, tmpdata, digest->maclength);
+