summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Kądziołka <kuba@kadziolka.net>2020-03-20 20:31:59 +0100
committerJakub Kądziołka <kuba@kadziolka.net>2020-03-21 12:56:11 +0100
commitbbeb710de70521010b3d432cb5b4b14ce6e45ca6 (patch)
tree9101a4fb80afa9b16ebe56b074be73ad1ba60ac8
parentf2c7513d1604076049d1834580d218d764e6b85b (diff)
downloadpatches-bbeb710de70521010b3d432cb5b4b14ce6e45ca6.tar
patches-bbeb710de70521010b3d432cb5b4b14ce6e45ca6.tar.gz
gnu: Add hash-extender.
* gnu/packages/crypto.scm (hash-extender): New variable. * gnu/packages/patches/hash-extender-test-suite.patch: New file. * gnu/local.mk (dist_patch_DATA): Register the new file.
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/crypto.scm45
-rw-r--r--gnu/packages/patches/hash-extender-test-suite.patch13
3 files changed, 59 insertions, 0 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index f2f096c51c..1c4a0b4231 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1005,6 +1005,7 @@ dist_patch_DATA = \
%D%/packages/patches/gtksourceview-2-add-default-directory.patch \
%D%/packages/patches/gzdoom-search-in-installed-share.patch \
%D%/packages/patches/gzdoom-find-system-libgme.patch \
+ %D%/packages/patches/hash-extender-test-suite.patch \
%D%/packages/patches/haskell-mode-unused-variables.patch \
%D%/packages/patches/haskell-mode-make-check.patch \
%D%/packages/patches/hdf4-architectures.patch \
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index b808211b2d..afe85ae497 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -14,6 +14,7 @@
;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
+;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1072,3 +1073,47 @@ cryptographic ratchet. It is written in C and C++11, and exposed as a C
API.")
(home-page "https://matrix.org/docs/projects/other/olm/")
(license license:asl2.0)))
+
+(define-public hash-extender
+ (let ((commit "9ecef26809a1ceea2a455f6f591b004298df551b")
+ (revision "1"))
+ (package
+ (name "hash-extender")
+ (version (git-version "0.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/iagox86/hash_extender")
+ (commit commit)))
+ (sha256
+ (base32
+ "0fqy3d559zgf71w39py0931d8na0ylils45r8zs6r79wgr6qn78c"))
+ (file-name (git-file-name name version))
+ (patches
+ (search-patches "hash-extender-test-suite.patch"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'check
+ (lambda _
+ (invoke "./hash_extender_test")))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((outdir (assoc-ref outputs "out"))
+ (bindir (string-append outdir "/bin"))
+ (docdir (string-append outdir
+ "/share/doc/hash-extender-"
+ ,version)))
+ (install-file "hash_extender" bindir)
+ (install-file "README.md" docdir)
+ #t))))))
+ (inputs
+ `(("openssl" ,openssl)))
+ (synopsis "Tool for hash length extension attacks")
+ (description "@command{hash_extender} is a utility for performing hash
+length extension attacks supporting MD4, MD5, RIPEMD-160, SHA-0, SHA-1,
+SHA-256, SHA-512, and WHIRLPOOL hashes.")
+ (home-page "https://github.com/iagox86/hash_extender")
+ (license license:bsd-3))))
diff --git a/gnu/packages/patches/hash-extender-test-suite.patch b/gnu/packages/patches/hash-extender-test-suite.patch
new file mode 100644
index 0000000000..59de52dad4
--- /dev/null
+++ b/gnu/packages/patches/hash-extender-test-suite.patch
@@ -0,0 +1,13 @@
+Make the test suite exit with a non-zero exit code if some tests failed.
+Pull request pending upstream: https://github.com/iagox86/hash_extender/pull/13
+--- a/test.c
++++ b/test.c
+@@ -79,5 +79,9 @@ void test_report(void)
+ printf("TESTS PASSED: %d / %d [%2.4f%%]\n", tests_passed, tests_run, 100 * (float)tests_passed / tests_run);
+ printf("--------------------------------------------------------------------------------\n");
+ }
++
++ if (tests_passed != tests_run) {
++ exit(1);
++ }
+ }