aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/python-crypto.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/python-crypto.scm')
-rw-r--r--gnu/packages/python-crypto.scm149
1 files changed, 142 insertions, 7 deletions
diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index 2072e4e164..e49ccdf1f2 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015, 2016, 2017, 2019 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2016, 2017, 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2016, 2017, 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2017 Ben Sturmfels <ben@sturm.com.au>
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2015 Cyril Roelandt <tipecaml@gmail.com>
@@ -47,9 +47,11 @@
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
+ #:use-module (guix build-system cargo)
#:use-module (guix build-system python)
#:use-module (gnu packages)
#:use-module (gnu packages check)
+ #:use-module (gnu packages crates-io)
#:use-module (gnu packages crypto)
#:use-module (gnu packages kerberos)
#:use-module (gnu packages libffi)
@@ -62,6 +64,7 @@
#:use-module (gnu packages python-compression)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages rust)
#:use-module (gnu packages swig)
#:use-module (gnu packages time)
#:use-module (gnu packages tls)
@@ -96,17 +99,22 @@ Python. It does not bind to libotr.")
(define-public python-base58
(package
(name "python-base58")
- (version "2.0.1")
+ (version "2.1.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "base58" version))
(sha256
(base32
- "0yfaqp76kbdb62hikr5n4jkkfjfmii89grwfy6sw3fmsv5hrap1n"))))
+ "1317ly0db7nnjg5k58f6nqa0svfcvn446xd5bpiyi0bfbczwpl65"))))
(build-system python-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests? (invoke "pytest" "-vv")))))))
(native-inputs
- (list python-pyhamcrest))
+ (list python-pyhamcrest python-pytest python-pytest-benchmark))
(home-page "https://github.com/keis/base58")
(synopsis "Base58 and Base58Check implementation")
(description "Base58 and Base58Check implementation compatible
@@ -222,19 +230,23 @@ Python interface around SSH networking concepts.")
(define-public python-ecdsa
(package
(name "python-ecdsa")
- (version "0.14.1")
+ (version "0.17.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "ecdsa" version))
(sha256
- (base32 "13nx5cbfxc0gnax5zwdmp9xc40qd1llk62mv85jyrvqkbw017ik4"))))
+ (base32 "1ak8xa2r660d85abrlffp0bqvwdadg9ga4066g856hcy8fxh1xdr"))))
(build-system python-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(replace 'check
- (lambda _ (invoke "pytest"))))))
+ (lambda _ (invoke
+ "pytest"
+ "-vv"
+ "-k"
+ "not test_multithreading_with_interrupts"))))))
(propagated-inputs
(list python-six))
(native-inputs
@@ -538,6 +550,129 @@ message digests and key derivation functions.")
("python2-enum34" ,python2-enum34)
,@(package-propagated-inputs crypto))))))
+;; 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
+ (method url-fetch)
+ (uri (pypi-uri "cryptography" version))
+ (sha256
+ (base32
+ "0f1n8bvngarhsssm60xc59xfzkh7yqpyyyypaph3v5bs7pfc3rak"))))
+ (build-system python-build-system)
+ (arguments
+ (list
+ #:imported-modules (append %cargo-build-system-modules
+ %python-build-system-modules)
+ #:modules `(((guix build cargo-build-system) #:prefix cargo:)
+ ,@%python-build-system-modules
+ (srfi srfi-1)
+ (ice-9 match))
+ #:phases
+ #~(modify-phases (@ (guix build python-build-system) %standard-phases)
+ (add-after 'unpack 'loosen-ouroboros-version
+ (lambda _
+ (substitute* "src/rust/Cargo.toml"
+ (("ouroboros = \"0\\.13\"")
+ "ouroboros = \"0.14\""))))
+ (add-before 'build 'configure-cargo
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Hide irrelevant inputs from cargo-build-system so it does
+ ;; not try to unpack sanity-check.py, etc.
+ (let ((cargo-inputs (filter (match-lambda
+ ((name . path)
+ (or (string-prefix? "rust-" name)
+ (string=? "gcc" name))))
+ inputs)))
+ (with-directory-excursion "src/rust"
+ ((assoc-ref cargo:%standard-phases 'unpack-rust-crates)
+ #:inputs cargo-inputs
+ #:vendor-dir "guix-vendor")
+ ((assoc-ref cargo:%standard-phases 'configure)
+ #:inputs cargo-inputs)
+ ((assoc-ref cargo:%standard-phases 'patch-cargo-checksums)
+ #:vendor-dir "guix-vendor"))
+ (rename-file "src/rust/.cargo" ".cargo"))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "pytest" "-vv" "tests")))))))
+ (inputs
+ (list openssl
+ rust-aliasable-0.1
+ rust-asn1-0.8
+ rust-asn1-derive-0.8
+ rust-autocfg-1
+ rust-base64-0.13
+ rust-bitflags-1
+ rust-cfg-if-0.1
+ rust-cfg-if-1
+ rust-chrono-0.4
+ rust-cloudabi-0.1
+ rust-lazy-static-1
+ rust-libc-0.2
+ rust-indoc-0.3
+ rust-indoc-impl-0.3
+ rust-inflector-0.11
+ rust-instant-0.1
+ rust-lock-api-0.4
+ rust-num-integer-0.1
+ rust-num-traits-0.2
+ rust-once-cell-1
+ rust-ouroboros-0.14
+ rust-ouroboros-macro-0.14
+ rust-parking-lot-0.11
+ rust-parking-lot-core-0.8
+ rust-paste-0.1
+ rust-paste-impl-0.1
+ rust-pem-1
+ rust-proc-macro-error-1
+ rust-proc-macro-error-attr-1
+ rust-proc-macro-hack-0.5
+ rust-proc-macro2-1
+ rust-pyo3-0.15
+ rust-pyo3-build-config-0.15
+ rust-pyo3-macros-0.15
+ rust-pyo3-macros-backend-0.15
+ rust-quote-1
+ rust-redox-syscall-0.1
+ rust-scopeguard-1
+ rust-smallvec-1
+ rust-stable-deref-trait-1
+ rust-syn-1
+ rust-unicode-xid-0.2
+ rust-unindent-0.1
+ rust-version-check-0.9
+ rust-winapi-0.3))
+ (propagated-inputs
+ (list python-asn1crypto python-cffi python-six python-idna
+ python-iso8601))
+ (native-inputs
+ (list python-cryptography-vectors-next
+ python-hypothesis
+ python-pretend
+ python-pytz
+ python-pytest
+ python-pytest-subtests
+ python-setuptools-rust
+ rust `(,rust "cargo")))
+ (properties '())))
+
(define-public python-pyopenssl
(package
(name "python-pyopenssl")