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