;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020 Justus Winter ;;; ;;; 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 openpgp) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages crypto) #:use-module (gnu packages gnupg) #:use-module (gnu packages multiprecision) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages web)) (define-public libtmcg (package (name "libtmcg") (version "1.3.18") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/libtmcg/libTMCG-" version ".tar.gz")) (sha256 (base32 "179b5jx3mqs9hgsj8cfwk6x8qib60kw9szk9fkz6s1gl3v83mnyx")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--enable-silent-rules"))) (inputs `(("gmp" ,gmp) ("libgcrypt" ,libgcrypt))) (synopsis "C++ library for creating secure and fair online card games") (description "The library provides a sort of useful classes, algorithms, and high-level protocols to support an application programmer in writing such software. The most remarkable feature is the absence of a trusted third party (TTP), i.e. neither a central game server nor trusted hardware components are necessary. The corresponding cryptographic problem, actually called Mental Poker, has been studied since 1979 (Shamir, Rivest, and Adleman) by many authors. LibTMCG provides the first practical implementation of such protocols.") (home-page "https://www.nongnu.org/libtmcg/") (license license:gpl2+))) (define-public dkgpg (package (name "dkgpg") (version "1.1.3") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/dkgpg/dkgpg-" version ".tar.gz")) (sha256 (base32 "1hpfg7akd5icj49i03z74hp9zj0xwl90bndn0hnw0hpb8lk7qcxg")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--enable-silent-rules") ;; https://savannah.nongnu.org/bugs/?58772 #:parallel-tests? #f)) (inputs `(("bzip2" ,bzip2) ("gmp" ,gmp) ("libgcrypt" ,libgcrypt) ("libtmcg" ,libtmcg) ("zlib" ,zlib))) (synopsis "Distributed Key Generation and Threshold Cryptography for OpenPGP") (description "The Distributed Privacy Guard (DKGPG) implements Distributed Key Generation (DKG) and Threshold Cryptography for OpenPGP. The generated public keys are compatible with the standard and thus can be used by any RFC4880-compliant application (e.g. GnuPG). The main purposes of this software are distributing power among multiple parties, eliminating single points of failure, and increasing the difficulty of side-channel attacks on private key material. DKGPG consists of a bunch of simple command-line programs. The current implementation is in experimental state and should NOT be used in production environments.") (home-page "https://www.nongnu.org/dkgpg/") (license license:gpl2+))) (define-public rnp ;; Packaging the currently released version requires a large number of ;; patches. For now, we package a snapshot instead. (let ((commit "203224f0b1505dba17837c03da603e5b98ab125a") (revision "0") (last-version "0.13.1") (day-of-release "2020-07-21")) (package (name "rnp") (version (git-version last-version revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/rnpgp/rnp") (commit commit))) (file-name (string-append name "-" (string-take commit 7) "-checkout")) (sha256 (base32 "1rnwhc9ys4v4mv584hmmrl0ycnqmsaigpffzm31qq337hz24zqya")) (patches 2022-12-01gnu: bootloader: Rework chaining, add grub-efi-netboot-removable-bootloader....This rework allows to use an (efi-bootloader-chain) like this, which is able to boot over network or local storage, depending on whether the bootloader target has support for symbolic links: (operating-system (bootloader (bootloader-configuration (bootloader (efi-bootloader-chain grub-efi-netboot-removable-bootloader #:packages (list my-firmware-package my-u-boot-package) #:files (list (plain-file "config.txt" "kernel=u-boot.bin")) #:hooks my-special-bootloader-profile-manipulator)) (targets '("/booti/efi")) …)) …) * doc/guix.texi (Bootloader Configuration): Describe the new ‘grub-efi-netboot-removable-bootloader’. Mention the file names used and that the UEFI Boot Manager is not modified. Advise to disable write-access over TFTP. * gnu/bootloader.scm (efi-bootloader-profile): Allow a list of packages and collect everything directly in the profile, avoiding a separate collection directory. Renamed the profile from "bootloader-profile" to "efi-bootloader-profile". [bootloader-collection]: Rename to... [efi-bootloader-profile-hook]: ... this and remove unused modules. Do not create the now extraneous collection directory. (efi-bootloader-chain): Add PACKAGES and DISK-IMAGE-INSTALLER arguments. Remove handling of the collection directory, now only calling the given installer procedure. * gnu/bootloader/grub.scm (make-grub-efi-netboot-installer): New helper. (make-grub-configuration): New helper based on (grub-configuration-file). Add a GRUB argument, fix indentation, remove previous code retrieving GRUB from CONFIG. (grub-configuration-file): Make use of make-grub-configuration. (grub-efi-configuration-file): New procedure. (grub-cfg): New variable to replace "/boot/grub/grub.cfg". (install-grub-efi-netboot): Remove, splitting logic to... (make-grub-efi-netboot-installer): ... this new helper procedure, as well as to make-grub-efi-netboot, added below. (grub-bootloader): Adjust to use the GRUB-CFG. (grub-efi-bootloader): Likewise. Removed inheritance and declare all fields explicitly. (make-grub-efi-netboot-bootloader): New procedure. (grub-efi-netboot-bootloader): Use it. (grub-efi-netboot-removable-bootloader): New variable. * gnu/packages/bootloaders.scm (make-grub-efi-netboot): New procedure. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Stefan Licence (netpgp). license:asl2.0 ;; Nominet UK's BSD 3-Clause License (netpgp). license:bsd-3)))))