summary refs log tree commit diff
path: root/gnu/packages/python-crypto.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2022-06-08 14:46:24 +0200
committerLudovic Courtès <ludo@gnu.org>2022-06-08 14:46:24 +0200
commit8c3e9da13a3c92a7db308db8c0d81cb474ad7799 (patch)
tree88d06952aa5cc3a9c4991d9c43eb7950ff174fe1 /gnu/packages/python-crypto.scm
parent5439c04ebdb7b6405f5ea2446b375f1d155a8d95 (diff)
parent0c5299200ffcd16370f047b7ccb187c60f30da34 (diff)
downloadguix-8c3e9da13a3c92a7db308db8c0d81cb474ad7799.tar.gz
Merge branch 'master' into core-updates
Diffstat (limited to 'gnu/packages/python-crypto.scm')
-rw-r--r--gnu/packages/python-crypto.scm187
1 files changed, 73 insertions, 114 deletions
diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index d331601c66..92c1638c6d 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -11,7 +11,7 @@
 ;;; 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 © 2015, 2016, 2017, 2019, 2022 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
 ;;; Copyright © 2016, 2017, 2020 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
@@ -24,7 +24,7 @@
 ;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org>
 ;;; Copyright © 2020 Justus Winter <justus@sequoia-pgp.org>
 ;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
-;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -261,9 +261,6 @@ messages, and verify the signatures.  The keys and signatures are very short,
 making them easy to handle and incorporate into other protocols.")
     (license license:expat)))
 
-(define-public python2-ecdsa
-  (package-with-python2 python-ecdsa))
-
 ;;; Pycrypto is abandoned upstream:
 ;;;
 ;;; https://github.com/dlitz/pycrypto/issues/173
@@ -299,15 +296,6 @@ and RIPEMD160), and various encryption algorithms (AES, DES, RSA, ElGamal,
 etc.).  The package is structured to make adding new modules easy.")
     (license license:public-domain)))
 
