Archived
1
0
Fork 0

gnu: oath-toolkit: Build libpskc and pskctool.

* gnu/packages/authentication.scm (oath-toolkit)[arguments]:
Add "--enable-pskc" and "--with-xmlsec-crypto-engine=openssl"
to #:configure-flags.
[native-inputs]: Add libltdl.
[inputs]: Add openssl and xmlsec-openssl.
[description]: Document the two new features.

Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
This commit is contained in:
Simon Josefsson via Guix-patches via 2021-05-05 20:00:45 +02:00 committed by Tobias Geerinckx-Rice
parent 2fd903c7de
commit 37fd82177e
No known key found for this signature in database
GPG key ID: 0DB0FF884F556D79

View file

@ -24,6 +24,8 @@
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages security-token) #:use-module (gnu packages security-token)
#:use-module (gnu packages tls)
#:use-module (gnu packages xml)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
@ -45,7 +47,9 @@
(arguments (arguments
;; TODO --enable-pskc causes xmlsec-related test suite failures. ;; TODO --enable-pskc causes xmlsec-related test suite failures.
`(#:configure-flags `(#:configure-flags
(list "--enable-pam") (list "--enable-pam"
"--enable-pskc"
"--with-xmlsec-crypto-engine=openssl")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'install 'delete-static-libraries (add-after 'install 'delete-static-libraries
@ -55,16 +59,16 @@
(for-each delete-file (find-files lib "\\.a$")) (for-each delete-file (find-files lib "\\.a$"))
#t)))))) #t))))))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)
;; XXX: Perhaps this should be propagated from xmlsec.
("libltdl" ,libltdl)))
(inputs (inputs
`(("linux-pam" ,linux-pam))) ; for --enable-pam `(("linux-pam" ,linux-pam)
("openssl" ,openssl)
("xmlsec-openssl" ,xmlsec-openssl)))
(home-page "https://www.nongnu.org/oath-toolkit/") (home-page "https://www.nongnu.org/oath-toolkit/")
(synopsis "One-time password (OTP) components") (synopsis "One-time password (OTP) components")
;; TODO Add the following items after they've been enabled.
;; @item @command{pskctool}, a command-line tool for manipulating secret key
;; files in the Portable Symmetric Key Container (@dfn{PSKC}) format
;; described in RFC6030.
;; @item @code{libpskc}, a shared and static C library for PSKC handling.
(description (description
"The @dfn{OATH} (Open AuTHentication) Toolkit provides various components "The @dfn{OATH} (Open AuTHentication) Toolkit provides various components
for building one-time password (@dfn{OTP}) authentication systems: for building one-time password (@dfn{OTP}) authentication systems:
@ -72,11 +76,18 @@ for building one-time password (@dfn{OTP}) authentication systems:
@itemize @itemize
@item @command{oathtool}, a command-line tool for generating & validating OTPs. @item @command{oathtool}, a command-line tool for generating & validating OTPs.
@item @code{liboath}, a C library for OATH handling. @item @code{liboath}, a C library for OATH handling.
@item @command{pskctool}, a command-line tool for manipulating secret key
files in the Portable Symmetric Key Container (@dfn{PSKC}) format
described in RFC6030.
@item @code{libpskc}, a shared and static C library for PSKC handling.
@item @code{pam_oath}, a PAM module for pluggable login authentication. @item @code{pam_oath}, a PAM module for pluggable login authentication.
@end itemize @end itemize
Supported technologies include the event-based @dfn{HOTP} algorithm (RFC4226) Supported technologies include the event-based @acronym{HOTP, Hash-based Message
and the time-based @dfn{TOTP} algorithm (RFC6238).") Authentication Code One-Time Password} algorithm (RFC4226), the time-based
@acronym{TOTP, Time-based One-Time Password} algorithm (RFC6238), and
@acronym{PSKC, Portable Symmetric Key Container} (RFC6030) to manage secret key
data.")
(license (list license:lgpl2.1+ ; the libraries (liboath/ & libpskc/) (license (list license:lgpl2.1+ ; the libraries (liboath/ & libpskc/)
license:gpl3+)))) ; the tools (everything else) license:gpl3+)))) ; the tools (everything else)