diff options
author | Liliana Marie Prikler <[email protected]> | 2024-03-02 08:07:11 +0100 |
---|---|---|
committer | Liliana Marie Prikler <[email protected]> | 2024-03-02 08:07:11 +0100 |
commit | 3d4fc910f73220f47e5f2459853333a7c83c5d1d (patch) | |
tree | d3178f93b78b3629dc7067cef69cf2a95490966d /gnu/packages/golang-crypto.scm | |
parent | 9160cccd767cdfa55f7a460750c6b0f7544c12eb (diff) | |
parent | 4a0549be52f3f46fbce61342d8de30f7b83130c5 (diff) |
Merge branch 'master' into emacs-team
Diffstat (limited to 'gnu/packages/golang-crypto.scm')
-rw-r--r-- | gnu/packages/golang-crypto.scm | 1148 |
1 files changed, 1148 insertions, 0 deletions
diff --git a/gnu/packages/golang-crypto.scm b/gnu/packages/golang-crypto.scm new file mode 100644 index 0000000000..53ae308219 --- /dev/null +++ b/gnu/packages/golang-crypto.scm @@ -0,0 +1,1148 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Pierre Neidhardt <[email protected]> +;;; Copyright © 2019 Ricardo Wurmus <[email protected]> +;;; Copyright © 2019 Vagrant Cascadian <[email protected]> +;;; Copyright © 2019, 2020 Leo Famulari <[email protected]> +;;; Copyright © 2020 Oleg Pykhalov <[email protected]> +;;; Copyright © 2021 Arun Isaac <[email protected]> +;;; Copyright © 2021 Collin J. Doering <[email protected]> +;;; Copyright © 2021 LibreMiami <[email protected]> +;;; Copyright © 2021 Raghav Gururajan <[email protected]> +;;; Copyright © 2021 Sarah Morgensen <[email protected]> +;;; Copyright © 2021 Vagrant Cascadian <[email protected]> +;;; Copyright © 2022 (unmatched-parenthesis <[email protected]> +;;; Copyright © 2022 Efraim Flashner <[email protected]> +;;; Copyright © 2022 Tobias Geerinckx-Rice <[email protected]> +;;; Copyright © 2022, 2023 Nicolas Graves <[email protected]> +;;; Copyright © 2023 Artyom V. Poptsov <[email protected]> +;;; Copyright © 2023 Benjamin <[email protected]> +;;; Copyright © 2023 Clément Lassieur <[email protected]> +;;; Copyright © 2023 Felix Lechner <[email protected]> +;;; Copyright © 2023 Jack Hill <[email protected]> +;;; Copyright © 2024 Troy Figiel <[email protected]> +;;; +;;; 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 <http://www.gnu.org/licenses/>. + +(define-module (gnu packages golang-crypto) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix build-system go) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module (guix packages) + #:use-module (guix utils) + #:use-module (gnu packages) + #:use-module (gnu packages golang) + #:use-module (gnu packages golang-build) + #:use-module (gnu packages golang-check) + #:use-module (gnu packages golang-compression)) + +;;; Commentary: +;;; +;;; Golang modules (libraries) related to Cryptography: encryption algorithms, +;;; hashing functions, TLS, key management, digital signatures, password +;;; hashing etc. +;;; +;;; Please: Try to add new module packages in alphabetic order. +;;; +;;; Code: + +(define-public go-filippo-io-age + (package + (name "go-filippo-io-age") + (version "1.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/FiloSottile/age") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1k1dv1jkr72qpk5g363mhrg9hnf5c9qgv4l16l13m4yh08jp271d")))) + (build-system go-build-system) + (arguments `(#:import-path "filippo.io/age")) + (inputs + (list go-golang-org-x-sys + go-golang-org-x-term + go-golang-org-x-crypto + go-filippo-io-edwards25519)) + (home-page "https://filippo.io/age") + (synopsis "Secure file encryption tool, format, and Go library") + (description + "This package implements file encryption according to the +@{age-encryption.org/v1, https://age-encryption.org/v1} specification. +It features small explicit keys, no configuration options, and Unix-style +composability.") + (license license:bsd-3))) + +(define-public age + (package + (inherit go-filippo-io-age) + (name "age") + (arguments + `(#:import-path "filippo.io/age/cmd/age" + #:unpack-path "filippo.io/age" + #:install-source? #f)))) + +(define-public age-keygen + (package + (inherit go-filippo-io-age) + (name "age-keygen") + (arguments + `(#:import-path "filippo.io/age/cmd/age-keygen" + #:unpack-path "filippo.io/age" + #:install-source? #f)))) + +(define-public go-filippo-io-edwards25519 + (package + (name "go-filippo-io-edwards25519") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/FiloSottile/edwards25519") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "01m8hpaj0cwp250f7b0din09cf8j6j5y631grx67qfhvfrmwr1zr")))) + (build-system go-build-system) + (arguments + '(#:import-path "filippo.io/edwards25519")) + (home-page "https://filippo.io/edwards25519") + (synopsis "Group logic for the twisted Edwards curve") + (description "This package implements the edwards25519 elliptic curve in +Go, exposing the necessary APIs to build a wide array of higher-level +primitives.") + (license license:bsd-3))) + +(define-public go-github-com-99designs-go-keyring + (package + (name "go-github-com-99designs-go-keyring") + (version "1.2.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/99designs/keyring") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0mkvy7scyq07rkqhabfmkd8imcm4h9y7zj9palj04znpihpixa5m")))) + (build-system go-build-system) + (propagated-inputs + (list go-github-com-dvsekhvalnov-jose2go + go-github-com-godbus-dbus + go-github-com-gsterjov-go-libsecret + go-github-com-mitchellh-go-homedir + go-github-com-mtibben-percent + go-golang-org-x-sys + go-golang-org-x-term)) + (arguments + '(#:import-path "github.com/99designs/keyring" + #:tests? #f)) ;XXX: tests require Vagrant + (synopsis "Go library providing a uniform interface for various secure +credential stores") + (description + "Keyring provides utility functions for and a common interface to a range +of secure credential storage services. Originally developed as part of AWS +Vault, a command line tool for securely managing AWS access from developer +workstations. + +Currently Keyring supports the following backends: macOS/OSX Keychain, Windows +pcredential store, Pass, Secret Service, KDE Wallet, Encrypted File.") + (home-page "https://github.com/99designs/keyring") + (license license:expat))) + +(define-public go-github-com-aead-chacha20 + (let ((commit "8b13a72661dae6e9e5dea04f344f0dc95ea29547") + (revision "0")) + (package + (name "go-github-com-aead-chacha20") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/aead/chacha20") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0gbmgq5kbqmbyrsav57ql4jzbvqvp1q7yvcd5fl3wf5g94iyv56r")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/aead/chacha20")) + (propagated-inputs + (list go-golang-org-x-sys)) + (home-page "https://github.com/aead/chacha20") + (synopsis "ChaCha20 and XChaCha20 stream ciphers") + (description "ChaCha is a stream cipher family created by Daniel +Bernstein. The most common ChaCha variant is ChaCha20 (20 rounds). ChaCha20 +is standardized in RFC 7539.") + (license license:expat)))) + +(define-public go-github-com-aperturerobotics-jacobsa-crypto + (let ((commit "b1eb679742a8deed015a4406384eea6bd985d08a") + (revision "0")) + (package + (name "go-github-com-aperturerobotics-jacobsa-crypto") + (version (git-version "1.0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/aperturerobotics/jacobsa-crypto") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "16dxigj8m6q18xqsy72iq287rh4fw0y0b9yqlw0qkclb8379n1z2")))) + (build-system go-build-system) + (arguments + (list #:import-path "github.com/aperturerobotics/jacobsa-crypto" + ;; Source-only package. + #:tests? #f + #:phases + #~(modify-phases %standard-phases + ;; Source-only package. + (delete 'build)))) + (home-page "https://github.com/aperturerobotics/jacobsa-crypto") + (synopsis "Cryptography missing from the Go standard library") + (description "This repository contains Go packages related to +cryptographic standards that are not included in the Go standard library.") + (license license:asl2.0)))) + +(define-public go-github-com-btcsuite-btcd-btcec + (let ((commit "67e573d211ace594f1366b4ce9d39726c4b19bd0") + (revision "0")) + (package + (name "go-github-com-btcsuite-btcd-btcec") + (version (git-version "0.12.0-beta" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/btcsuite/btcd") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "04s92gsy71w1jirlr5lkk9y6r5cparbas7nmf6ywbp7kq7fn8ajn")))) + (build-system go-build-system) + (arguments + '(#:unpack-path "github.com/btcsuite/btcd" + #:import-path "github.com/btcsuite/btcd/btcec")) + (native-inputs + (list go-github-com-davecgh-go-spew)) + (home-page "https://github.com/btcsuite/btcd") + (synopsis "Elliptic curve cryptography to work with Bitcoin") + (description "Package @command{btcec} implements elliptic curve +cryptography needed for working with Bitcoin (secp256k1 only for now). It is +designed so that it may be used with the standard crypto/ecdsa packages +provided with Go. A comprehensive suite of test is provided to ensure proper +functionality. Package @command{btcec} was originally based on work from +ThePiachu which is licensed under the same terms as Go, but it has +significantly diverged since then. The @command{btcsuite} developers original +is licensed under the liberal ISC license. + +Although this package was primarily written for btcd, it has intentionally +been designed so it can be used as a standalone package for any projects +needing to use secp256k1 elliptic curve cryptography.") + (license license:isc)))) + +(define-public go-github-com-cespare-xxhash + (package + (name "go-github-com-cespare-xxhash") + (version "2.1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cespare/xxhash") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1f3wyr9msnnz94szrkmnfps9wm40s5sp9i4ak0kl92zcrkmpy29a")) + (modules '((guix build utils))) + (snippet '(delete-file-recursively "xxhashbench")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/cespare/xxhash" + #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key inputs #:allow-other-keys #:rest args) + (unless + ;; The tests fail when run with gccgo. + (false-if-exception (search-input-file inputs "/bin/gccgo")) + (apply (assoc-ref %standard-phases 'check) args))))))) + (home-page "https://github.com/cespare/xxhash/") + (synopsis "Go implementation of xxHash") + (description "This package provides of Go implementation of the 64-bit +xxHash algorithm (XXH64).") + (license license:expat))) + +(define-public go-github-com-cloudflare-circl + (package + (name "go-github-com-cloudflare-circl") + (version "1.3.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cloudflare/circl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05hk5svprcjrj6k4mg4kd732pnb658llqv04z6xrcl5v77jda2kd")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/cloudflare/circl")) + (propagated-inputs + (list go-github-com-bwesterb-go-ristretto + go-golang-org-x-crypto + go-golang-org-x-sys)) + (home-page "https://blog.cloudflare.com/introducing-circl") + (synopsis "Cloudflare Interoperable Reusable Cryptographic Library") + (description "CIRCL (Cloudflare Interoperable, Reusable Cryptographic +Library) is a collection of cryptographic primitives written in Go. The goal +of this library is to be used as a tool for experimental deployment of +cryptographic algorithms targeting Post-Quantum (PQ) and Elliptic Curve +Cryptography (ECC).") + (license license:bsd-3))) + +(define-public go-github-com-dvsekhvalnov-jose2go + (package + (name "go-github-com-dvsekhvalnov-jose2go") + (version "1.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dvsekhvalnov/jose2go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1pzfmv2dxb3m455bi1ks4q3i0dcw1sazxk8k96wrgpkwgglyxj3n")))) + (build-system go-build-system) + (native-inputs + (list go-gopkg-in-check-v1)) + (arguments + '(#:import-path "github.com/dvsekhvalnov/jose2go")) + (home-page "https://github.com/dvsekhvalnov/jose2go") + (synopsis "Go implementation of Javascript Object Signing and Encryption spec") + (description "This package provides a Go library for generating, decoding, +and encrypting JSON Web Tokens (JWT). It relies only on the standard +library.") + (license license:expat))) + +(define-public go-github-com-emersion-go-pgpmail + (package + (name "go-github-com-emersion-go-pgpmail") + (version "0.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emersion/go-pgpmail") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ar26b0apw5bxn58qfn1a79cxigbmrqm1irh1rb7x57fydihc7wm")))) + (build-system go-build-system) + (arguments + (list ;; tests don't support our version of protonmail/go-crypto; see + ;; <https://github.com/emersion/go-pgpmail/issues/12> + #:tests? #f + #:import-path "github.com/emersion/go-pgpmail")) + (propagated-inputs + (list go-github-com-emersion-go-message + go-github-com-protonmail-go-crypto + go-golang-org-x-crypto + go-golang-org-x-text)) + (home-page "https://github.com/emersion/go-pgpmail") + (synopsis "PGP mail encryption for Go") + (description "The pgpmail package implements PGP encryption for e-mail +messages.") + (license license:expat))) + +(define-public go-github-com-flynn-noise + (package + (name "go-github-com-flynn-noise") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/flynn/noise") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1j6phxyqx06wcqxjpin696fkp85s76qcp3i2f7fv6q2fb6618f6y")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/flynn/noise")) + (propagated-inputs + (list go-gopkg-in-check-v1 go-golang-org-x-crypto)) + (home-page "https://github.com/flynn/noise") + (synopsis "Go implementation of the Noise protocol framework") + (description "@code{noise} implements the Noise protocol framework. Noise +is a low-level framework for building crypto protocols. Noise protocols +support mutual and optional authentication, identity hiding, forward secrecy, +zero round-trip encryption, and other advanced features.") + (license license:bsd-3))) + +(define-public go-github-com-gaukas-godicttls + (package + (name "go-github-com-gaukas-godicttls") + (version "0.0.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gaukas/godicttls") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0n9i0b9nbwq7ms36r34kfc346prrif78hhp55gmbkvlgvsc3m2af")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/gaukas/godicttls")) + (home-page "https://github.com/gaukas/godicttls") + (synopsis "Dictionary for TLS") + (description "This package provides a dictionary for TLS written in Go +providing bidirectional mapping values to their names, plus enum convenience +for values.") + (license license:bsd-3))) + +(define-public go-github-com-golang-jwt-jwt-v4 + (package + (name "go-github-com-golang-jwt-jwt-v4") + (version "4.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/golang-jwt/jwt") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1m7c9lwlmd0lnn0hyby1rb3f4nwn4xcjgca218frj0hi0krqn8kp")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/golang-jwt/jwt/v4")) + (home-page "https://github.com/golang-jwt/jwt") + (synopsis "Go implementation of JSON Web Tokens") + (description + "This package provides a Go implementation of +@url{https://datatracker.ietf.org/doc/html/rfc7519, JSON Web Tokens} and +supports the parsing and verification as well as the generation and signing of +JSON Web Tokens. The currently supported signing algorithms are HMAC SHA, +RSA, RSA-PSS, and ECDSA, though hooks are present for adding your own.") + (license license:expat))) + +(define-public go-github-com-golang-jwt-jwt-v5 + (package + (inherit go-github-com-golang-jwt-jwt-v4) + (name "go-github-com-golang-jwt-jwt-v5") + (version "5.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/golang-jwt/jwt") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0px12zhdmzqjj5zlcr136rcsilpmi4chiz6arxv49q372j4nhmia")))) + (arguments + (list + #:go go-1.18 + #:import-path "github.com/golang-jwt/jwt/v5")))) + +(define-public go-github-com-gxed-hashland-keccakpg + (let ((commit "d9f6b97f8db22dd1e090fd0bbbe98f09cc7dd0a8") + (revision "0")) + (package + (name "go-github-com-gxed-hashland-keccakpg") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gxed/hashland") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1q23y4lacsz46k9gmgfw4iwwydw36j2601rbidmmswl94grpc386")))) + (build-system go-build-system) + (arguments + '(#:unpack-path "github.com/gxed/hashland" + #:import-path "github.com/gxed/hashland/keccakpg")) + (home-page "https://github.com/gxed/hashland") + (synopsis "Implements the Keccak (SHA-3) hash algorithm in Go") + (description "Package @command{keccak} implements the Keccak (SHA-3) +hash algorithm. See http://keccak.noekeon.org.") + (license license:expat)))) + +(define-public go-github-com-jcmturner-aescts-v2 + (package + (name "go-github-com-jcmturner-aescts-v2") + (version "2.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jcmturner/aescts") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0yrdiisdhcqfs8jpicc30dfmbqzxhkmbayn902xrgwkndky8w7l1")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/jcmturner/aescts/v2")) + (propagated-inputs (list go-github-com-stretchr-testify)) + (home-page "https://github.com/jcmturner/aescts") + (synopsis "Encrypt and decrypt data in Go using AES CipherText Stealing") + (description "This package provides AES Cipher Block Chaining CipherText +Stealing encryption and decryption methods.") + (license license:asl2.0))) + +(define-public go-github-com-libp2p-go-libp2p-crypto + (let ((commit "7240b40a3ddc47c4d17c15baabcbe45e5219171b") + (revision "0")) + (package + (name "go-github-com-libp2p-go-libp2p-crypto") + (version (git-version "2.0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/libp2p/go-libp2p-crypto") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0qwpy57qv5143l9dlfwfvpqsxdd2i4zwnawx1w4pmgxxim3nw1wb")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/libp2p/go-libp2p-crypto")) + (native-inputs + (list go-github-com-btcsuite-btcd-btcec + go-github-com-gogo-protobuf + go-github-com-minio-sha256-simd + go-golang-org-x-crypto)) + (home-page + "https://github.com/libp2p/go-libp2p-crypto") + (synopsis "Various cryptographic utilities used by IPFS") + (description "Various cryptographic utilities used by IPFS") + (license license:expat)))) + +(define-public go-github-com-libp2p-go-libp2p-peer + (let ((commit "993d742bc29dcf4894b7730ba610fd78900be76c") + (revision "0")) + (package + (name "go-github-com-libp2p-go-libp2p-peer") + (version (git-version "2.3.8" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/libp2p/go-libp2p-peer") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1h96qjdi0i1wbr0jliap2903mycphas3ny0zdrm77yca9plcnphh")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/libp2p/go-libp2p-peer")) + (native-inputs + (list go-github-com-btcsuite-btcd-btcec + go-github-com-gogo-protobuf + go-github-com-gxed-hashland-keccakpg + go-github-com-libp2p-go-libp2p-crypto + go-github-com-minio-blake2b-simd + go-github-com-minio-sha256-simd + go-github-com-mr-tron-base58 + go-github-com-multiformats-go-multihash + go-github-com-spaolacci-murmur3 + go-golang-org-x-crypto)) + (home-page "https://github.com/libp2p/go-libp2p-peer") + (synopsis "PKI based identities for use in go-libp2p") + (description "PKI based identities for use in @command{go-libp2p}.") + (license license:expat)))) + +(define-public go-github-com-marten-seemann-chacha20 + (package + (name "go-github-com-marten-seemann-chacha20") + (version "0.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/marten-seemann/chacha20") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0x1j4cvbap45zk962qkjalc1h3axhzzdy9cdzhcjmprmm1ql4gjm")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/marten-seemann/chacha20")) + (home-page "https://github.com/marten-seemann/chacha20") + (synopsis "ChaCha20 in Go") + (description "This package is an external copy of the Go standard +library's internal ChaCha20 package.") + (license license:bsd-3))) + +(define-public go-github-com-marten-seemann-qtls + (package + (name "go-github-com-marten-seemann-qtls") + (version "0.4.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/marten-seemann/qtls") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0dz60y98nm7l70hamq0v2vrs2dspyr5yqhnrds2dfh7hchxvq76j")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/marten-seemann/qtls" + ;; The test suite requires networking. + #:tests? #f)) + (propagated-inputs + (list go-golang-org-x-crypto)) + (home-page "https://github.com/marten-seemann/qtls") + (synopsis "TLS 1.3 with QUIC in Go") + (description "This package provides @code{qtls}, a QUIC-capable variant of +the Go standard library's TLS 1.3 implementation.") + (license license:bsd-3))) + +(define-public go-github-com-nats-io-jwt-v2 + (package + (name "go-github-com-nats-io-jwt-v2") + (version "2.5.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nats-io/jwt") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0wcqbfyd3b4qdspmf72cpsbi0y2a4b1qd0cv3qvhh17d1h1a6zib")))) + (build-system go-build-system) + (arguments + (list #:import-path "github.com/nats-io/jwt/v2" + #:unpack-path "github.com/nats-io/jwt")) + (propagated-inputs (list go-github-com-nats-io-nkeys)) + (home-page "https://github.com/nats-io/jwt") + (synopsis "Go library signing JWT tokens with NKeys for the NATS ecosystem") + (description + "This library is a JWT implementation that uses nkeys to digitally sign +JWT tokens. Nkeys use Ed25519 to provide authentication of JWT claims.") + (license license:asl2.0))) + +(define-public go-github-com-nats-io-nkeys + (package + (name "go-github-com-nats-io-nkeys") + (version "0.4.7") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nats-io/nkeys") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0779m4nn6n0ql23wnk50ybddslvb84mwx036gf7yw6ckmm4yybxs")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/nats-io/nkeys")) + (propagated-inputs (list go-golang-org-x-crypto)) + (home-page "https://github.com/nats-io/nkeys") + (synopsis "Go library implementing public-key system for NATS ecosystem") + (description + "This package is an Ed25519 based public-key signature system that +simplifies keys and seeds and performs signing and verification.") + (license license:asl2.0))) + +(define-public go-github-com-minio-blake2b-simd + (let ((commit "3f5f724cb5b182a5c278d6d3d55b40e7f8c2efb4") + (revision "0")) + (package + (name "go-github-com-minio-blake2b-simd") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/minio/blake2b-simd") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0b6jbnj62c0gmmfd4zdmh8xbg01p80f13yygir9xprqkzk6fikmd")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/minio/blake2b-simd")) + (home-page "https://github.com/minio/blake2b-simd") + (synopsis "Fast hashing in pure Go of BLAKE2b with SIMD instructions") + (description "This package was initially based on the pure go BLAKE2b +implementation of Dmitry Chestnykh and merged with the (cgo dependent) AVX +optimized BLAKE2 implementation (which in turn is based on the official +implementation. It does so by using Go's Assembler for amd64 architectures +with a golang only fallback for other architectures. + +In addition to AVX there is also support for AVX2 as well as SSE. Best +performance is obtained with AVX2 which gives roughly a 4X performance +increase approaching hashing speeds of 1GB/sec on a single core.") + (license license:asl2.0)))) + +(define-public go-github-com-minio-highwayhash + (package + (name "go-github-com-minio-highwayhash") + (version "1.0.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/minio/highwayhash") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1inrix7720273ccynxcyi7xsgc55cskxrw7gwn08qkmdj9xdxqai")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/minio/highwayhash")) + (propagated-inputs (list go-golang-org-x-sys)) + (home-page "https://github.com/minio/highwayhash") + (synopsis "HighwayHash library for Go") + (description + "This package implements the pseudo-random-function (PRF) HighwayHash. +HighwayHash is a fast hash function designed to defend hash-flooding attacks +or to authenticate short-lived messages.") + (license license:asl2.0))) + +(define-public go-github-com-minio-sha256-simd + (package + (name "go-github-com-minio-sha256-simd") + (version "0.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/minio/sha256-simd") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1j0iqsckm97g4l79vd4mc7apbmkdar23jpzqpnpdhwpfd834j8lp")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/minio/sha256-simd")) + (home-page "https://github.com/minio/sha256-simd") + (synopsis "Accelerate SHA256 computations in pure Go") + (description "Accelerate SHA256 computations in pure Go using AVX512 and +AVX2 for Intel and ARM64 for ARM. On AVX512 it provides an up to 8x +improvement (over 3 GB/s per core) in comparison to AVX2. + +This package is designed as a replacement for @command{crypto/sha256}. For +Intel CPUs it has two flavors for AVX512 and AVX2 (AVX/SSE are also +supported). For ARM CPUs with the Cryptography Extensions, advantage is taken +of the SHA2 instructions resulting in a massive performance improvement. + +This package uses Golang assembly. The AVX512 version is based on the Intel's +\"multi-buffer crypto library for IPSec\" whereas the other Intel +implementations are described in \"Fast SHA-256 Implementations on Intel +Architecture Processors\" by J. Guilford et al.") + (license license:asl2.0))) + +(define-public go-github-com-multiformats-go-multihash + (let ((commit "97cdb562a04c6ef66d8ed40cd62f8fbcddd396d6") + (revision "0")) + (package + (name "go-github-com-multiformats-go-multihash") + (version (git-version "1.0.8" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/multiformats/go-multihash") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "02wd9akrwy4y5m0nig9m24p14bjjgb4n1djydrq8cm4yhbvjrrk0")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/multiformats/go-multihash")) + (native-inputs + (list go-github-com-mr-tron-base58 + go-github-com-gxed-hashland-keccakpg + go-github-com-minio-blake2b-simd + go-github-com-minio-sha256-simd + go-github-com-spaolacci-murmur3 + go-golang-org-x-crypto)) + (home-page "https://github.com/multiformats/go-multihash") + (synopsis "Multihash implementation in Go") + (description "Multihash implementation in Go.") + (license license:expat)))) + +(define-public go-github-com-operatorfoundation-ed25519 + (let ((commit "b22b4bd3ddef042eec45f3ee135cd40281fde2b4") + (revision "0")) + (package + (name "go-github-com-operatorfoundation-ed25519") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/OperatorFoundation/ed25519") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0xrzqrjlghkgd1cy5rj4khryn4f59vas2vzrxc6d8jpj5ijf3xkv")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/OperatorFoundation/ed25519" + #:phases + (modify-phases %standard-phases + (add-before 'install 'remove-test-data + (lambda* (#:key import-path #:allow-other-keys) + (delete-file-recursively + (string-append "src/" import-path "/testdata")) + #t))))) + (native-inputs + (list go-golang-org-x-crypto)) + (home-page "https://github.com/OperatorFoundation/ed25519") + (synopsis "Ed25519 for go") + (description "Package ed25519 implements the Ed25519 signature +algorithm.") + (license license:bsd-3)))) + +(define-public go-github-com-protonmail-go-crypto + (package + (name "go-github-com-protonmail-go-crypto") + (version "0.0.0-20220623141421-5afb4c282135") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ProtonMail/go-crypto") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05qxdbn8wdk901z5kw2r3jdrag58nxlcsy0p8xd6rq0d71sw94wy")))) + (build-system go-build-system) + (arguments + (list #:import-path "github.com/ProtonMail/go-crypto" + #:tests? #f ; Source-only package. + #:phases + #~(modify-phases %standard-phases + ;; Source-only package. + (delete 'build)))) + (propagated-inputs + (list go-golang-org-x-crypto)) + (home-page "https://github.com/ProtonMail/go-crypto") + (synopsis "Fork of x/crypto with up-to-date OpenPGP implementation") + (description "This package provides cryptography for Go. This version of +the package is a fork that adds a more up-to-date OpenPGP implementation. It +is completely backwards compatible with @code{golang.org/x/crypto}, the +official package.") + (license license:bsd-3))) + +(define-public go-github-com-quic-go-qtls-go1-20 + (package + (name "go-github-com-quic-go-qtls-go1-20") + (version "0.3.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/quic-go/qtls-go1-20") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0fl3yv1w8cygag3lav45vvzb4k9i72p92x13wcq0xn13wxirzirn")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/quic-go/qtls-go1-20" + #:go go-1.20)) + (propagated-inputs + (list go-golang-org-x-crypto + go-golang-org-x-sys)) + (home-page "https://github.com/quic-go/qtls-go1-20") + (synopsis "TLS 1.3 for QUIC") + (description "Go standard library TLS 1.3 implementation, modified for +QUIC. For Go 1.20.") + (license license:expat))) + +(define-public go-github-com-refraction-networking-utls + (package + (name "go-github-com-refraction-networking-utls") + (version "1.6.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/refraction-networking/utls") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1iywar5vqsml4b177k2nkcxmjm8mw92g3p112yjsrpmikiwpwpyw")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/refraction-networking/utls" + #:go ,go-1.20 + #:tests? #f)) ;requires internet access + (propagated-inputs + (list go-github-com-andybalholm-brotli + go-github-com-cloudflare-circl + go-github-com-gaukas-godicttls + go-github-com-klauspost-compress + go-github-com-quic-go-quic-go + go-golang-org-x-crypto + go-golang-org-x-net + go-golang-org-x-sys)) + (home-page "https://github.com/refraction-networking/utls") + (synopsis "Fork of the Go standard TLS library, providing low-level access +to the ClientHello for mimicry purposes") + (description "uTLS is a fork of “crypto/tls”, which provides ClientHello +fingerprinting resistance, low-level access to handshake, fake session tickets +and some other features. Handshake is still performed by “crypto/tls”, this +library merely changes ClientHello part of it and provides low-level access.") + (license license:bsd-3))) + +(define-public go-github-com-rfjakob-eme + (package + (name "go-github-com-rfjakob-eme") + (version "1.1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rfjakob/eme") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1yrbhvy0337mf12fp8p4sy8ry8r3w2qfdf8val5hj07p2lri0cqk")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/rfjakob/eme")) + (home-page "https://github.com/rfjakob/eme") + (synopsis "EME for Go") + (description "EME (ECB-Mix-ECB or, clearer, Encrypt-Mix-Encrypt) is a +wide-block encryption mode developed by Halevi and Rogaway.") + (license license:expat))) + +(define-public go-github-com-riobard-go-bloom + (let ((commit "cdc8013cb5b3eb0efebec85f0e904efccac42df9") + (revision "0")) + (package + (name "go-github-com-riobard-go-bloom") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/riobard/go-bloom") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "10a8ixh6zw52df2imxrzgxi82zc1j5hqnv5smjp818qwdn1a1rhj")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/riobard/go-bloom")) + (home-page "https://github.com/riobard/go-bloom") + (synopsis "Bloom filter in Go") + (description "Go-Bloom implements bloom filter using double hashing.") + (license license:asl2.0)))) + +(define-public go-github-com-shadowsocks-go-shadowsocks2 + (package + (name "go-github-com-shadowsocks-go-shadowsocks2") + ;; Version > 0.1.3 requires go-toolchain v1.16. + (version "0.1.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/shadowsocks/go-shadowsocks2") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1wzy3ml4ld83iawcl6p313bskzs6zjhz8vlg8kpwgn71cnbv4pvi")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/shadowsocks/go-shadowsocks2")) + (propagated-inputs + (list go-github-com-riobard-go-bloom + go-golang-org-x-crypto + go-golang-org-x-net + go-golang-org-x-sys + go-golang-org-x-text)) + (home-page "https://github.com/shadowsocks/go-shadowsocks2") + (synopsis "Shadowsocks tunnel proxy") + (description "Go-ShadowSocks is a Go implementation of the Shadowsocks +tunnel proxy protocol.") + (license license:asl2.0))) + +(define-public go-github-com-xanzy-ssh-agent + (package + (name "go-github-com-xanzy-ssh-agent") + (version "0.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xanzy/ssh-agent") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1chjlnv5d6svpymxgsr62d992m2xi6jb5lybjc5zn1h3hv1m01av")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/xanzy/ssh-agent")) + (native-inputs + (list go-golang-org-x-crypto)) + (home-page "https://github.com/xanzy/ssh-agent/") + (synopsis "Control ssh-agent from Go") + (description "Package agent implements the ssh-agent protocol, and +provides both a client and a server. The client can talk to a standard +ssh-agent that uses UNIX sockets, and one could implement an alternative +ssh-agent process using the sample server.") + (license license:asl2.0))) + +(define-public go-gitlab-com-yawning-edwards25519-extra + (let ((commit "2149dcafc266f66d2487f45b156f6397f9c4760b") + (revision "0")) + (package + (name "go-gitlab-com-yawning-edwards25519-extra") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/yawning/edwards25519-extra") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "08mz1qyi8ig515hh5blnzxhiwsav564ah7mzyhvmr6i48ndhhv98")))) + (build-system go-build-system) + (arguments + '(#:unpack-path "gitlab.com/yawning/edwards25519-extra" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'build) + `(,@arguments #:import-path ,directory))) + (list + "gitlab.com/yawning/edwards25519-extra/elligator2" + "gitlab.com/yawning/edwards25519-extra/h2c" + "gitlab.com/yawning/edwards25519-extra/internal/montgomery" + "gitlab.com/yawning/edwards25519-extra/vrf")))) + (replace 'check + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'check) + `(,@arguments #:import-path ,directory))) + (list + "gitlab.com/yawning/edwards25519-extra/elligator2" + "gitlab.com/yawning/edwards25519-extra/h2c" + "gitlab.com/yawning/edwards25519-extra/internal/montgomery" + "gitlab.com/yawning/edwards25519-extra/vrf")))) + (replace 'install + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'install) + `(,@arguments #:import-path ,directory))) + (list + "gitlab.com/yawning/edwards25519-extra/elligator2" + "gitlab.com/yawning/edwards25519-extra/h2c" + "gitlab.com/yawning/edwards25519-extra/internal/montgomery" + "gitlab.com/yawning/edwards25519-extra/vrf"))))))) + (propagated-inputs (list go-golang-org-x-crypto + go-filippo-io-edwards25519)) + (home-page "https://gitlab.com/yawning/edwards25519-extra") + (synopsis "edwards25519-extra") + (description "This package provides extensions to the Go standard +library's Ed25519 and curve25519 implementations, primarily extracted from +@@url{https://github.com/oasisprotocol/curve25519-voi,curve25519-voi}. This +package is intended for interoperability with the standard library and the +@@url{https://filippo.io/edwards25519,edwards25519} package as much as +possible.") + (license license:bsd-3)))) + +(define-public go-lukechampine-com-blake3 + (package + (name "go-lukechampine-com-blake3") + (version "1.1.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lukechampine/blake3") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1yxdwp8dpnnq2wbwsxlkbq570i99sc6781y39czjxi9jh9z5nw55")))) + (build-system go-build-system) + (arguments + '(#:import-path "lukechampine.com/blake3")) + (propagated-inputs + (list go-github-com-klauspost-cpuid)) + (home-page "https://pkg.go.dev/lukechampine.com/blake3") + (synopsis "Implementation of the BLAKE3 cryptographic hash function") + (description "@code{blake3} implements the BLAKE3 cryptographic hash +function. In addition to the pure-Go implementation, this package also +contains AVX-512 and AVX2 routines (generated by avo) that greatly increase +performance for large inputs and outputs.") + (license license:expat))) + +(define-public go-torproject-org-pluggable-transports-goptlib + (package + (name "go-torproject-org-pluggable-transports-goptlib") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://git.torproject.org/pluggable-transports/goptlib") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lh938194hvkf8pqgnxwf6hvjv9rv0j3kasi07r2ckrj8sxzk4jc")))) + (build-system go-build-system) + (arguments + `(#:import-path "git.torproject.org/pluggable-transports/goptlib.git")) + (home-page "https://gitweb.torproject.org/pluggable-transports/goptlib.git/") + (synopsis "Go pluggable transports library") + (description "GoPtLib is a library for writing Tor pluggable transports in +Go.") + (license license:cc0))) + +;;; +;;; Avoid adding new packages to the end of this file. To reduce the chances +;;; of a merge conflict, place them above by existing packages with similar +;;; functionality or similar names. +;;; |