backport bugfix to 0.0.6.x: our integrity-checking digest was checking

only the most recent cell, not the previous cells like we'd thought.

this change is backward incompatible.


svn:r1869
This commit is contained in:
Roger Dingledine
2004-05-16 03:44:53 +00:00
parent 94a24f1a55
commit 41293001b3
@@ -1018,9 +1018,12 @@ void crypto_digest_get_digest(crypto_digest_env_t *digest,
char *out, size_t out_len)
{
static char r[DIGEST_LEN];
SHA_CTX tmpctx;
tor_assert(digest && out);
tor_assert(out_len <= DIGEST_LEN);
SHA1_Final(r, &digest->d);
/* memcpy into a temporary ctx, since SHA1_Final clears the context */
memcpy(&tmpctx, &digest->d, sizeof(SHA_CTX));
SHA1_Final(r, &tmpctx);
memcpy(out, r, out_len);
}