brian m. carlson 768e30ea27 hash: implement and use a context cloning function
For all of our SHA-1 implementations and most of our SHA-256
implementations, the hash context we use is a real struct.  For these
implementations, it's possible to copy a hash context by making a copy
of the struct.

However, for our libgcrypt implementation, our hash context is a
pointer.  Consequently, copying it does not lead to an independent hash
context like we intended.

Fortunately, however, libgcrypt provides us with a handy function to
copy hash contexts.  Let's add a cloning function to the hash algorithm
API, and use it in the one place we need to make a hash context copy.
With this change, our libgcrypt SHA-256 implementation is fully
functional with all of our other hash implementations.

Signed-off-by: brian m. carlson <>
Signed-off-by: Junio C Hamano <>
2020-02-24 09:33:21 -08:00
block Add a base implementation of SHA-256 support 2018-11-14 16:54:53 +09:00
gcrypt.h hash: implement and use a context cloning function 2020-02-24 09:33:21 -08:00