diff options
author | Jakub Kądziołka <kuba@kadziolka.net> | 2020-03-20 20:31:59 +0100 |
---|---|---|
committer | Jakub Kądziołka <kuba@kadziolka.net> | 2020-03-21 12:56:11 +0100 |
commit | bbeb710de70521010b3d432cb5b4b14ce6e45ca6 (patch) | |
tree | 9101a4fb80afa9b16ebe56b074be73ad1ba60ac8 | |
parent | f2c7513d1604076049d1834580d218d764e6b85b (diff) | |
download | guix-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.mk | 1 | ||||
-rw-r--r-- | gnu/packages/crypto.scm | 45 | ||||
-rw-r--r-- | gnu/packages/patches/hash-extender-test-suite.patch | 13 |
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); ++ } + } |