summary refs log tree commit diff
path: root/gnu/packages/crypto.scm
diff options
context:
space:
mode:
authorHendursaga <hendursaga@yahoo.com>2020-08-19 16:58:31 +0000
committerLudovic Courtès <ludo@gnu.org>2020-08-26 12:04:51 +0200
commitce022b2e142c75b9e4d05fc1aec91e345dc374a7 (patch)
treed4bdfb88196daf49492b2c0c79fd8858535165e7 /gnu/packages/crypto.scm
parent38f789844f38d8b8d84acbc4cf8c0042965c3aee (diff)
downloadguix-ce022b2e142c75b9e4d05fc1aec91e345dc374a7.tar.gz
gnu: Add ssss.
* gnu/packages/crypto.scm (ssss): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/packages/crypto.scm')
-rw-r--r--gnu/packages/crypto.scm46
1 files changed, 46 insertions, 0 deletions
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index 5532f7e9f8..53af54c965 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -17,6 +17,7 @@
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2020 Hendur Saga <hendursaga@yahoo.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -53,6 +54,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 +397,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")