me
/
guix
Archived
1
0
Fork 0
This repository has been archived on 2024-08-07. You can view files and clone it, but cannot push or open issues/pull-requests.
guix/gnu/packages/golang-crypto.scm

468 lines
18 KiB
Scheme
Raw Normal View History

;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019, 2020 Leo Famulari <leo@famulari.name>
;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
;;; Copyright © 2022, 2023 Nicolas Graves <ngraves@ngraves.fr>
;;; Copyright © 2023 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2023 Clément Lassieur <clement@lassieur.org>
;;;
;;; 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-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-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-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-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-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-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-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))))
;;;
;;; 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.
;;;