summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>2017-07-01 22:05:46 +0000
committerJunio C Hamano <gitster@pobox.com>2017-07-03 10:09:34 -0700
commit86cfd61e6bc12745751c43b4f69886b290cd85cb (patch)
tree5a770d2400f5d4c37248d31056f962bf2cbe2cbf
parent9936c1b52a39fa14fca04f937df3e75f7498ac66 (diff)
downloadgit-86cfd61e6bc12745751c43b4f69886b290cd85cb.tar.gz
sha1dc: optionally use sha1collisiondetection as a submodule
Add an option to use the sha1collisiondetection library from the submodule in sha1collisiondetection/ instead of in the copy in the sha1dc/ directory. This allows us to try out the submodule in sha1collisiondetection without breaking the build for anyone who's not expecting them as we work out any kinks. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--.gitmodules4
-rw-r--r--Makefile12
-rw-r--r--hash.h4
m---------sha1collisiondetection0
4 files changed, 20 insertions, 0 deletions
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000000..cbeebdab7a
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,4 @@
+[submodule "sha1collisiondetection"]
+ path = sha1collisiondetection
+ url = https://github.com/cr-marcstevens/sha1collisiondetection.git
+ branch = master
diff --git a/Makefile b/Makefile
index ffa6da71b7..6baad1669e 100644
--- a/Makefile
+++ b/Makefile
@@ -144,6 +144,12 @@ all::
# algorithm. This is slower, but may detect attempted collision attacks.
# 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
# with the SHA1 routine from openssl library.
#
@@ -1412,8 +1418,14 @@ ifdef APPLE_COMMON_CRYPTO
BASIC_CFLAGS += -DSHA1_APPLE
else
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/ubc_check.o
+endif
BASIC_CFLAGS += \
-DSHA1_DC \
-DSHA1DC_NO_STANDARD_INCLUDES \
diff --git a/hash.h b/hash.h
index a11fc9233f..bef3e630a0 100644
--- a/hash.h
+++ b/hash.h
@@ -8,7 +8,11 @@
#elif defined(SHA1_OPENSSL)
#include <openssl/sha.h>
#elif defined(SHA1_DC)
+#ifdef DC_SHA1_SUBMODULE
+#include "sha1collisiondetection/lib/sha1.h"
+#else
#include "sha1dc/sha1.h"
+#endif
#else /* SHA1_BLK */
#include "block-sha1/sha1.h"
#endif
diff --git a/sha1collisiondetection b/sha1collisiondetection
new file mode 160000
+Subproject 19d97bf5af05312267c2e874ee6bcf584d9e968