]> git.ipfire.org Git - thirdparty/git.git/commit - sha1-file.c
hash: implement and use a context cloning function
authorbrian m. carlson <sandals@crustytoothpaste.net>
Sat, 22 Feb 2020 20:17:27 +0000 (20:17 +0000)
committerJunio C Hamano <gitster@pobox.com>
Mon, 24 Feb 2020 17:33:21 +0000 (09:33 -0800)
commit768e30ea27c58aa69893e10b96ba5ba5680dc3cf
treeeed6e6b8db5bcef9ee99aa7e1fd675da3e6e7e54
parent207899137dd75916f65bb9988ccf0559760427d6
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 <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
csum-file.c
hash.h
sha1-file.c
sha256/gcrypt.h