gnu: Add java-jboss-jms-api-spec.
[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>
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
77compliant with the CCID and ICCD protocols. It supports a wide range of
78readers 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
120online 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
140the 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
168readers using the SCard API. pcsc-lite is used to connect to the PC/SC daemon
169from 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
199one-time-password (OTP) YubiKey against Yubico’s servers. See the Yubico
200website for more information about Yubico and the YubiKey.")
201 (home-page "https://developers.yubico.com/yubico-c-client/")
07b1fb86 202 (license license:bsd-2)))