;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012-2017, 2019-2024 Ludovic Courtès ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2021 Mark H Weaver ;;; Copyright © 2014 Ian Denhardt ;;; Copyright © 2013, 2015 Andreas Enge ;;; Copyright © 2015 David Thompson ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Leo Famulari ;;; Copyright © 2016, 2017, 2019, 2021-2024 Efraim Flashner ;;; Copyright © 2016, 2017, 2018 Nikita ;;; Copyright © 2016 Hartmut Goebel ;;; Copyright © 2017 Ricardo Wurmus ;;; Copyright © 2017-2022 Marius Bakke ;;; Copyright © 2017–2021 Tobias Geerinckx-Rice ;;; Copyright © 2017 Rutger Helling ;;; Copyright © 2018 Clément Lassieur ;;; Copyright © 2019 Mathieu Othacehe ;;; Copyright © 2020, 2023 Janneke Nieuwenhuizen ;;; Copyright © 2020, 2021, 2023, 2024 Maxim Cournoyer ;;; Copyright © 2021 Solene Rapenne ;;; Copyright © 2021 Brice Waegeneire ;;; Copyright © 2021 Maxime Devos ;;; Copyright © 2021 Matthew James Kraai ;;; Copyright © 2021 John Kehayias ;;; Copyright © 2022 Greg Hogan ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (gnu packages tls) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix deprecation) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix utils) #:use-module (guix gexp) #:use-module (guix build-system gnu) #:use-module (guix build-system go) #:use-module (guix build-system perl) #:use-module (guix build-system python) #:use-module (guix build-system cmake) #:use-module (guix build-system trivial) #:use-module (guix build-system meson) #:use-module ((guix search-paths) #:select ($SSL_CERT_DIR $SSL_CERT_FILE)) #:use-module (gnu packages compression) #:use-module (gnu packages) #:use-module (gnu packages autotools) #:use-module (gnu packages bash) #:use-module (gnu packages build-tools) #:use-module (gnu packages check) #:use-module (gnu packages curl) #:use-module (gnu packages dns) #:use-module (gnu packages gawk) #:use-module (gnu packages gettext) #:use-module (gnu packages guile) #:use-module (gnu packages libbsd) #:use-module (gnu packages libffi) #:use-module (gnu packages libidn) #:use-module (gnu packages libunistring) #:use-module (gnu packages linux) #:use-module (gnu packages ncurses) #:use-module (gnu packages nettle) #:use-module (gnu packages networking) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages sphinx) #:use-module (gnu packages texinfo) #:use-module (gnu packages time) #:use-module (gnu packages version-control) #:use-module (gnu packages base) #:use-module (srfi srfi-1) #:use-module (srfi srfi-34) #:use-module (srfi srfi-35)) (define-public libtasn1 (package (name "libtasn1") (version "4.19.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/libtasn1/libtasn1-" version ".tar.gz")) (sha256 (base32 "0yizlr2y6gfjh86v68qw5wjcfg16arnw1f731kndd17l3jng04qn")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--disable-static"))) (native-inputs (list perl)) (home-page "https://www.gnu.org/software/libtasn1/") (synopsis "ASN.1 library") (description "GNU libtasn1 is a library implementing the ASN.1 notation. It is used for transmitting machine-neutral encodings of data objects in computer networking, allowing for formal validation of data according to some specifications.") (license license:lgpl2.0+))) (define-public asn1c (package (name "asn1c") (version "0.9.28") (source (origin (method url-fetch) (uri (string-append "https://lionet.info/soft/asn1c-" version ".tar.gz")) (sha256 (base32 "1fc64g45ykmv73kdndr4zdm4wxhimhrir4rxnygxvwkych5l81w0")))) (build-system gnu-build-system) (native-inputs (list perl)) (home-page "https://lionet.info/asn1c") (synopsis "ASN.1 to C compiler") (description "The ASN.1 to C compiler takes ASN.1 module files and generates C++ compatible C source code. That code can be used to serialize the native C structures into compact and unambiguous BER/XER/PER-based data files, and deserialize the files back. Various ASN.1 based formats are widely used in the industry, such as to encode the X.509 certificates employed in the HTTPS handshake, to exchange control data between mobile phones and cellular networks, to car-to-car communication in intelligent transportation networks.") (license license:bsd-2))) (define-public p11-kit (package (name "p11-kit") (version "0.24.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/p11-glue/p11-kit/releases/" "download/" version "/p11-kit-" version ".tar.xz")) (sha256 (base32 "1y5fm9gwhkh902r26p90qf1g2h1ziqrk4hgf9i9sxm2wzlz7ignq")))) (build-system gnu-build-system) (native-inputs (append (list pkg-config) (if (target-hurd?) (list autoconf automake gettext-minimal libtool) '()))) (inputs (append (list libffi libtasn1) (if (target-hurd?) (list libbsd) '()))) (arguments (list #:configure-flags ;; Use the default certificates so that users such as flatpak ;; find them. See . #~'("--with-trust-paths=/etc/ssl/certs/ca-certificates.crt") #:phases #~(modify-phases %standard-phases #$@(if (target-hurd?)