Skip to content
  • brian m. carlson's avatar
    hash: implement and use a context cloning function · 768e30ea
    brian m. carlson authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    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: default avatarbrian m. carlson <sandals@crustytoothpaste.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    768e30ea