Browse Source

Merge branch 'ab/sha1dc'

The "collission-detecting" implementation of SHA-1 hash we borrowed
from is replaced by directly binding the upstream project as our
submodule.  Glitches on minority platforms are still being worked out.

* ab/sha1dc:
  sha1collisiondetection: automatically enable when submodule is populated
  sha1dc: optionally use sha1collisiondetection as a submodule
maint
Junio C Hamano 8 years ago
parent
commit
2db87328ef
  1. 4
      .gitmodules
  2. 16
      Makefile
  3. 4
      hash.h
  4. 1
      sha1collisiondetection

4
.gitmodules vendored

@ -0,0 +1,4 @@
[submodule "sha1collisiondetection"]
path = sha1collisiondetection
url = https://github.com/cr-marcstevens/sha1collisiondetection.git
branch = master

16
Makefile

@ -162,6 +162,12 @@ all::
# algorithm. This is slower, but may detect attempted collision attacks. # algorithm. This is slower, but may detect attempted collision attacks.
# Takes priority over other *_SHA1 knobs. # Takes priority over other *_SHA1 knobs.
# #
# Define DC_SHA1_SUBMODULE in addition to DC_SHA1 to use the
# sha1collisiondetection shipped as a submodule instead of the
# non-submodule copy in sha1dc/. This is an experimental option used
# by the git project to migrate to using sha1collisiondetection as a
# submodule.
#
# Define OPENSSL_SHA1 environment variable when running make to link # Define OPENSSL_SHA1 environment variable when running make to link
# with the SHA1 routine from openssl library. # with the SHA1 routine from openssl library.
# #
@ -1004,6 +1010,10 @@ EXTLIBS =


GIT_USER_AGENT = git/$(GIT_VERSION) GIT_USER_AGENT = git/$(GIT_VERSION)


ifeq ($(wildcard sha1collisiondetection/lib/sha1.h),sha1collisiondetection/lib/sha1.h)
DC_SHA1_SUBMODULE = auto
endif

include config.mak.uname include config.mak.uname
-include config.mak.autogen -include config.mak.autogen
-include config.mak -include config.mak
@ -1449,8 +1459,14 @@ ifdef APPLE_COMMON_CRYPTO
BASIC_CFLAGS += -DSHA1_APPLE BASIC_CFLAGS += -DSHA1_APPLE
else else
DC_SHA1 := YesPlease DC_SHA1 := YesPlease
ifdef DC_SHA1_SUBMODULE
LIB_OBJS += sha1collisiondetection/lib/sha1.o
LIB_OBJS += sha1collisiondetection/lib/ubc_check.o
BASIC_CFLAGS += -DDC_SHA1_SUBMODULE
else
LIB_OBJS += sha1dc/sha1.o LIB_OBJS += sha1dc/sha1.o
LIB_OBJS += sha1dc/ubc_check.o LIB_OBJS += sha1dc/ubc_check.o
endif
BASIC_CFLAGS += \ BASIC_CFLAGS += \
-DSHA1_DC \ -DSHA1_DC \
-DSHA1DC_NO_STANDARD_INCLUDES \ -DSHA1DC_NO_STANDARD_INCLUDES \

4
hash.h

@ -8,7 +8,11 @@
#elif defined(SHA1_OPENSSL) #elif defined(SHA1_OPENSSL)
#include <openssl/sha.h> #include <openssl/sha.h>
#elif defined(SHA1_DC) #elif defined(SHA1_DC)
#ifdef DC_SHA1_SUBMODULE
#include "sha1collisiondetection/lib/sha1.h"
#else
#include "sha1dc/sha1.h" #include "sha1dc/sha1.h"
#endif
#else /* SHA1_BLK */ #else /* SHA1_BLK */
#include "block-sha1/sha1.h" #include "block-sha1/sha1.h"
#endif #endif

1
sha1collisiondetection

@ -0,0 +1 @@
Subproject commit 19d97bf5af05312267c2e874ee6bcf584d9e9681
Loading…
Cancel
Save