gnu: libassuan: Update to 2.4.2.
[jackhill/guix/guix.git] / gnu / packages / gnupg.scm
CommitLineData
233e7676 1;;; GNU Guix --- Functional package management for GNU
9041d935 2;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
a02ee3d7 3;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
4380a7b4 4;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
751be9a0 5;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
5dabdb75 6;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
b682a776 7;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
8d1939e4 8;;;
233e7676 9;;; This file is part of GNU Guix.
8d1939e4 10;;;
233e7676 11;;; GNU Guix is free software; you can redistribute it and/or modify it
8d1939e4
LC
12;;; under the terms of the GNU General Public License as published by
13;;; the Free Software Foundation; either version 3 of the License, or (at
14;;; your option) any later version.
15;;;
233e7676 16;;; GNU Guix is distributed in the hope that it will be useful, but
8d1939e4
LC
17;;; WITHOUT ANY WARRANTY; without even the implied warranty of
18;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19;;; GNU General Public License for more details.
20;;;
21;;; You should have received a copy of the GNU General Public License
233e7676 22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
8d1939e4 23
1ffa7090 24(define-module (gnu packages gnupg)
07157e8a 25 #:use-module ((guix licenses) #:prefix license:)
01e11826
AE
26 #:use-module (gnu packages curl)
27 #:use-module (gnu packages openldap)
ea4d96c6 28 #:use-module (gnu packages perl)
1ffa7090 29 #:use-module (gnu packages pth)
ea4d96c6 30 #:use-module (gnu packages python)
1ffa7090 31 #:use-module (gnu packages readline)
07157e8a 32 #:use-module (gnu packages compression)
40d806af
LC
33 #:use-module (gnu packages gtk)
34 #:use-module (gnu packages glib)
35 #:use-module (gnu packages pkg-config)
36 #:use-module (gnu packages ncurses)
a7fd7b68 37 #:use-module (gnu packages tls)
8d1939e4 38 #:use-module (guix packages)
87f5d366 39 #:use-module (guix download)
14e2e44d
LC
40 #:use-module (guix build-system gnu)
41 #:use-module (guix build-system python))
8d1939e4
LC
42
43(define-public libgpg-error
44 (package
45 (name "libgpg-error")
c273728a 46 (version "1.19")
8d1939e4
LC
47 (source
48 (origin
87f5d366 49 (method url-fetch)
0db342a5 50 (uri (string-append "mirror://gnupg/libgpg-error/libgpg-error-"
8d1939e4
LC
51 version ".tar.bz2"))
52 (sha256
53 (base32
c273728a 54 "12wpqhjlsw4iaanifbqm2kich6c7x7lm8a7zhy6x5ifm6c9hw4jk"))))
8d1939e4
LC
55 (build-system gnu-build-system)
56 (home-page "http://gnupg.org")
35b9e423 57 (synopsis "Library of error values for GnuPG components")
8d1939e4
LC
58 (description
59 "Libgpg-error is a small library that defines common error values
60for all GnuPG components. Among these are GPG, GPGSM, GPGME,
61GPG-Agent, libgcrypt, Libksba, DirMngr, Pinentry, SmartCard
62Daemon and possibly more in the future.")
07157e8a 63 (license license:lgpl2.0+)))
8d1939e4
LC
64
65(define-public libgcrypt
66 (package
67 (name "libgcrypt")
751be9a0 68 (version "1.6.3")
84a3e3b7
LC
69 (source (origin
70 (method url-fetch)
71 (uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-"
72 version ".tar.bz2"))
73 (sha256
74 (base32
751be9a0 75 "0pq2nwfqgggrsh8rk84659d80vfnlkbphwqjwahccd5fjdxr3d21"))))
8d1939e4
LC
76 (build-system gnu-build-system)
77 (propagated-inputs
e0932742 78 `(("libgpg-error-host" ,libgpg-error)))
e766f699
JD
79 (native-inputs
80 ;; Needed here for the 'gpg-error' program.
e0932742 81 `(("libgpg-error-native" ,libgpg-error)))
e766f699
JD
82 (arguments
83 ;; The '--with-gpg-error-prefix' argument is needed because otherwise
84 ;; 'configure' uses 'gpg-error-config' to determine the '-L' flag, and
85 ;; the 'gpg-error-config' it runs is the native one---i.e., the wrong one.
86 `(#:configure-flags
87 (list (string-append "--with-gpg-error-prefix="
e0932742 88 (assoc-ref %build-inputs "libgpg-error-host")))))
40fed2d8 89 (outputs '("out" "debug"))
8d1939e4 90 (home-page "http://gnupg.org/")
f50d2669 91 (synopsis "Cryptographic function library")
8d1939e4 92 (description
a22dc0c4
LC
93 "Libgcrypt is a general-purpose cryptographic library. It provides the
94standard cryptographic building blocks such as symmetric ciphers, hash
95algorithms, public key algorithms, large integer functions and random number
96generation.")
07157e8a 97 (license license:lgpl2.0+)))
8d1939e4 98
a53421fd
AE
99(define-public libgcrypt-1.5
100 (package (inherit libgcrypt)
460f97f8 101 (version "1.5.4")
a53421fd
AE
102 (source
103 (origin
104 (method url-fetch)
105 (uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-"
106 version ".tar.bz2"))
107 (sha256
108 (base32
460f97f8 109 "0czvqxkzd5y872ipy6s010ifwdwv29sqbnqc4pf56sd486gqvy6m"))))))
a53421fd 110
8d1939e4
LC
111(define-public libassuan
112 (package
113 (name "libassuan")
b682a776 114 (version "2.4.2")
8d1939e4
LC
115 (source
116 (origin
87f5d366 117 (method url-fetch)
0db342a5 118 (uri (string-append "mirror://gnupg/libassuan/libassuan-"
8d1939e4
LC
119 version ".tar.bz2"))
120 (sha256
121 (base32
b682a776 122 "086bbcdnvs48qq5g4iac7dpk76j0q3jrp16mchdvyx0b720xq1mv"))))
8d1939e4
LC
123 (build-system gnu-build-system)
124 (propagated-inputs
125 `(("libgpg-error" ,libgpg-error) ("pth" ,pth)))
126 (home-page "http://gnupg.org")
127 (synopsis
35b9e423 128 "IPC library used by GnuPG and related software")
8d1939e4
LC
129 (description
130 "Libassuan is a small library implementing the so-called Assuan
131protocol. This protocol is used for IPC between most newer
132GnuPG components. Both, server and client side functions are
133provided.")
07157e8a 134 (license license:lgpl2.0+)))
8d1939e4
LC
135
136(define-public libksba
137 (package
138 (name "libksba")
19bda3f1 139 (version "1.3.3")
8d1939e4
LC
140 (source
141 (origin
87f5d366 142 (method url-fetch)
8d1939e4 143 (uri (string-append
0db342a5 144 "mirror://gnupg/libksba/libksba-"
8d1939e4
LC
145 version ".tar.bz2"))
146 (sha256
147 (base32
19bda3f1 148 "11kp3h9l3b8ikydkcdkwgx45r662zi30m26ra5llyhfh6kz5yzqc"))))
8d1939e4
LC
149 (build-system gnu-build-system)
150 (propagated-inputs
151 `(("libgpg-error" ,libgpg-error)))
e766f699
JD
152 (native-inputs
153 `(("libgpg-error" ,libgpg-error)))
154 (arguments
155 `(#:configure-flags
156 (list ,@(if (%current-target-system)
157 '("CC_FOR_BUILD=gcc")
158 '())
159 (string-append "--with-gpg-error-prefix="
160 (assoc-ref %build-inputs "libgpg-error")))))
8d1939e4 161 (home-page "http://www.gnupg.org")
35b9e423 162 (synopsis "CMS and X.509 access library")
8d1939e4
LC
163 (description
164 "KSBA (pronounced Kasbah) is a library to make X.509 certificates
165as well as the CMS easily accessible by other applications. Both
166specifications are building blocks of S/MIME and TLS.")
07157e8a 167 (license license:gpl3+)))
8d1939e4 168
c18ea90f
AE
169(define-public npth
170 (package
171 (name "npth")
b96485b9 172 (version "1.2")
c18ea90f
AE
173 (source
174 (origin
175 (method url-fetch)
176 (uri (string-append
177 "mirror://gnupg/npth/npth-"
178 version ".tar.bz2"))
179 (sha256
180 (base32
b96485b9 181 "12n0nvhw4fzwp0k7gjv3rc6pdml0qiinbbfiz4ilg6pl5kdxvnvd"))))
c18ea90f
AE
182 (build-system gnu-build-system)
183 (home-page "http://www.gnupg.org")
184 (synopsis "Non-preemptive thread library")
185 (description
186 "Npth is a library to provide the GNU Pth API and thus a non-preemptive
187threads implementation.
188
189In contrast to GNU Pth is is based on the system's standard threads
190implementation. This allows the use of libraries which are not
191compatible to GNU Pth.")
07157e8a 192 (license (list license:lgpl3+ license:gpl2+)))) ; dual license
c18ea90f 193
8d1939e4
LC
194(define-public gnupg
195 (package
196 (name "gnupg")
ed019703 197 (version "2.1.9")
58970d6a
LC
198 (source (origin
199 (method url-fetch)
200 (uri (string-append "mirror://gnupg/gnupg/gnupg-" version
201 ".tar.bz2"))
202 (sha256
203 (base32
ed019703 204 "1dpp555glln6fldk72ad7lkrn8h3cr2bg714z5kfn2qrawx67dqw"))))
8d1939e4 205 (build-system gnu-build-system)
08fa45b1
MW
206 (native-inputs
207 `(("pkg-config" ,pkg-config)))
8d1939e4 208 (inputs
07157e8a 209 `(("bzip2" ,bzip2)
01e11826 210 ("curl" ,curl)
08fa45b1 211 ("gnutls" ,gnutls)
8d1939e4
LC
212 ("libassuan" ,libassuan)
213 ("libgcrypt" ,libgcrypt)
01e11826 214 ("libgpg-error" ,libgpg-error)
8d1939e4 215 ("libksba" ,libksba)
cd064df7 216 ("npth" ,npth)
01e11826 217 ("openldap" ,openldap)
07157e8a 218 ("zlib" ,zlib)
8d1939e4 219 ("readline" ,readline)))
30e9cbb4
AE
220 (arguments
221 `(#:phases
d4bf49b1
EB
222 (alist-cons-before
223 'configure 'patch-config-files
224 (lambda _
cd064df7
AE
225 (substitute* "tests/openpgp/defs.inc"
226 (("/bin/pwd") (which "pwd"))))
30e9cbb4 227 %standard-phases)))
8d1939e4 228 (home-page "http://gnupg.org/")
f50d2669 229 (synopsis "GNU Privacy Guard")
8d1939e4 230 (description
a22dc0c4
LC
231 "The GNU Privacy Guard is a complete implementation of the OpenPGP
232standard. It is used to encrypt and sign data and communication. It
233features powerful key management and the ability to access public key
79c311b8 234servers. It includes several libraries: libassuan (IPC between GnuPG
58970d6a
LC
235components), libgpg-error (centralized GnuPG error values), and
236libskba (working with X.509 certificates and CMS data).")
07157e8a 237 (license license:gpl3+)))
ea4d96c6 238
cd064df7
AE
239(define-public gnupg-2.0
240 (package (inherit gnupg)
de8a1818 241 (version "2.0.28")
cd064df7
AE
242 (source (origin
243 (method url-fetch)
244 (uri (string-append "mirror://gnupg/gnupg/gnupg-" version
245 ".tar.bz2"))
246 (sha256
247 (base32
de8a1818 248 "0k2k399fnhfhhr4dvm8d6vs4ihq6gg06191lzfwikzaqmgj2w2ff"))))
08fa45b1 249 (native-inputs '())
cd064df7 250 (inputs
07157e8a 251 `(("bzip2" ,bzip2)
cd064df7
AE
252 ("curl" ,curl)
253 ("libassuan" ,libassuan)
254 ("libgcrypt" ,libgcrypt)
255 ("libgpg-error" ,libgpg-error)
256 ("libksba" ,libksba)
257 ("pth" ,pth)
258 ("openldap" ,openldap)
07157e8a 259 ("zlib" ,zlib)
cd064df7
AE
260 ("readline" ,readline)))
261 (arguments
262 `(#:phases
263 (alist-cons-before
264 'configure 'patch-config-files
265 (lambda _
266 (substitute* "tests/openpgp/Makefile.in"
267 (("/bin/sh") (which "bash"))))
268 %standard-phases)))))
269
5249045c
MW
270(define-public gnupg-1
271 (package (inherit gnupg)
9041d935 272 (version "1.4.19")
58970d6a
LC
273 (source (origin
274 (method url-fetch)
275 (uri (string-append "mirror://gnupg/gnupg/gnupg-" version
276 ".tar.bz2"))
277 (sha256
278 (base32
9041d935 279 "11pxx26sfilh0vswylh9mhiifw5yffw7nn733zknw3sb0jfk22bz"))))
08fa45b1 280 (native-inputs '())
5249045c 281 (inputs
07157e8a
LC
282 `(("zlib" ,zlib)
283 ("bzip2" ,bzip2)
5249045c
MW
284 ("curl" ,curl)
285 ("readline" ,readline)
286 ("libgpg-error" ,libgpg-error)))
287 (arguments
288 `(#:phases (alist-cons-after
289 'unpack 'patch-check-sh
290 (lambda _
291 (substitute* "checks/Makefile.in"
292 (("/bin/sh") (which "bash"))))
293 %standard-phases)))))
294
09d5c166
AE
295(define-public gpgme
296 (package
297 (name "gpgme")
a0e984c3 298 (version "1.5.5")
09d5c166
AE
299 (source
300 (origin
301 (method url-fetch)
302 (uri (string-append "mirror://gnupg/gpgme/gpgme-" version
303 ".tar.bz2"))
304 (sha256
305 (base32
a0e984c3 306 "01y28fkq52wwf4p470wscaxd2vgzl615irmafx3mj3380x8ksg8b"))))
09d5c166 307 (build-system gnu-build-system)
68640c3c
MW
308 (propagated-inputs
309 ;; Needs to be propagated because gpgme.h includes gpg-error.h.
310 `(("libgpg-error" ,libgpg-error)))
09d5c166 311 (inputs
ae3bded6 312 `(("gnupg" ,gnupg-2.0)
68640c3c 313 ("libassuan" ,libassuan)))
e6a83df1 314 (arguments '(#:make-flags '("GPG=gpg2")))
09d5c166 315 (home-page "http://www.gnupg.org/related_software/gpgme/")
35b9e423 316 (synopsis "Library providing simplified access to GnuPG functionality")
09d5c166
AE
317 (description
318 "GnuPG Made Easy (GPGME) is a library designed to make access to GnuPG
319easier for applications. It provides a High-Level Crypto API for encryption,
320decryption, signing, signature verification and key management. Currently
321it uses GnuPG as its backend but the API isn't restricted to this engine.
322
323Because the direct use of GnuPG from an application can be a complicated
324programming task, it is suggested that all software should try to use GPGME
325instead. This way bug fixes or improvements can be done at a central place
326and every application benefits from this.")
07157e8a 327 (license license:lgpl2.1+)))
09d5c166 328
22af9029
RW
329(define-public python-gnupg
330 (package
331 (name "python-gnupg")
332 (version "0.3.7")
333 (source
334 (origin
335 (method url-fetch)
336 (uri (string-append "https://pypi.python.org/packages/source/p/"
337 "python-gnupg/python-gnupg-" version ".tar.gz"))
338 (sha256
339 (base32
340 "1hg9gshk4b7raskj8mjadsjcv10axlx2z4xl4ag2f2bpi4f8chvq"))))
341 (build-system python-build-system)
342 (arguments
343 `(#:phases
344 (modify-phases %standard-phases
345 (replace 'check
346 (lambda* (#:key inputs #:allow-other-keys)
347 (substitute* "test_gnupg.py"
348 ;; Test keyrings are missing, so this test fails.
349 (("'test_scan_keys'") "True")
350 (("def test_scan_keys") "def disabled__scan_keys")
351 ;; Unsure why this test fails.
352 (("'test_search_keys'") "True")
353 (("def test_search_keys") "def disabled__search_keys"))
354 (setenv "GPGBINARY" "gpg")
355 (setenv "USERNAME" "guixbuilder")
356 ;; The doctests are extremely slow and sometimes time out,
357 ;; so we disable them.
358 (zero? (system* "python"
359 "test_gnupg.py" "--no-doctests")))))))
360 (native-inputs
361 `(("gnupg" ,gnupg-1)))
362 (home-page "http://packages.python.org/python-gnupg/index.html")
363 (synopsis "Wrapper for the GNU Privacy Guard")
364 (description
365 "This module allows easy access to GnuPG’s key management, encryption
366and signature functionality from Python programs.")
367 (license license:bsd-3)))
368
369(define-public python2-gnupg
370 (package-with-python2 python-gnupg))
371
ea4d96c6
AE
372(define-public pius
373 (package
374 (name "pius")
e2e3600f 375 (version "2.2.1")
ea4d96c6
AE
376 (source (origin
377 (method url-fetch)
e2e3600f
LC
378 (uri (string-append
379 "https://github.com/jaymzh/pius/releases/download/v"
380 version "/pius-" version ".tar.bz2"))
381 (sha256
382 (base32
383 "003dwpamq0c7w8q9zpgi4h03rs8rwjm0czkn9s60m91p6aql5f42"))))
14e2e44d
LC
384 (build-system python-build-system)
385 (inputs `(("perl" ,perl) ;for 'pius-party-worksheet'
31fbf4b6 386 ("gpg" ,gnupg-2.0))) ;2.1 fails to talk to gpg-agent 2.0
ea4d96c6
AE
387 (arguments
388 `(#:tests? #f
14e2e44d 389 #:python ,python-2 ;uses the Python 2 'print' syntax
ea4d96c6 390 #:phases
14e2e44d
LC
391 (modify-phases %standard-phases
392 (add-before
393 'build 'set-gpg-file-name
394 (lambda* (#:key inputs outputs #:allow-other-keys)
395 (let* ((gpg (string-append (assoc-ref inputs "gpg")
396 "/bin/gpg2")))
397 (substitute* "libpius/constants.py"
e2e3600f 398 (("/usr/bin/gpg2") gpg))))))))
9eed6f9b 399 (synopsis "Programs to simplify GnuPG key signing")
ea4d96c6
AE
400 (description
401 "Pius (PGP Individual UID Signer) helps attendees of PGP keysigning
35b9e423
EB
402parties. It is the main utility and makes it possible to quickly and easily
403sign each UID on a set of PGP keys. It is designed to take the pain out of
ea4d96c6
AE
404the sign-all-the-keys part of PGP Keysigning Party while adding security
405to the process.
406
407pius-keyring-mgr and pius-party-worksheet help organisers of
408PGP keysigning parties.")
07157e8a 409 (license license:gpl2)
ea4d96c6 410 (home-page "http://www.phildev.net/pius/index.shtml")))
96be765c
AE
411
412(define-public signing-party
413 (package
414 (name "signing-party")
415 (version "1.1.4")
416 (source (origin
417 (method url-fetch)
418 (uri (string-append "http://ftp.debian.org/debian/pool/main/s/signing-party/signing-party_"
419 version ".orig.tar.gz"))
420 (sha256 (base32
421 "188gp0prbh8qs29lq3pbf0qibfd6jq4fk7i0pfrybl8aahvm84rx"))))
422 (build-system gnu-build-system)
423 (inputs `(("perl" ,perl)))
424 (arguments
425 `(#:tests? #f
426 #:phases
d4bf49b1
EB
427 (alist-cons-after
428 'unpack 'remove-spurious-links
429 (lambda _ (delete-file "keyanalyze/pgpring/depcomp"))
96be765c
AE
430 (alist-replace
431 'configure
432 (lambda* (#:key outputs #:allow-other-keys)
433 (let ((out (assoc-ref outputs "out")))
434 (substitute* "keyanalyze/Makefile"
435 (("LDLIBS") (string-append "CC=" (which "gcc") "\nLDLIBS")))
436 (substitute* "keyanalyze/Makefile"
437 (("./configure") (string-append "./configure --prefix=" out)))
438 (substitute* "keyanalyze/pgpring/configure"
439 (("/bin/sh") (which "bash")))
440 (substitute* "gpgwrap/Makefile"
441 (("\\} clean") (string-append "} clean\ninstall:\n\tinstall -D bin/gpgwrap "
442 out "/bin/gpgwrap\n")))
443 (substitute* '("gpgsigs/Makefile" "keyanalyze/Makefile"
444 "keylookup/Makefile" "sig2dot/Makefile"
445 "springgraph/Makefile")
446 (("/usr") out))))
447 (alist-replace
448 'install
449 (lambda* (#:key outputs #:allow-other-keys #:rest args)
450 (let ((out (assoc-ref outputs "out"))
451 (install (assoc-ref %standard-phases 'install)))
452 (apply install args)
453 (for-each
454 (lambda (dir file)
455 (copy-file (string-append dir "/" file)
456 (string-append out "/bin/" file)))
457 '("caff" "caff" "caff" "gpgdir" "gpg-key2ps"
458 "gpglist" "gpg-mailkeys" "gpgparticipants")
459 '("caff" "pgp-clean" "pgp-fixkey" "gpgdir" "gpg-key2ps"
460 "gpglist" "gpg-mailkeys" "gpgparticipants"))
461 (for-each
462 (lambda (dir file)
463 (copy-file (string-append dir "/" file)
464 (string-append out "/share/man/man1/" file)))
465 '("caff" "caff" "caff" "gpgdir"
466 "gpg-key2ps" "gpglist" "gpg-mailkeys"
467 "gpgparticipants" "gpgsigs" "gpgwrap/doc"
468 "keyanalyze" "keyanalyze/pgpring" "keyanalyze")
469 '("caff.1" "pgp-clean.1" "pgp-fixkey.1" "gpgdir.1"
470 "gpg-key2ps.1" "gpglist.1" "gpg-mailkeys.1"
471 "gpgparticipants.1" "gpgsigs.1" "gpgwrap.1"
472 "process_keys.1" "pgpring.1" "keyanalyze.1"))))
473 %standard-phases)))))
35b9e423 474 (synopsis "Collection of scripts for simplifying gnupg key signing")
96be765c 475 (description
35b9e423 476 "Signing-party is a collection for all kinds of PGP/GnuPG related things,
96be765c
AE
477including tools for signing keys, keyring analysis, and party preparation.
478
479 * caff: CA - Fire and Forget signs and mails a key
c5143851 480
96be765c
AE
481 * pgp-clean: removes all non-self signatures from key
482
483 * pgp-fixkey: removes broken packets from keys
484
485 * gpg-mailkeys: simply mail out a signed key to its owner
486
487 * gpg-key2ps: generate PostScript file with fingerprint paper strips
488
489 * gpgdir: recursive directory encryption tool
490
491 * gpglist: show who signed which of your UIDs
492
493 * gpgsigs: annotates list of GnuPG keys with already done signatures
494
495 * gpgparticipants: create list of party participants for the organiser
496
497 * gpgwrap: a passphrase wrapper
498
499 * keyanalyze: minimum signing distance (MSD) analysis on keyrings
500
501 * keylookup: ncurses wrapper around gpg --search
502
503 * sig2dot: converts a list of GnuPG signatures to a .dot file
504
505 * springgraph: creates a graph from a .dot file")
506 ;; gpl2+ for almost all programs, except for keyanalyze: gpl2
507 ;; and caff and gpgsigs: bsd-3, see
508 ;; http://packages.debian.org/changelogs/pool/main/s/signing-party/current/copyright
07157e8a 509 (license license:gpl2)
96be765c 510 (home-page "http://pgp-tools.alioth.debian.org/")))
40d806af
LC
511
512(define-public pinentry
513 (package
514 (name "pinentry")
18ed97d6 515 (version "0.9.5")
40d806af
LC
516 (source (origin
517 (method url-fetch)
518 (uri (string-append "mirror://gnupg/pinentry/pinentry-"
519 version ".tar.bz2"))
520 (sha256
521 (base32
18ed97d6 522 "1338hj1h3sh34897120y30x12b64wyj3xjzzk5asm2hdzhxgsmva"))))
40d806af
LC
523 (build-system gnu-build-system)
524 (inputs
525 `(("ncurses" ,ncurses)
18ed97d6 526 ("libassuan" ,libassuan)
40d806af
LC
527 ("gtk+" ,gtk+-2)
528 ("glib" ,glib)))
529 (native-inputs
530 `(("pkg-config" ,pkg-config)))
531 (home-page "http://gnupg.org/aegypten2/")
532 (synopsis "GnuPG's interface to passphrase input")
533 (description
534 "Pinentry provides a console and a GTK+ GUI that allows users to
535enter a passphrase when `gpg' or `gpg2' is run and needs it.")
07157e8a 536 (license license:gpl2+)))
4380a7b4
EB
537
538(define-public paperkey
539 (package
540 (name "paperkey")
541 (version "1.3")
542 (source (origin
543 (method url-fetch)
544 (uri (string-append "http://www.jabberwocky.com/"
545 "software/paperkey/paperkey-"
546 version ".tar.gz"))
547 (sha256
548 (base32
549 "1yybj8bj68v4lxwpn596b6ismh2fyixw5vlqqg26byrn4d9dfmsv"))))
550 (build-system gnu-build-system)
551 (arguments
552 `(#:phases
d4bf49b1
EB
553 (alist-cons-before
554 'check 'patch-check-scripts
555 (lambda _
556 (substitute* '("checks/roundtrip.sh"
557 "checks/roundtrip-raw.sh")
558 (("/bin/echo") "echo")))
4380a7b4
EB
559 %standard-phases)))
560 (home-page "http://www.jabberwocky.com/software/paperkey/")
561 (synopsis "Backup OpenPGP keys to paper")
562 (description
563 "Paperkey extracts the secret bytes from an OpenPGP (GnuPG, PGP, etc) key
564for printing with paper and ink, which have amazingly long retention
565qualities. To reconstruct a secret key, you re-enter those
566bytes (whether by hand, OCR, QR code, or the like) and paperkey can use
567them to transform your existing public key into a secret key.")
07157e8a 568 (license license:gpl2+)))