Commit | Line | Data |
---|---|---|
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> |
6036453f LC |
8 | ;;; |
9 | ;;; This file is part of GNU Guix. | |
10 | ;;; | |
11 | ;;; GNU Guix is free software; you can redistribute it and/or modify it | |
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 | ;;; | |
16 | ;;; GNU Guix is distributed in the hope that it will be useful, but | |
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 | |
22 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | |
23 | ||
f9c33960 | 24 | (define-module (gnu packages security-token) |
6036453f | 25 | #:use-module (gnu packages) |
07b1fb86 | 26 | #:use-module ((guix licenses) #:prefix license:) |
6036453f LC |
27 | #:use-module (guix packages) |
28 | #:use-module (guix download) | |
29 | #:use-module (guix build-system gnu) | |
e84eb77a TD |
30 | #:use-module (guix build-system glib-or-gtk) |
31 | #:use-module (gnu packages autotools) | |
a6b256af | 32 | #:use-module (gnu packages curl) |
e84eb77a TD |
33 | #:use-module (gnu packages gettext) |
34 | #:use-module (gnu packages gtk) | |
58fdab1d | 35 | #:use-module (gnu packages libusb) |
a6b256af | 36 | #:use-module (gnu packages linux) |
6036453f | 37 | #:use-module (gnu packages man) |
e84eb77a TD |
38 | #:use-module (gnu packages networking) |
39 | #:use-module (gnu packages cyrus-sasl) | |
40 | #:use-module (gnu packages tls) | |
a6b256af | 41 | #:use-module (gnu packages perl) |
e84eb77a TD |
42 | #:use-module (gnu packages pkg-config) |
43 | #:use-module (gnu packages xml)) | |
6036453f | 44 | |
58fdab1d MB |
45 | (define-public ccid |
46 | (package | |
47 | (name "ccid") | |
d636fd99 | 48 | (version "1.4.28") |
58fdab1d MB |
49 | (source (origin |
50 | (method url-fetch) | |
51 | (uri (string-append | |
d636fd99 | 52 | "https://alioth.debian.org/frs/download.php/file/4230/" |
58fdab1d MB |
53 | "ccid-" version ".tar.bz2")) |
54 | (sha256 | |
55 | (base32 | |
d636fd99 | 56 | "1q5dz1l049m3hmr370adhrqicdkldrr3l98svi02p5cxbnn3cn47")))) |
58fdab1d MB |
57 | (build-system gnu-build-system) |
58 | (arguments | |
59 | `(#:configure-flags (list (string-append "--enable-usbdropdir=" %output | |
60 | "/pcsc/drivers")) | |
61 | #:phases | |
62 | (modify-phases %standard-phases | |
63 | (add-after 'unpack 'patch-Makefile | |
64 | (lambda _ | |
65 | (substitute* "src/Makefile.in" | |
66 | (("/bin/echo") (which "echo"))) | |
67 | #t))))) | |
68 | (native-inputs | |
69 | `(("perl" ,perl) | |
70 | ("pkg-config" ,pkg-config))) | |
71 | (inputs | |
72 | `(("libusb" ,libusb) | |
73 | ("pcsc-lite" ,pcsc-lite))) | |
74 | (home-page "https://pcsclite.alioth.debian.org/ccid.html") | |
75 | (synopsis "PC/SC driver for USB smart card devices") | |
76 | (description | |
77 | "This package provides a PC/SC IFD handler implementation for devices | |
78 | compliant with the CCID and ICCD protocols. It supports a wide range of | |
79 | readers and is needed to communicate with such devices through the | |
80 | @command{pcscd} resource manager.") | |
81 | (license license:lgpl2.1+))) | |
82 | ||
e84eb77a TD |
83 | (define-public eid-mw |
84 | (package | |
85 | (name "eid-mw") | |
74a83085 | 86 | (version "4.3.4") |
e84eb77a TD |
87 | (source (origin |
88 | (method url-fetch) | |
89 | (uri (string-append | |
90 | "https://github.com/Fedict/eid-mw/archive/v" | |
91 | version ".tar.gz")) | |
92 | (file-name (string-append name "-" version ".tar.gz")) | |
93 | (sha256 | |
94 | (base32 | |
74a83085 | 95 | "1ay9znry9dkhhn783paqy8czvv3w5gdpmq8ag8znx9akza8c929z")))) |
e84eb77a | 96 | (build-system glib-or-gtk-build-system) |
74a83085 | 97 | (native-inputs |
e84eb77a TD |
98 | `(("autoconf" ,autoconf) |
99 | ("automake" ,automake) | |
100 | ("gettext" ,gnu-gettext) | |
101 | ("libtool" ,libtool) | |
102 | ("pkg-config" ,pkg-config) | |
103 | ("perl" ,perl))) | |
104 | (inputs | |
105 | `(("curl" ,curl) | |
106 | ("openssl" ,openssl) | |
107 | ("gtk+" ,gtk+) | |
108 | ("pcsc-lite" ,pcsc-lite) | |
109 | ("p11-kit" ,p11-kit) | |
110 | ("libproxy" ,libproxy) | |
111 | ("libxml2" ,libxml2) | |
112 | ("cyrus-sasl" ,cyrus-sasl))) | |
113 | (arguments | |
114 | `(#:phases | |
115 | (modify-phases %standard-phases | |
116 | ;; The github tarball doesn't contain a configure script. | |
117 | (add-before 'configure 'autoreconf | |
74a83085 | 118 | (lambda _ (zero? (system* "autoreconf" "-i"))))))) |
e84eb77a TD |
119 | (synopsis "Belgian eID Middleware") |
120 | (description "The Belgian eID Middleware is required to authenticate with | |
121 | online services using the Belgian electronic identity card.") | |
122 | (home-page "https://github.com/Fedict/eid-mw") | |
123 | (license license:lgpl3))) | |
124 | ||
6036453f LC |
125 | (define-public libyubikey |
126 | (package | |
127 | (name "libyubikey") | |
58c5fb76 | 128 | (version "1.13") |
6036453f LC |
129 | (source (origin |
130 | (method url-fetch) | |
131 | (uri (string-append | |
132 | "https://developers.yubico.com/yubico-c/Releases/" | |
133 | name "-" version ".tar.gz")) | |
134 | (sha256 | |
135 | (base32 | |
58c5fb76 | 136 | "009l3k2zyn06dbrlja2d4p2vfnzjhlcqxi88v02mlrnb17mx1v84")))) |
6036453f LC |
137 | (build-system gnu-build-system) |
138 | (synopsis "Development kit for the YubiKey authentication device") | |
139 | (description | |
140 | "This package contains a C library and command-line tools that make up | |
141 | the low-level development kit for the Yubico YubiKey authentication device.") | |
142 | (home-page "https://developers.yubico.com/yubico-c/") | |
07b1fb86 | 143 | (license license:bsd-2))) |
6036453f | 144 | |
a6b256af MG |
145 | (define-public pcsc-lite |
146 | (package | |
147 | (name "pcsc-lite") | |
1f1b3445 | 148 | (version "1.8.22") |
a6b256af MG |
149 | (source (origin |
150 | (method url-fetch) | |
151 | (uri (string-append | |
1f1b3445 | 152 | "https://alioth.debian.org/frs/download.php/file/4225/" |
a6b256af MG |
153 | "pcsc-lite-" version ".tar.bz2")) |
154 | (sha256 | |
155 | (base32 | |
1f1b3445 | 156 | "01flkdyqs7kr6c63dv2qg8dwir3v9jlr9rzlw7vafrivxmhqydba")))) |
a6b256af MG |
157 | (build-system gnu-build-system) |
158 | (arguments | |
159 | `(#:configure-flags '("--enable-usbdropdir=/var/lib/pcsc/drivers"))) | |
160 | (native-inputs | |
161 | `(("perl" ,perl) ; for pod2man | |
162 | ("pkg-config" ,pkg-config))) | |
163 | (inputs | |
164 | `(("libudev" ,eudev))) | |
165 | (home-page "https://pcsclite.alioth.debian.org/pcsclite.html") | |
166 | (synopsis "Middleware to access a smart card using PC/SC") | |
167 | (description | |
168 | "pcsc-lite provides an interface to communicate with smartcards and | |
169 | readers using the SCard API. pcsc-lite is used to connect to the PC/SC daemon | |
170 | from a client application and provide access to the desired reader.") | |
171 | (license (list license:bsd-3 ; pcsc-lite | |
172 | license:expat ; src/sd-daemon.[ch] | |
173 | license:isc ; src/strlcat.c src/strlcpy.c | |
174 | license:gpl3+)))) ; src/spy/* | |
175 | ||
6036453f LC |
176 | (define-public ykclient |
177 | (package | |
178 | (name "ykclient") | |
f6b1a8f7 | 179 | (version "2.15") |
6036453f LC |
180 | (source (origin |
181 | (method url-fetch) | |
182 | (uri (string-append | |
183 | "https://developers.yubico.com/yubico-c-client/Releases/" | |
184 | name "-" version ".tar.gz")) | |
185 | (sha256 | |
186 | (base32 | |
f6b1a8f7 | 187 | "05jhx9waj3pl120ddnwap1v3bjrnbfhvf3lxs2xmhpcmwzpwsqgl")))) |
6036453f LC |
188 | (build-system gnu-build-system) |
189 | ||
190 | ;; There's just one test, and it requires network access to access | |
191 | ;; yubico.com, so skip it. | |
192 | (arguments '(#:tests? #f)) | |
193 | ||
194 | (native-inputs `(("pkg-config" ,pkg-config) | |
195 | ("help2man" ,help2man))) | |
196 | (inputs `(("curl" ,curl))) | |
197 | (synopsis "C library to validate one-time-password YubiKeys") | |
198 | (description | |
199 | "YubiKey C Client Library (libykclient) is a C library used to validate a | |
200 | one-time-password (OTP) YubiKey against Yubico’s servers. See the Yubico | |
201 | website for more information about Yubico and the YubiKey.") | |
202 | (home-page "https://developers.yubico.com/yubico-c-client/") | |
07b1fb86 | 203 | (license license:bsd-2))) |