Skip to content

When DC_SHA1 was made the default we missed a spot

Ævar Arnfjörð Bjarmason git 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest2 patches 5 repliesIn review
  2. v12 patches 4 repliesSuperseded

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/2Makefile: NO_OPENSSL=1 should no longer imply BLK_SHA1=1Makefile configure.ac+0 -31 reply
2/2Windows: stop supplying BLK_SHA1=YesPlease by defaultconfig.mak.uname+0 -14 replies

Reviews trailers per patch

All 2 patches have a Reviewed-by or Acked-by.

PatchJonathan Nieder
1/2Helped-by R-b R-b
2/2R-b R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v2 thread

Cover letter [PATCH v2 0/2] When DC_SHA1 was made the default we missed a spot

On Wed, Dec 27 2017, Jonathan Nieder jotted:

Here's v2, the only changes are to the commit messages.

Quoted 27 lines
Quoted 3 lines · Ævar Arnfjörð Bjarmason

Stop supplying BLK_SHA1=YesPlease when NO_OPENSSL=UnfortunatelyYes is supplied. This has been done ever since [1], when switching to DC_SHA1 by default in [2] this should have been changed as well.

I had trouble parsing this, I think for a few reasons:

1. Too much 'this', so I end up not being able to keep track of what has been done ever since (1) and (2)

2. The ',' should be a ';'

3. Can the commit names go inline in the message instead of being footnotes? That way, my eye doesn't have to chase so far to find what kind of dates you are talking about.

4. Why should switching to DC_SHA1 by default have resulted in simply dropping the NO_OPENSSL => BLK_SHA1 behavior? At first glance it would be more intuitive to change it to NO_OPENSSL => DC_SHA1 instead.

Putting those all together, I end up with

Use the collision detecting SHA-1 implementation by default even when NO_OPENSSL is set.

Quoted 7 lines

Setting NO_OPENSSL=UnfortunatelyYes has implied BLK_SHA1=1 ever since the former was introduced in dd53c7ab29 (Support for NO_OPENSSL, 2005-07-29). That implication should have been removed when the default SHA-1 implementation changed from OpenSSL to DC_SHA1 in e6b07da278 (Makefile: make DC_SHA1 the default, 2017-03-17). Finish what that commit started by removing the BLK_SHA1 fallback setting so the default DC_SHA1 implementation can be used.

Thanks. I've used that as-is, and also changed 2/2 to inline the comment references.

Quoted 6 lines

What happens if I set both OPENSSL_SHA1 and NO_OPENSSL? Should this block set

OPENSSL_SHA1 =

so that the latter wins, or should we detect it as an error?

We fail at link-time if you supply both, but that's something that happens alredy in master.

It's probably not worth the effort to add an $(error ...) for that to the Makefile (I've added some of these already) since the error should be fairly obvious, as opposed to some of the subtle "that doesn't work like that anymore" errorors I've added recently for other topics.

Quoted 30 lines

[...]

Quoted 23 lines
Makefile +0 -2
@@ -23,7 +23,6 @@ all::
 # it at all).
 #
 # Define NO_OPENSSL environment variable if you do not have OpenSSL.
-# This also implies BLK_SHA1.
 #
 # Define USE_LIBPCRE if you have and want to use libpcre. Various
 # commands such as log and grep offer runtime options to use
@@ -1260,7 +1259,6 @@ ifndef NO_OPENSSL
 	endif
 else
 	BASIC_CFLAGS += -DNO_OPENSSL
-	BLK_SHA1 = 1
 	OPENSSL_LIBSSL =
 endif
 ifdef NO_OPENSSL
configure.ac +0 -0
index 2f55237e65..7f8415140f 100644

configure.ac AC_MSG_NOTICE([CHECKS for site configuration]) · line 244

Quoted 4 lines
configure.ac +0 -1
@@ -241,7 +241,6 @@ AC_MSG_NOTICE([CHECKS for site configuration])
 # a bundled SHA1 routine optimized for PowerPC.
 #
 # Define NO_OPENSSL environment variable if you do not have OpenSSL.
-# This also implies BLK_SHA1.

With or without some of those commit message tweaks

Quoted 1 line

Thanks!

Ævar Arnfjörð Bjarmason (2):
Makefile: NO_OPENSSL=1 should no longer imply BLK_SHA1=1
Windows: stop supplying BLK_SHA1=YesPlease by default

 Makefile         | 2 --
 config.mak.uname | 1 -
 configure.ac     | 1 -
 3 files changed, 4 deletions(-)
Signature · 1 line
2.15.1.424.g9478a66081