Hendur Saga wrote 5 years ago
(name . Tobias Geerinckx-Rice via Guix-patches via)(address . guix-patches@gnu.org)
There are no tests, but I manually confirmed I could split and then combine shares. There is a warning about RLIMIT_MEMLOCK, because ssss tries to memory lock for security reasons, but I assumed that that was system-dependent and not something I should mess with in the package definition.
- Hendursaga
From e0d85f2bb840d0a3fa9c6c0e5236c3409fe4bd7c Mon Sep 17 00:00:00 2001
From: Hendursaga <hendursaga@yahoo.com>
Date: Wed, 19 Aug 2020 16:58:31 +0000
Subject: [PATCH] gnu: Add ssss.
* gnu/packages/crypto.scm (ssss): New variable.
---
gnu/packages/crypto.scm | 45 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)
Toggle diff (65 lines)
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index 5532f7e9f8..bc198ef48c 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -53,6 +53,8 @@
#:use-module (gnu packages libffi)
#:use-module (gnu packages linux)
#:use-module (gnu packages lsof)
+ #:use-module (gnu packages man)
+ #:use-module (gnu packages multiprecision)
#:use-module (gnu packages nettle)
#:use-module (gnu packages password-utils)
#:use-module (gnu packages perl)
@@ -394,6 +396,49 @@ generation of wordlists the included tool @code{worgen} can be used. There is
no man page, refer to the home page for usage details.")
(license (list license:isc license:expat)))))
+(define-public ssss
+ (package
+ (name "ssss")
+ (version "0.5")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://point-at-infinity.org/ssss/ssss-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "15grn2fp1x8p92kxkwbmsx8rz16g93y9grl3hfqbh1jn21ama5jx"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; No test suite
+ #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+ "CC=gcc")
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure) ; no configuration to be done
+ (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/ssss-"
+ ,version)))
+ (install-file "ssss-combine" bindir)
+ (install-file "ssss-split" bindir)
+ (install-file "ssss.1" docdir)
+ (install-file "ssss.1.html" docdir)
+ #t))))))
+ (inputs
+ `(("gmp" ,gmp)))
+ (native-inputs
+ `(("xmltoman" ,xmltoman)))
+ (home-page "http://point-at-infinity.org/ssss/")
+ (synopsis "Shamir's secret sharing scheme implementation")
+ (description "@command{ssss-split} and @command{ssss-combine} are utilities that split
+and combine secrets securely using Shamir's secret sharing scheme. This implementation
+allows for a threshold scheme where the minimum number of shares can be less than the
+total number of shares generated.")
+ (license license:gpl2+)))
+
(define-public tomb
(package
(name "tomb")
--
2.28.0