gnu: Add ghc-cipher-aes.
[jackhill/guix/guix.git] / gnu / packages / security-token.scm
CommitLineData
6036453f
LC
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
58c5fb76 3;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
a6b256af 4;;; Copyright © 2016 Mike Gerwitz <mtg@gnu.org>
58fdab1d 5;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
e84eb77a 6;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
74a83085 7;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
79b43bc3 8;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
6036453f
LC
9;;;
10;;; This file is part of GNU Guix.
11;;;
12;;; GNU Guix is free software; you can redistribute it and/or modify it
13;;; under the terms of the GNU General Public License as published by
14;;; the Free Software Foundation; either version 3 of the License, or (at
15;;; your option) any later version.
16;;;
17;;; GNU Guix is distributed in the hope that it will be useful, but
18;;; WITHOUT ANY WARRANTY; without even the implied warranty of
19;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20;;; GNU General Public License for more details.
21;;;
22;;; You should have received a copy of the GNU General Public License
23;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
24
f9c33960 25(define-module (gnu packages security-token)
6036453f 26 #:use-module (gnu packages)
07b1fb86 27 #:use-module ((guix licenses) #:prefix license:)
6036453f
LC
28 #:use-module (guix packages)
29 #:use-module (guix download)
30 #:use-module (guix build-system gnu)
e84eb77a
TD
31 #:use-module (guix build-system glib-or-gtk)
32 #:use-module (gnu packages autotools)
a6b256af 33 #:use-module (gnu packages curl)
e84eb77a
TD
34 #:use-module (gnu packages gettext)
35 #:use-module (gnu packages gtk)
58fdab1d 36 #:use-module (gnu packages libusb)
a6b256af 37 #:use-module (gnu packages linux)
6036453f 38 #:use-module (gnu packages man)
e84eb77a
TD
39 #:use-module (gnu packages networking)
40 #:use-module (gnu packages cyrus-sasl)
41 #:use-module (gnu packages tls)
a6b256af 42 #:use-module (gnu packages perl)
e84eb77a
TD
43 #:use-module (gnu packages pkg-config)
44 #:use-module (gnu packages xml))
6036453f 45
58fdab1d
MB
46(define-public ccid
47 (package
48 (name "ccid")
9cf2de87 49 (version "1.4.29")
58fdab1d
MB
50 (source (origin
51 (method url-fetch)
52 (uri (string-append
9cf2de87 53 "https://alioth.debian.org/frs/download.php/file/4238/"
58fdab1d
MB
54 "ccid-" version ".tar.bz2"))
55 (sha256
56 (base32
9cf2de87 57 "0kdqmbma6sclsrbxy9w85h7cs0v11if4nc2r9v09613k8pl2lhx5"))))
58fdab1d
MB
58 (build-system gnu-build-system)
59 (arguments
60 `(#:configure-flags (list (string-append "--enable-usbdropdir=" %output
61 "/pcsc/drivers"))
62 #:phases
63 (modify-phases %standard-phases
64 (add-after 'unpack 'patch-Makefile
65 (lambda _
66 (substitute* "src/Makefile.in"
67 (("/bin/echo") (which "echo")))
68 #t)))))
69 (native-inputs
70 `(("perl" ,perl)
71 ("pkg-config" ,pkg-config)))
72 (inputs
73 `(("libusb" ,libusb)
74 ("pcsc-lite" ,pcsc-lite)))
75 (home-page "https://pcsclite.alioth.debian.org/ccid.html")
76 (synopsis "PC/SC driver for USB smart card devices")
77 (description
78 "This package provides a PC/SC IFD handler implementation for devices
79compliant with the CCID and ICCD protocols. It supports a wide range of
80readers and is needed to communicate with such devices through the
81@command{pcscd} resource manager.")
82 (license license:lgpl2.1+)))
83
e84eb77a
TD
84(define-public eid-mw
85 (package
86 (name "eid-mw")
74a83085 87 (version "4.3.4")
e84eb77a
TD
88 (source (origin
89 (method url-fetch)
90 (uri (string-append
91 "https://github.com/Fedict/eid-mw/archive/v"
92 version ".tar.gz"))
93 (file-name (string-append name "-" version ".tar.gz"))
94 (sha256
95 (base32
74a83085 96 "1ay9znry9dkhhn783paqy8czvv3w5gdpmq8ag8znx9akza8c929z"))))
e84eb77a 97 (build-system glib-or-gtk-build-system)
74a83085 98 (native-inputs
e84eb77a
TD
99 `(("autoconf" ,autoconf)
100 ("automake" ,automake)
101 ("gettext" ,gnu-gettext)
102 ("libtool" ,libtool)
103 ("pkg-config" ,pkg-config)
104 ("perl" ,perl)))
105 (inputs
106 `(("curl" ,curl)
107 ("openssl" ,openssl)
108 ("gtk+" ,gtk+)
109 ("pcsc-lite" ,pcsc-lite)
110 ("p11-kit" ,p11-kit)
111 ("libproxy" ,libproxy)
112 ("libxml2" ,libxml2)
113 ("cyrus-sasl" ,cyrus-sasl)))
114 (arguments
115 `(#:phases
116 (modify-phases %standard-phases
117 ;; The github tarball doesn't contain a configure script.
118 (add-before 'configure 'autoreconf
74a83085 119 (lambda _ (zero? (system* "autoreconf" "-i")))))))
e84eb77a
TD
120 (synopsis "Belgian eID Middleware")
121 (description "The Belgian eID Middleware is required to authenticate with
122online services using the Belgian electronic identity card.")
123 (home-page "https://github.com/Fedict/eid-mw")
124 (license license:lgpl3)))
125
6036453f
LC
126(define-public libyubikey
127 (package
128 (name "libyubikey")
58c5fb76 129 (version "1.13")
6036453f
LC
130 (source (origin
131 (method url-fetch)
132 (uri (string-append
133 "https://developers.yubico.com/yubico-c/Releases/"
134 name "-" version ".tar.gz"))
135 (sha256
136 (base32
58c5fb76 137 "009l3k2zyn06dbrlja2d4p2vfnzjhlcqxi88v02mlrnb17mx1v84"))))
6036453f
LC
138 (build-system gnu-build-system)
139 (synopsis "Development kit for the YubiKey authentication device")
140 (description
141 "This package contains a C library and command-line tools that make up
142the low-level development kit for the Yubico YubiKey authentication device.")
143 (home-page "https://developers.yubico.com/yubico-c/")
07b1fb86 144 (license license:bsd-2)))
6036453f 145
a6b256af
MG
146(define-public pcsc-lite
147 (package
148 (name "pcsc-lite")
972fa870 149 (version "1.8.23")
a6b256af
MG
150 (source (origin
151 (method url-fetch)
152 (uri (string-append
972fa870 153 "https://alioth.debian.org/frs/download.php/file/4235/"
a6b256af
MG
154 "pcsc-lite-" version ".tar.bz2"))
155 (sha256
156 (base32
972fa870 157 "1jc9ws5ra6v3plwraqixin0w0wfxj64drahrbkyrrwzghqjjc9ss"))))
a6b256af
MG
158 (build-system gnu-build-system)
159 (arguments
972fa870
MB
160 `(#:configure-flags '("--enable-usbdropdir=/var/lib/pcsc/drivers"
161 "--disable-libsystemd")))
a6b256af
MG
162 (native-inputs
163 `(("perl" ,perl) ; for pod2man
164 ("pkg-config" ,pkg-config)))
165 (inputs
166 `(("libudev" ,eudev)))
167 (home-page "https://pcsclite.alioth.debian.org/pcsclite.html")
168 (synopsis "Middleware to access a smart card using PC/SC")
169 (description
170 "pcsc-lite provides an interface to communicate with smartcards and
171readers using the SCard API. pcsc-lite is used to connect to the PC/SC daemon
172from a client application and provide access to the desired reader.")
173 (license (list license:bsd-3 ; pcsc-lite
a6b256af
MG
174 license:isc ; src/strlcat.c src/strlcpy.c
175 license:gpl3+)))) ; src/spy/*
176
6036453f
LC
177(define-public ykclient
178 (package
179 (name "ykclient")
f6b1a8f7 180 (version "2.15")
6036453f
LC
181 (source (origin
182 (method url-fetch)
183 (uri (string-append
184 "https://developers.yubico.com/yubico-c-client/Releases/"
185 name "-" version ".tar.gz"))
186 (sha256
187 (base32
f6b1a8f7 188 "05jhx9waj3pl120ddnwap1v3bjrnbfhvf3lxs2xmhpcmwzpwsqgl"))))
6036453f
LC
189 (build-system gnu-build-system)
190
191 ;; There's just one test, and it requires network access to access
192 ;; yubico.com, so skip it.
193 (arguments '(#:tests? #f))
194
195 (native-inputs `(("pkg-config" ,pkg-config)
196 ("help2man" ,help2man)))
197 (inputs `(("curl" ,curl)))
198 (synopsis "C library to validate one-time-password YubiKeys")
199 (description
200 "YubiKey C Client Library (libykclient) is a C library used to validate a
201one-time-password (OTP) YubiKey against Yubico’s servers. See the Yubico
202website for more information about Yubico and the YubiKey.")
203 (home-page "https://developers.yubico.com/yubico-c-client/")
07b1fb86 204 (license license:bsd-2)))