From 49ec96dbc6f00176009c3407ae22e1adf37a77da Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Thu, 26 Jun 2025 00:23:32 +0900 Subject: [PATCH] gnu: Add pkcs11-provider. * gnu/packages/security-token.scm (pkcs11-provider): New variable. Change-Id: Icee9e44b1878b4ca92dd601c4a55fc12258def15 --- gnu/packages/security-token.scm | 38 ++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm index b74b234ad3e1bcf699ee94ff3b6360185bdf8834..660e170794c4906a89a1f1c17f3f462bbb38256a 100644 --- a/gnu/packages/security-token.scm +++ b/gnu/packages/security-token.scm @@ -20,7 +20,7 @@ ;;; Copyright © 2022 Denis 'GNUtoo' Carikli ;;; Copyright © 2023 Jake Leporte ;;; Copyright © 2023 Timotej Lazar -;;; Copyright © 2023, 2025 Maxim Cournoyer +;;; Copyright © 2023, 2025 Maxim Cournoyer ;;; Copyright © 2023 Pierre Langlois ;;; Copyright © 2024 Janneke Nieuwenhuizen ;;; @@ -52,6 +52,7 @@ #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) + #:use-module (guix build-system meson) #:use-module (guix build-system pyproject) #:use-module (guix build-system python) #:use-module (guix build-system qt) @@ -391,6 +392,41 @@ semi-transparent way. @end table") (license license:lgpl2.1+))) +(define-public pkcs11-provider + (package + (name "pkcs11-provider") + (version "1.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/latchset/" name + "/releases/download/v" version "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0lzn2wj3pxwb0b2xrx1dk96nkbm2bpl75clhkr1cpnfnc3v02gc4")))) + (build-system meson-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'adjust-provider-path + ;; By default, the modulesdir variable from libcrypto.pc is + ;; used, which points to OpenSSL's installation prefix. + (lambda _ + (substitute* "meson.build" + (("provider_path =.*") + (format #f "provider_path = '~a/lib/ossl-modules'~%" + #$output)))))))) + (native-inputs (list pkg-config)) ;for PKG_CONFIG_PATH + (inputs (list openssl p11-kit)) + (home-page "https://github.com/latchset/pkcs11-provider") + (synopsis "Pkcs#11 provider for OpenSSL") + (description "This is an OpenSSL provider to access hardware and software +tokens using the PKCS#11 cryptographic token interface. Access to tokens +depends on loading an appropriate PKCS#11 driver that knows how to talk to the +specific token. The PKCS#11 provider is a connector that allows OpenSSL to +make proper use of such drivers.") + (license license:asl2.0))) + (define-public opensc (package (name "opensc")