;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Pierre Neidhardt ;;; Copyright © 2020 Leo Famulari ;;; Copyright © 2021 Raghav Gururajan ;;; Copyright © 2022 Nicolas Graves ;;; Copyright © 2023 Clément Lassieur ;;; ;;; 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 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-check)) ;;; 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-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-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-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-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-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-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))) ;;; ;;; 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. ;;;