diff --git a/devel/cgit/Makefile b/devel/cgit/Makefile index 875aa6a5e023..ee975c32fde5 100644 --- a/devel/cgit/Makefile +++ b/devel/cgit/Makefile @@ -2,7 +2,7 @@ PORTNAME= cgit PORTVERSION= 1.1 -PORTREVISION= 5 +PORTREVISION= 6 CATEGORIES= devel www MASTER_SITES= http://git.zx2c4.com/cgit/snapshot/:cgit \ https://www.kernel.org/pub/software/scm/git/:git diff --git a/devel/cgit/files/patch-SHA1-endianness b/devel/cgit/files/patch-SHA1-endianness new file mode 100644 index 000000000000..338a5e8ef211 --- /dev/null +++ b/devel/cgit/files/patch-SHA1-endianness @@ -0,0 +1,115 @@ +From 5d184f468e59cd9c5b51b5c139540015c8e41b18 Mon Sep 17 00:00:00 2001 +From: Jeff King +Date: Tue, 6 Jun 2017 15:01:11 -0400 +Subject: [PATCH 1/2] sha1dc: ignore indent-with-non-tab whitespace violations + +The upstream sha1dc code indents some lines with spaces. +While this doesn't match Git's coding guidelines, it's better +to leave this imported code untouched than to try to make it +match our style. However, we can use .gitattributes to tell +"diff --check" and "git am" not to bother us about it. + +Signed-off-by: Jeff King +Signed-off-by: Junio C Hamano +--- + sha1dc/.gitattributes | 1 + + 1 file changed, 1 insertion(+) + create mode 100644 sha1dc/.gitattributes + +From 6b851e536b05e0c8c61f77b9e4c3e7cedea39ff8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=C3=86var=20Arnfj=C3=B6r=C3=B0=20Bjarmason?= + +Date: Tue, 6 Jun 2017 15:12:29 +0000 +Subject: [PATCH 2/2] sha1dc: update from upstream +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Update sha1dc from the latest version by the upstream +maintainer[1]. + +See commit a0103914c2 ("sha1dc: update from upstream", 2017-05-20) for +the latest update. That update was done sans some whitespace changes +by upstream, which is why the diff here isn't the same as the upstream +cc46554..e139984. + +It also brings in a change[2] upstream made which should hopefully +address the breakage in 2.13.1 on Cygwin, see [3]. Cygwin defines both +_BIG_ENDIAN and _LITTLE_ENDIAN. + +Adam Dinwoodie reports on the mailing list that that upstream commit +fixes the issue on Cygwin[4]. + +1. https://github.com/cr-marcstevens/sha1collisiondetection/commit/e1399840b501a68ac6c8d7ed9a5cb1455480200e +2. https://github.com/cr-marcstevens/sha1collisiondetection/commit/a24eef58c0684078405f8c7a89f9b78271432005 +3. <20170606100355.GC25777@dinwoodie.org> (https://public-inbox.org/git/20170606100355.GC25777@dinwoodie.org/) +4. <20170606124323.GD25777@dinwoodie.org> (https://public-inbox.org/git/20170606124323.GD25777@dinwoodie.org/) + +Signed-off-by: Ævar Arnfjörð Bjarmason +Signed-off-by: Junio C Hamano +--- + sha1dc/sha1.c | 30 ++++++++++++++++++++++++------ + sha1dc/sha1.h | 6 +++--- + 2 files changed, 27 insertions(+), 9 deletions(-) + +diff --git a/sha1dc/sha1.c b/sha1dc/sha1.c +index 3dff80ac727aa..facea1bb560b5 100644 +--- git/sha1dc/sha1.c ++++ git/sha1dc/sha1.c +@@ -35,15 +35,33 @@ + #ifdef SHA1DC_BIGENDIAN + #undef SHA1DC_BIGENDIAN + #endif +-#if (!defined SHA1DC_FORCE_LITTLEENDIAN) && \ +- ((defined(__BYTE_ORDER) && (__BYTE_ORDER == __BIG_ENDIAN)) || \ +- (defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __BIG_ENDIAN__)) || \ +- defined(_BIG_ENDIAN) || defined(__BIG_ENDIAN__) || defined(__ARMEB__) || defined(__THUMBEB__) || defined(__AARCH64EB__) || \ +- defined(_MIPSEB) || defined(__MIPSEB) || defined(__MIPSEB__) || defined(SHA1DC_FORCE_BIGENDIAN)) + ++#if (defined(_BYTE_ORDER) || defined(__BYTE_ORDER) || defined(__BYTE_ORDER__)) ++ ++#if ((defined(_BYTE_ORDER) && (_BYTE_ORDER == _BIG_ENDIAN)) || \ ++ (defined(__BYTE_ORDER) && (__BYTE_ORDER == __BIG_ENDIAN)) || \ ++ (defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __BIG_ENDIAN__)) ) + #define SHA1DC_BIGENDIAN ++#endif ++ ++#else ++ ++#if (defined(_BIG_ENDIAN) || defined(__BIG_ENDIAN) || defined(__BIG_ENDIAN__) || \ ++ defined(__ARMEB__) || defined(__THUMBEB__) || defined(__AARCH64EB__) || \ ++ defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || \ ++ defined(__sparc)) ++#define SHA1DC_BIGENDIAN ++#endif + +-#endif /*ENDIANNESS SELECTION*/ ++#endif ++ ++#if (defined(SHA1DC_FORCE_LITTLEENDIAN) && defined(SHA1DC_BIGENDIAN)) ++#undef SHA1DC_BIGENDIAN ++#endif ++#if (defined(SHA1DC_FORCE_BIGENDIAN) && !defined(SHA1DC_BIGENDIAN)) ++#define SHA1DC_BIGENDIAN ++#endif ++/*ENDIANNESS SELECTION*/ + + #if (defined SHA1DC_FORCE_UNALIGNED_ACCESS || \ + defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64) || \ +diff --git a/sha1dc/sha1.h b/sha1dc/sha1.h +index a0ff5d1305797..1e4e94be54a6d 100644 +--- git/sha1dc/sha1.h ++++ git/sha1dc/sha1.h +@@ -61,9 +61,9 @@ void SHA1DCInit(SHA1_CTX*); + Function to enable safe SHA-1 hashing: + Collision attacks are thwarted by hashing a detected near-collision block 3 times. + Think of it as extending SHA-1 from 80-steps to 240-steps for such blocks: +- The best collision attacks against SHA-1 have complexity about 2^60, +- thus for 240-steps an immediate lower-bound for the best cryptanalytic attacks would be 2^180. +- An attacker would be better off using a generic birthday search of complexity 2^80. ++ The best collision attacks against SHA-1 have complexity about 2^60, ++ thus for 240-steps an immediate lower-bound for the best cryptanalytic attacks would be 2^180. ++ An attacker would be better off using a generic birthday search of complexity 2^80. + + Enabling safe SHA-1 hashing will result in the correct SHA-1 hash for messages where no collision attack was detected, + but it will result in a different SHA-1 hash for messages where a collision attack was detected.