Skip to content
  • brian m. carlson's avatar
    sha256: add an SHA-256 implementation using libgcrypt · 27dc04c5
    brian m. carlson authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    Generally, one gets better performance out of cryptographic routines
    written in assembly than C, and this is also true for SHA-256.  In
    addition, most Linux distributions cannot distribute Git linked against
    OpenSSL for licensing reasons.
    
    Most systems with GnuPG will also have libgcrypt, since it is a
    dependency of GnuPG.  libgcrypt is also faster than the SHA1DC
    implementation for messages of a few KiB and larger.
    
    For comparison, on a Core i7-6600U, this implementation processes 16 KiB
    chunks at 355 MiB/s while SHA1DC processes equivalent chunks at 337
    MiB/s.
    
    In addition, libgcrypt is licensed under the LGPL 2.1, which is
    compatible with the GPL.  Add an implementation of SHA-256 that uses
    libgcrypt.
    
    Signed-off-by: default avatarbrian m. carlson <sandals@crustytoothpaste.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    27dc04c5