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