X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/cf7658f7cb5de0e17f4801faa84c378a4b40033e..03c3fd62dfdccf23b019a4135ee6eaddf24f32c7:/gnu/packages/haskell-crypto.scm diff --git a/gnu/packages/haskell-crypto.scm b/gnu/packages/haskell-crypto.scm index 9bdcdb2f9e..032c6fb899 100644 --- a/gnu/packages/haskell-crypto.scm +++ b/gnu/packages/haskell-crypto.scm @@ -1,9 +1,10 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Paul van der Walt -;;; Copyright © 2015, 2017, 2018 Ricardo Wurmus -;;; Copyright © 2016 Nils Gillmann +;;; Copyright © 2015, 2017, 2018, 2019 Ricardo Wurmus +;;; Copyright © 2016 Nikita ;;; Copyright © 2017 rsiddharth -;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice +;;; Copyright © 2020 Giacomo Leidi ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,6 +26,8 @@ #:use-module (gnu packages compression) #:use-module (gnu packages haskell) #:use-module (gnu packages haskell-check) + #:use-module (gnu packages haskell-xyz) + #:use-module (gnu packages tls) #:use-module (guix build-system haskell) #:use-module (guix download) #:use-module ((guix licenses) #:prefix license:) @@ -34,7 +37,7 @@ (define-public ghc-asn1-types (package (name "ghc-asn1-types") - (version "0.3.2") + (version "0.3.3") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/" @@ -42,7 +45,7 @@ version ".tar.gz")) (sha256 (base32 - "05vjchyqiy9n275cygffhn0ma7fz7jx52j0dcdm9qm8h9bziymqc")))) + "162lacdl9jr42pdhaj9hxqlba6hjxm6g866anna74q6v3cvw5ssp")))) (build-system haskell-build-system) (inputs `(("ghc-memory" ,ghc-memory) @@ -57,7 +60,7 @@ format.") (define-public ghc-asn1-encoding (package (name "ghc-asn1-encoding") - (version "0.9.5") + (version "0.9.6") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/" @@ -65,12 +68,11 @@ format.") version ".tar.gz")) (sha256 (base32 - "0adgbamyq0mj1l1hdq4zyyllay714bac1wl0rih3fv1z6vykp1hy")))) + "02nsr30h5yic1mk7znf0q4z3n560ip017n60hg7ya25rsfmxxy6r")))) (build-system haskell-build-system) (inputs `(("ghc-hourglass" ,ghc-hourglass) - ("ghc-asn1-types" ,ghc-asn1-types) - ("ghc-text" ,ghc-text))) + ("ghc-asn1-types" ,ghc-asn1-types))) (native-inputs `(("ghc-tasty" ,ghc-tasty) ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck))) @@ -84,7 +86,7 @@ supports for high level forms of ASN1 (BER, and DER).") (define-public ghc-asn1-parse (package (name "ghc-asn1-parse") - (version "0.9.4") + (version "0.9.5") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/" @@ -92,7 +94,7 @@ supports for high level forms of ASN1 (BER, and DER).") version ".tar.gz")) (sha256 (base32 - "025prsihk5g6rdv9xlfmj0zpa0wa3qjzj5i4ilzvg7f6f3sji8y6")))) + "17pk8y3nwv9b9i5j15qlmwi7fmq9ab2z4kfpjk2rvcrh9lsf27wg")))) (build-system haskell-build-system) (inputs `(("ghc-asn1-types" ,ghc-asn1-types) @@ -149,6 +151,7 @@ algorithm (ex: padding) is within scope of this package.") (base32 "0w3j43jdrlj28jryp18hc6q84nkl2yf4vs1hhgrsk7gb9kfyqjpl")))) (build-system haskell-build-system) + (outputs '("out" "static" "doc")) (inputs `(("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2) ("ghc-crypto-api" ,ghc-crypto-api) ("ghc-cereal" ,ghc-cereal) @@ -211,7 +214,7 @@ that hides the C implementation.") (build-system haskell-build-system) (arguments `(#:cabal-revision - ("2" "0vyb9cfvpfxpslxvvhd48gw37i9g8ry5x63xwxd9q7xfiqhs7p3a") + ("4" "0gzaibjkipijwj9m9l6wrhfk5s3kdvfbhdl7cl1373cjfs41v0m3") #:tests? #f)) ; tests require old version of ghc-hunit (0.9) (native-inputs `(("ghc-base16-bytestring" ,ghc-base16-bytestring) ("ghc-puremd5" ,ghc-puremd5) @@ -239,7 +242,7 @@ that hides the C implementation.") (build-system haskell-build-system) (arguments `(#:cabal-revision - ("2" "0xas0nbq9bfdzlj6k565ibizv1cqvzfzsdj6q9pdiiwyxqblqc3m") + ("4" "0qb2wasfc4dpf6f9ahvhlv8njb3p3p9iwblg4032ssi95cg85718") #:tests? #f)) ; tests require old version of ghc-hunit (0.9) (native-inputs `(("ghc-base16-bytestring" ,ghc-base16-bytestring) ("ghc-sha" ,ghc-sha) @@ -273,7 +276,7 @@ the C implementation.") (build-system haskell-build-system) (arguments `(#:cabal-revision - ("1" "19birnmwga1yh82l4jqc3fygqkqcf5y8dlldnxfswngkzc3rvwp3") + ("3" "1arhz4y792kx439s2zv9x291gvvl2zxcfx9sq0nxsjlz7c3hpyp1") #:tests? #f)) ; tests require old version of ghc-hunit (0.9) (inputs `(("ghc-base16-bytestring" ,ghc-base16-bytestring))) @@ -306,6 +309,10 @@ the C implementation.") (base32 "131wbbdr5yavs5k1ah9sz6fqx1ffyvaxf66pwjzsfc47mwc1mgl9")))) (build-system haskell-build-system) + ;; FIXME: tests are broken. + ;; See https://github.com/haskell-crypto/cryptonite/issues/260 + (arguments '(#:tests? #f)) + (outputs '("out" "static" "doc")) (inputs `(("ghc-basement" ,ghc-basement) ("ghc-memory" ,ghc-memory) @@ -339,6 +346,8 @@ generators, and more.") (base32 "04gy2zp8yzvv7j9bdfvmfzcz3sqyqa6rwslqcn4vyair2vmif5v4")))) (build-system haskell-build-system) + (arguments + `(#:extra-directories ("zlib"))) (inputs `(("zlib" ,zlib))) (home-page @@ -354,7 +363,7 @@ are implemented as FFI bindings to efficient code from zlib.") (define-public ghc-entropy (package (name "ghc-entropy") - (version "0.4.1.1") + (version "0.4.1.5") (source (origin (method url-fetch) @@ -362,8 +371,7 @@ are implemented as FFI bindings to efficient code from zlib.") "entropy-" version "/" "entropy-" version ".tar.gz")) (sha256 - (base32 - "1ahz5g148l6sax3dy505na2513i99c7bxix68jja5kbx4f271zcf")))) + (base32 "0szf8hi1pi8g0kxnkcymh65gk1b0niyl1nnkckzdqyar87qal0jm")))) (build-system haskell-build-system) (home-page "https://github.com/TomMD/entropy") (synopsis "Provides platform independent entropy source for Haskell") @@ -459,14 +467,14 @@ libraries, like OpenSSL.") (define-public ghc-x509 (package (name "ghc-x509") - (version "1.7.3") + (version "1.7.5") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/" "x509/x509-" version ".tar.gz")) (sha256 (base32 - "0mkk29g32fs70bqkikg83v45h9jig9c8aail3mrdqwxpkfa0yx21")))) + "1j67c35g8334jx7x32hh6awhr43dplp0qwal5gnlkmx09axzrc5i")))) (build-system haskell-build-system) (inputs `(("ghc-memory" ,ghc-memory) @@ -488,7 +496,7 @@ libraries, like OpenSSL.") (define-public ghc-x509-store (package (name "ghc-x509-store") - (version "1.6.6") + (version "1.6.7") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/" @@ -496,7 +504,7 @@ libraries, like OpenSSL.") version ".tar.gz")) (sha256 (base32 - "0dbndqmnmyixxc7308nyq3zlkhz9dff4rbcw2a49c77rbicny9va")))) + "1y8yyr1i95jkllg8k0z54k5v4vachp848clc07m33xpxidn3b1lp")))) (build-system haskell-build-system) (inputs `(("ghc-pem" ,ghc-pem) @@ -517,7 +525,7 @@ collections, certificates, revocation lists, and exception lists.") (define-public ghc-x509-validation (package (name "ghc-x509-validation") - (version "1.6.10") + (version "1.6.11") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/" @@ -525,7 +533,7 @@ collections, certificates, revocation lists, and exception lists.") version ".tar.gz")) (sha256 (base32 - "1ms51scawldgyfcim5a2qlgyn3rnrclyh205d6djaa1569vrs73n")))) + "16yihzljql3z8w5rgdl95fv3hgk7yd86kbl9b3glllsark5j2hzr")))) (build-system haskell-build-system) (inputs `(("ghc-memory" ,ghc-memory) @@ -731,3 +739,138 @@ It also includes support for detached signatures, and thorough documentation on the design and implementation, including usage guidelines.") (license license:expat))) + +(define-public ghc-tls + (package + (name "ghc-tls") + (version "1.4.1") + (source (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "tls/tls-" version ".tar.gz")) + (sha256 + (base32 + "1y083724mym28n6xfaz7pcc7zqxdhjpaxpbvzxfbs25qq2px3smv")))) + (build-system haskell-build-system) + (inputs + `(("ghc-cereal" ,ghc-cereal) + ("ghc-data-default-class" ,ghc-data-default-class) + ("ghc-memory" ,ghc-memory) + ("ghc-cryptonite" ,ghc-cryptonite) + ("ghc-asn1-types" ,ghc-asn1-types) + ("ghc-asn1-encoding" ,ghc-asn1-encoding) + ("ghc-x509" ,ghc-x509) + ("ghc-x509-store" ,ghc-x509-store) + ("ghc-x509-validation" ,ghc-x509-validation) + ("ghc-async" ,ghc-async) + ("ghc-network" ,ghc-network) + ("ghc-hourglass" ,ghc-hourglass))) + (native-inputs + `(("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck) + ("ghc-quickcheck" ,ghc-quickcheck))) + (home-page "https://github.com/vincenthz/hs-tls") + (synopsis + "TLS/SSL protocol native implementation (Server and Client)") + (description + "Native Haskell TLS and SSL protocol implementation for server and client. +This provides a high-level implementation of a sensitive security protocol, +eliminating a common set of security issues through the use of the advanced +type system, high level constructions and common Haskell features. Currently +implement the SSL3.0, TLS1.0, TLS1.1 and TLS1.2 protocol, and support RSA and +Ephemeral (Elliptic curve and regular) Diffie Hellman key exchanges, and many +extensions.") + (license license:bsd-3))) + +(define-public ghc-hsopenssl + (package + (name "ghc-hsopenssl") + (version "0.11.4.17") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "HsOpenSSL/HsOpenSSL-" version ".tar.gz")) + (sha256 + (base32 + "0qivl9clmybfglwxqp2sq308rv4ia4rhwshcsc8b029bvpp0mpsi")))) + (build-system haskell-build-system) + (arguments + `(#:extra-directories ("openssl"))) + (inputs + `(("ghc-network" ,ghc-network) + ("openssl" ,openssl))) + (home-page "https://github.com/vshabanov/HsOpenSSL") + (synopsis "Partial OpenSSL binding for Haskell") + (description "HsOpenSSL is an OpenSSL binding for Haskell. It can +generate RSA and DSA keys, read and write PEM files, generate message +digests, sign and verify messages, encrypt and decrypt messages. It has +also some capabilities of creating SSL clients and servers. This +package is in production use by a number of Haskell based systems and +stable. You may also be interested in the tls package, +@uref{http://hackage.haskell.org/package/tls}, which is a pure Haskell +implementation of SSL.") + (license license:public-domain))) + +(define-public ghc-openssl-streams + (package + (name "ghc-openssl-streams") + (version "1.2.2.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "openssl-streams/openssl-streams-" + version ".tar.gz")) + (sha256 + (base32 + "0rplym6ayydkpr7x9mw3l13p0vzzfzzxw244d7sd3jcvaxpv0rmr")))) + (build-system haskell-build-system) + (inputs + `(("ghc-hsopenssl" ,ghc-hsopenssl) + ("ghc-io-streams" ,ghc-io-streams) + ("ghc-network" ,ghc-network))) + (native-inputs + `(("ghc-hunit" ,ghc-hunit) + ("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-hunit" ,ghc-test-framework-hunit))) + (home-page "https://hackage.haskell.org/package/openssl-streams") + (synopsis "OpenSSL network support for io-streams") + (description "This library contains io-streams routines for secure +networking using OpenSSL (by way of HsOpenSSL).") + (license license:bsd-3))) + +(define-public ghc-cryptonite-conduit + (package + (name "ghc-cryptonite-conduit") + (version "0.2.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "cryptonite-conduit/cryptonite-conduit-" + version ".tar.gz")) + (sha256 + (base32 + "1bldcmda4xh52mw1wfrjljv8crhw3al7v7kv1j0vidvr7ymnjpbh")))) + (build-system haskell-build-system) + (inputs + `(("ghc-conduit" ,ghc-conduit) + ("ghc-conduit-extra" ,ghc-conduit-extra) + ("ghc-cryptonite" ,ghc-cryptonite) + ("ghc-exceptions" ,ghc-exceptions) + ("ghc-memory" ,ghc-memory) + ("ghc-resourcet" ,ghc-resourcet))) + (native-inputs + `(("ghc-conduit-combinators" ,ghc-conduit-combinators) + ("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-hunit" ,ghc-tasty-hunit) + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck))) + (arguments + `(#:cabal-revision + ("1" "1hh2nzfz4qpxgivfilgk4ll416lph8b2fdkzpzrmqfjglivydfmz"))) + (home-page "https://github.com/haskell-crypto/cryptonite-conduit") + (synopsis "Cryptonite bridge for conduit") + (description "This package provides conduit interfaces for some of +cryptonite's implementations of cryptographic primitives.") + (license license:bsd-3)))