;;; Copyright © 2015 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2014, 2017 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org>
-;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015, 2016, 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
-;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2016, 2017, 2020 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2019 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org>
+;;; Copyright © 2020 Justus Winter <justus@sequoia-pgp.org>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
#:use-module (gnu packages python-check)
+ #:use-module (gnu packages python-compression)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages swig)
#:use-module (gnu packages time)
#:use-module (gnu packages tls)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (srfi srfi-1))
+(define-public python-potr
+ (package
+ (name "python-potr")
+ (version "1.0.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/python-otr/pure-python-otr.git")
+ (commit version)))
+ (file-name
+ (git-file-name name version))
+ (sha256
+ (base32 "1hzw6h01fm216nmipyylgz0zybd80w1xsk12m7djycnhqrnrvvv1"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-pycrypto" ,python-pycrypto)))
+ (synopsis "Python OTR Implementation")
+ (description "Python OTR is an Off-The-Record Protocol Implementation in
+Python. It does not bind to libotr.")
+ (home-page "https://github.com/python-otr/pure-python-otr")
+ (license license:lgpl3+)))
+
(define-public python-base58
(package
(name "python-base58")
(define-public python-paramiko
(package
(name "python-paramiko")
- (version "2.4.2")
+ (version "2.7.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "paramiko" version))
(sha256
- (base32
- "1jqgj2gl1pz7bi2aab1r2xq0ml0gskmm9p235cg9y32nydymm5x8"))))
+ (base32 "0dahwq623jnna7gsr9j0mkwr9k2n1pvkapjryhcx508d5jxg8dkz"))))
(build-system python-build-system)
(arguments
`(;; FIXME: Tests require many unpackaged libraries, see dev-requirements.txt.
(define-public python-axolotl-curve25519
(package
(name "python-axolotl-curve25519")
- (version "0.1")
+ (version "0.4.1.post2")
(source
(origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/tgalal/python-axolotl-curve25519")
- (commit "e4a9c4de0eae27223200579c58d1f8f6d20637e2")))
- (file-name (string-append name "-" version "-checkout"))
+ (method url-fetch)
+ (uri (pypi-uri "python-axolotl-curve25519" version))
(sha256
(base32
- "0agap5q0hmvf6cwzjqc05kw53pjgf6942pcivpazksmg1vk400ra"))))
+ "18v3rfyv7xi26fb97nw1xc0l6x8wi0i4xj8dlq4gblpbjxiac187"))))
(build-system python-build-system)
- (arguments
- `(;; Prevent creation of the egg. This works around
- ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20765
- #:configure-flags '("--root=/")))
(home-page "https://github.com/tgalal/python-axolotl-curve25519")
(synopsis "Python wrapper for curve25519 library")
(description "This is a python wrapper for the curve25519 library
(define-public python-axolotl
(package
(name "python-axolotl")
- (version "0.1.39")
+ (version "0.2.3")
(source
(origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/tgalal/python-axolotl")
- (commit version)))
- (file-name (git-file-name name version))
- (patches (search-patches "python-axolotl-AES-fix.patch"))
+ (method url-fetch)
+ (uri (pypi-uri "python-axolotl" version))
(sha256
- (base32 "0xm9qgcwf6fq7rhzfcviwhbzcbj4i7wkxkab2z55fy1x82lya9g6"))))
+ (base32
+ "1bwdp24fmriffwx91aigs9k162albb51iskp23nc939z893q23py"))))
(build-system python-build-system)
(arguments
`(#:phases
#t)))))
(propagated-inputs
`(("python-axolotl-curve25519" ,python-axolotl-curve25519)
- ("python-dateutil" ,python-dateutil)
- ("python-protobuf" ,python-protobuf)
- ("python-pycrypto" ,python-pycrypto)))
+ ("python-cryptography" ,python-cryptography)
+ ("python-protobuf" ,python-protobuf)))
(home-page "https://github.com/tgalal/python-axolotl")
(synopsis "Python port of libaxolotl-android")
(description "This is a python port of libaxolotl-android. This
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/wbond/asn1crypto.git")
+ (url "https://github.com/wbond/asn1crypto")
(commit version)))
(file-name (git-file-name name version))
(sha256
(define-public python-pynacl
(package
(name "python-pynacl")
- (version "1.3.0")
+ (version "1.4.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "PyNaCl" version))
(modules '((guix build utils)))
- ;; Remove bundled libsodium.
- (snippet '(begin (delete-file-recursively "src/libsodium")
- #t))
+ (snippet
+ '(begin
+ ;; Remove spurious dependency on python-wheel, can be removed
+ ;; for 1.5.
+ (substitute* "setup.py"
+ (("\"wheel\"") ""))
+ ;; Remove bundled libsodium.
+ (delete-file-recursively "src/libsodium")
+ #t))
(sha256
(base32
- "0330wyvggm19xhmwmz9rrr97lzbv3siwfy50gmax3vvgs7nh0q8c"))))
+ "01b56hxrbif3hx8l6rwz5kljrgvlbj7shmmd2rjh0hn7974a5sal"))))
(build-system python-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
+ `(#:modules (,@%python-build-system-modules
+ (guix build utils)
+ (ice-9 ftw)
+ (srfi srfi-26))
+ #:phases
+ (modify-phases (@ (guix build python-build-system) %standard-phases)
(add-before 'build 'use-system-sodium
(lambda _
(setenv "SODIUM_INSTALL" "system")
- #t)))))
+ #t))
+ (replace 'check
+ (lambda _
+ (let ((build-directory
+ (car (scandir "build" (cut string-prefix? "lib" <>)))))
+ (setenv "PYTHONPATH"
+ (string-append "./build/" build-directory ":"
+ (getenv "PYTHONPATH")))
+ (invoke "pytest" "-vv")))))))
(native-inputs
`(("python-hypothesis" ,python-hypothesis)
("python-pytest" ,python-pytest)))
(base32 "09yirf3w77w6f49q6nxhrjm9c3a4y9s30s1k09chqrw8zdgx8sjc"))))
(build-system python-build-system)
(inputs `(("openssl" ,openssl)))
+ (native-inputs `(("swig" ,swig)))
(home-page "https://gitlab.com/m2crypto/m2crypto")
(synopsis "Python crypto and TLS toolkit")
(description "@code{M2Crypto} is a complete Python wrapper for OpenSSL
`(("python-automat" ,python-automat)
("python-idna" ,python-idna)
("python-incremental" ,python-incremental)
- ("python-ipaddress" ,python-ipaddress)
("python-service-identity" ,python-service-identity)
("python-twisted" ,python-twisted)
("python-zope-interface" ,python-zope-interface)))
(asynchronous unlocking is also supported).")
(license license:bsd-3)))
+(define-public python-trustme
+ (package
+ (name "python-trustme")
+ (version "0.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "trustme" version))
+ (sha256
+ (base32 "0v3vr5z6apnfmklf07m45kv5kaqvm6hxrkaqywch57bjd2siiywx"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (add-installed-pythonpath inputs outputs)
+ (invoke "pytest" "-vv"))))))
+ (native-inputs
+ `(("python-more-itertools" ,python-more-itertools)
+ ("python-pyopenssl" ,python-pyopenssl)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-cov" ,python-pytest-cov)
+ ("python-service-identity" ,python-service-identity)
+ ("python-zipp" ,python-zipp)))
+ (propagated-inputs
+ `(("python-cryptography" ,python-cryptography)))
+ (home-page "https://github.com/python-trio/trustme")
+ (synopsis "Fake a certificate authority for tests")
+ (description
+ "@code{trustme} is a tiny Python package that does one thing: it gives you
+a fake certificate authority (CA) that you can use to generate fake TLS certs to
+use in your tests.")
+ ;; Either license applies.
+ (license (list license:expat license:asl2.0))))
+
+(define-public python-certipy
+ (package
+ (name "python-certipy")
+ (version "0.1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "certipy" version))
+ (sha256
+ (base32
+ "0n980gqpzh0fm58h3i4mi2i10wgj606lscm1r5sk60vbf6vh8mv9"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-pyopenssl" ,python-pyopenssl)))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)))
+ (home-page "https://github.com/LLNL/certipy")
+ (synopsis "Utility to create and sign CAs and certificates")
+ (description
+ "Certipy was made to simplify the certificate creation process. To that
+end, certipy exposes methods for creating and managing certificate authorities,
+certificates, signing and building trust bundles.")
+ (license license:bsd-3)))
+
(define-public python-jeepney
(package
(name "python-jeepney")
- (version "0.4.2")
+ (version "0.4.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "jeepney" version))
(sha256
- (base32
- "1fz9lb5fl831sijg2j0sbki698j2z6awbblas7mz3gp9jz2xi9hb"))))
+ (base32 "0vp3p1lqhqk2kd3254q5sxr50znmm2hmysc8a7g0fr1brihvhy9l"))))
(build-system python-build-system)
(native-inputs
`(("python-testpath" ,python-testpath)
(define-public python-argon2-cffi
(package
(name "python-argon2-cffi")
- (version "19.2.0")
+ (version "20.1.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "argon2-cffi" version))
(sha256
(base32
- "18xxfw30gi3lwaz4vwb05iavzlrk3fa1x9fippzrgd3px8z65apz"))
+ "0zgr4mnnm0p4i99023safb0qb8cgvl202nly1rvylk2b7qnrn0nq"))
(modules '((guix build utils)))
(snippet '(begin (delete-file-recursively "extras") #t))))
(build-system python-build-system)
data such as API keys, cryptocurrency wallets, or seeds for digital
signatures.")
(license (list license:expat license:asl2.0)))) ; dual licensed
+
+(define-public python-pgpy
+ (package
+ (name "python-pgpy")
+ (version "0.5.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "PGPy" version))
+ (sha256
+ (base32
+ "0i4lqhzdwkjkim3wab0kqadx28z3r5ixlh6qxj4lif4gif56c0m7"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-cryptography" ,python-cryptography)
+ ("python-pyasn1" ,python-pyasn1)
+ ("python-singledispatch" ,python-singledispatch)
+ ("python-six" ,python-six)))
+ (home-page "https://github.com/SecurityInnovation/PGPy")
+ (synopsis "Python implementation of OpenPGP")
+ (description
+ "Currently, PGPy can load keys and signatures of all kinds in both ASCII
+armored and binary formats.
+
+It can create and verify RSA, DSA, and ECDSA signatures, at the moment. It
+can also encrypt and decrypt messages using RSA and ECDH.")
+ (license license:bsd-3)))
+
+(define-public python-sop
+ (package
+ (name "python-sop")
+ (version "0.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "sop" version))
+ (sha256
+ (base32
+ "0gljyjsdn6hdmwlwwb5g5s0c031p6izamvfxp0d39x60af8k5jyf"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:tests? #f)) ; There are no tests, and unittest throws an error trying
+ ; to find some:
+ ; TypeError: don't know how to make test from: 0.2.0
+ (home-page "https://gitlab.com/dkg/python-sop")
+ (synopsis "Stateless OpenPGP Command-Line Interface")
+ (description
+ "The Stateless OpenPGP Command-Line Interface (or sop) is a
+specification that encourages OpenPGP implementors to provide a common,
+relatively simple command-line API for purposes of object security.
+
+This Python module helps implementers build such a CLI from any implementation
+accessible to the Python interpreter.
+
+It does not provide such an implementation itself -- this is just the
+scaffolding for the command line, which should make it relatively easy to
+supply a handful of python functions as methods to a class.")
+ (license license:expat))) ; MIT license