-(define-public python2-pycrypto
-  (let ((pycrypto (package-with-python2 python-pycrypto)))
-    (package/inherit pycrypto
-      (inputs
-       `(("python" ,python-2)
-         ,@(alist-delete
-            "python"
-            (package-inputs pycrypto)))))))
-
 (define-public python-kerberos
   (package
     (name "python-kerberos")
@@ -351,14 +339,10 @@ do what is needed for client/server Kerberos authentication based on
          (replace 'check
            (lambda* (#:key tests? #:allow-other-keys)
              (when tests?
-               (invoke "pytest"))
-             #t)))))
+               (invoke "pytest" "-vv" "-c" "/dev/null" "tests")))))))
     (native-inputs
      (list python-toml
            python-pytest
-           python-pytest-checkdocs
-           python-pytest-cov
-           python-pytest-flake8
            python-setuptools
            python-setuptools-scm))
     (propagated-inputs
@@ -370,30 +354,8 @@ do what is needed for client/server Kerberos authentication based on
 service from python.  It can be used in any application that needs safe
 password storage.")
     ;; "MIT" and PSF dual license
-    (properties `((python2-variant . ,(delay python2-keyring))))
     (license license:x11)))
 
-(define-public python2-keyring
-  (let ((keyring (package-with-python2
-                   (strip-python2-variant python-keyring))))
-    (package
-      (inherit keyring)
-      (name "python2-keyring")
-      (version "8.7")
-      (source
-        (origin
-          (method url-fetch)
-          (uri (pypi-uri "keyring" version))
-          (sha256
-           (base32
-            "0482rmi2x6p78wl2kz8qzyq21xz1sbbfwnv5x7dggar4vkwxhzfx"))))
-      (arguments
-       `(#:python ,python-2))
-      (native-inputs
-       (list python2-pytest python2-pytest-runner python2-setuptools-scm))
-      (propagated-inputs
-       (list python2-pycrypto)))))
-
 (define-public python-keyrings.alt
   (package
     (name "python-keyrings.alt")
@@ -475,9 +437,6 @@ for example, for recording or replaying web content.")
 is used by the Requests library to verify HTTPS requests.")
     (license license:asl2.0)))
 
-(define-public python2-certifi
-  (package-with-python2 python-certifi))
-
 (define-public python-cryptography-vectors
   (package
     (name "python-cryptography-vectors")
@@ -500,6 +459,50 @@ is used by the Requests library to verify HTTPS requests.")
 (define-public python-cryptography
   (package
     (name "python-cryptography")
+    (version "3.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "cryptography" version))
+       (sha256
+        (base32
+         "1ribd1vxq9wwz564mg60dzcy699gng54admihjjkgs9dx95pw5vy"))))
+    (build-system python-build-system)
+    (inputs
+     (list openssl))
+    (propagated-inputs
+     (list python-asn1crypto python-cffi python-six python-idna
+           python-iso8601))
+    (native-inputs
+     (list python-cryptography-vectors python-hypothesis python-pretend
+           python-pytz python-pytest))
+    (home-page "https://github.com/pyca/cryptography")
+    (synopsis "Cryptographic recipes and primitives for Python")
+    (description
+      "cryptography is a package which provides cryptographic recipes and
+primitives to Python developers.  It aims to be the “cryptographic standard
+library” for Python.  The package includes both high level recipes, and low
+level interfaces to common cryptographic algorithms such as symmetric ciphers,
+message digests and key derivation functions.")
+    ;; Distributed under either BSD-3 or ASL2.0
+    (license (list license:bsd-3 license:asl2.0))))
+
+;; TODO: Make this the default in the next staging cycle.
+(define-public python-cryptography-vectors-next
+  (package
+    (inherit python-cryptography-vectors)
+    (version "36.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "cryptography_vectors" version))
+       (sha256
+        (base32
+         "166mvhhmgglqai1sjkkb76mpdkad2yykam11d2w44hs2snpr117w"))))))
+
+(define-public python-cryptography-next
+  (package
+    (inherit python-cryptography)
     (version "36.0.1")
     (source
      (origin
@@ -584,7 +587,7 @@ is used by the Requests library to verify HTTPS requests.")
            rust-pyo3-macros-0.15
            rust-pyo3-macros-backend-0.15
            rust-quote-1
-           rust-redox-syscall-0.1
+           rust-redox-syscall-0.2
            rust-scopeguard-1
            rust-smallvec-1
            rust-stable-deref-trait-1
@@ -708,20 +711,6 @@ library.")
     (properties `((python2-variant . ,(delay python2-pyopenssl))))
     (license license:asl2.0)))
 
-(define-public python2-pyopenssl
-  (let ((base (package-with-python2 (strip-python2-variant python-pyopenssl))))
-    (package
-      (inherit base)
-      (version "21.0.0")
-      (source
-       (origin
-         (method url-fetch)
-         (uri (pypi-uri "pyOpenSSL" version))
-         (patches (search-patches "python2-pyopenssl-openssl-compat.patch"))
-         (sha256
-          (base32
-           "1cqcc20fwl521z3fxsc1c98gbnhb14q55vrvjfp6bn6h8rg8qbay")))))))
-
 (define-public python-ed25519
   (package
     (name "python-ed25519")
@@ -739,9 +728,6 @@ library.")
     (description "Ed25519 public-key signatures")
     (license license:expat)))
 
-(define-public python2-ed25519
-  (package-with-python2 python-ed25519))
-
 (define-public python-axolotl-curve25519
   (package
     (name "python-axolotl-curve25519")
@@ -763,9 +749,6 @@ python-axolotl.")
     (license (list license:gpl3    ; Most files
                    license:bsd-3)))) ; curve/curve25519-donna.c
 
-(define-public python2-axolotl-curve25519
-  (package-with-python2 python-axolotl-curve25519))
-
 (define-public python-axolotl
   (package
     (name "python-axolotl")
@@ -796,29 +779,6 @@ is a ratcheting forward secrecy protocol that works in synchronous and
 asynchronous messaging environments.")
     (license license:gpl3)))
 
-(define-public python2-axolotl
-  (package-with-python2 python-axolotl))
-
-;; SlowAES isn't compatible with Python 3.
-(define-public python2-slowaes
-  (package
-    (name "python2-slowaes")
-    (version "0.1a1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "slowaes" version))
-       (sha256
-        (base32
-         "02dzajm83a7lqgxf6r3hgj64wfmcxz8gs4nvgxpvj5n19kjqlrc3"))))
-    (build-system python-build-system)
-    (arguments `(#:python ,python-2))
-    (home-page "http://code.google.com/p/slowaes/")
-    (synopsis "Implementation of AES in Python")
-    (description "This package contains an implementation of AES in Python.
-This implementation is slow (hence the project name) but still useful when
-faster ones are not available.")
-    (license license:asl2.0)))
 
 (define-public python-pyaes
   (package
@@ -839,9 +799,6 @@ AES block cipher algorithm and the common modes of operation (CBC, CFB, CTR,
 ECB and OFB).")
     (license license:expat)))
 
-(define-public python2-pyaes
-  (package-with-python2 python-pyaes))
-
 (define-public python-asn1crypto
   (package
     (name "python-asn1crypto")
@@ -869,9 +826,6 @@ for private keys, public keys, certificates, CRL, OCSP, CMS, PKCS#3, PKCS#7,
 PKCS#8, PKCS#12, PKCS#5, X.509 and TSP.")
     (license license:expat)))
 
-(define-public python2-asn1crypto
-  (package-with-python2 python-asn1crypto))
-
 (define-public python-pynacl
   (package
     (name "python-pynacl")
@@ -966,9 +920,6 @@ of improving usability, security and speed.")
 Python.")
     (license license:asl2.0)))
 
-(define-public python2-ecpy
-  (package-with-python2 python-ecpy))
-
 (define-public python-josepy
   (package
     (name "python-josepy")
@@ -1001,9 +952,6 @@ Python.")
 protocol (Javascript Object Signing and Encryption).")
     (license license:asl2.0)))
 
-(define-public python2-josepy
-  (package-with-python2 python-josepy))
-
 (define pycryptodome-unbundle-tomcrypt-snippet
   #~(begin
       ;; Unbundle libtomcrypt.
@@ -1076,9 +1024,6 @@ PyCryptodome variants, the other being python-pycryptodomex.")
     (license (list license:bsd-2
                    license:public-domain)))) ; code inherited from PyCrypto
 
-(define-public python2-pycryptodome
-  (package-with-python2 python-pycryptodome))
-
 (define-public python-pycryptodomex
   (package (inherit python-pycryptodome)
     (name "python-pycryptodomex")
@@ -1153,16 +1098,8 @@ extensions to Python's httplib, urllib, and xmlrpclib; unforgeable HMAC'ing
 AuthCookies for web session management; FTP/TLS client and server; S/MIME;
 M2Crypto can also be used to provide TLS for Twisted.  Smartcards supported
 through the Engine interface.")
-    (properties `((python2-variant . ,(delay python2-m2crypto))))
     (license license:expat)))
 
-(define-public python2-m2crypto
-  (let ((m2crypto (package-with-python2
-                   (strip-python2-variant python-m2crypto))))
-    (package/inherit m2crypto
-             (propagated-inputs
-              `(("python2-typing" ,python2-typing))))))
-
 (define-public python-pykeepass
   (package
     (name "python-pykeepass")
@@ -1345,9 +1282,6 @@ service_identity implements RFC 6125 fully and plans to add other
 relevant RFCs too.")
     (license license:expat)))
 
-(define-public python2-service-identity
-  (package-with-python2 python-service-identity))
-
 (define-public python-hkdf
   (package
     (name "python-hkdf")
@@ -1724,6 +1658,31 @@ 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-pyu2f
+  (package
+    (name "python-pyu2f")
+    (version "0.1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pyu2f" version))
+       (sha256
+        (base32 "0srhzdbgdsqwpcw7awqm19yg3xbabqckfvrp8rbpvz2232hs7jm3"))))
+    (build-system python-build-system)
+    (arguments '(#:tests? #f))          ;none included
+    (propagated-inputs (list python-six))
+    (native-inputs
+     (list python-mock
+           python-pyfakefs
+           python-pytest
+           python-unittest2))
+    (home-page "https://github.com/google/pyu2f/")
+    (synopsis "U2F host library for interacting with a U2F device over USB")
+    (description
+     "Pyu2f is a Python-based U2F host library.  It provides functionality for
+interacting with a U2F device over USB.")
+    (license license:asl2.0)))
+
 (define-public python-sop
   (package
     (name "python-sop")