summaryrefslogtreecommitdiff
path: root/gnu/packages/python-crypto.scm
diff options
context:
space:
mode:
authorTobias Geerinckx-Rice <me@tobias.gr>2020-11-14 00:04:08 +0100
committerTobias Geerinckx-Rice <me@tobias.gr>2020-11-14 01:50:32 +0100
commit5ef1913ce6516ddd78c4efe7645b6e06d8925503 (patch)
tree1f2cfcb6798a58b9ddfaa178c1c70037e3784a9a /gnu/packages/python-crypto.scm
parente0c34c1a4c3a6e5ffc7163c6e114aa89d9cc2329 (diff)
downloadguix-patches-5ef1913ce6516ddd78c4efe7645b6e06d8925503.tar
guix-patches-5ef1913ce6516ddd78c4efe7645b6e06d8925503.tar.gz
gnu: Add python-pycryptodomex.
* gnu/packages/python-crypto.scm (python-pycryptodomex): New public variable.
Diffstat (limited to 'gnu/packages/python-crypto.scm')
-rw-r--r--gnu/packages/python-crypto.scm51
1 files changed, 51 insertions, 0 deletions
diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index 1ac98caab0..652bca7bc4 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -1029,6 +1029,57 @@ in userspace)
(define-public python2-pycryptodome
(package-with-python2 python-pycryptodome))
+(define-public python-pycryptodomex
+ (package
+ (name "python-pycryptodomex")
+ (version "3.9.9")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pycryptodomex" version))
+ (sha256
+ (base32 "0lbx4qk3xmwqiidhmkj8qa7bh2lf8bwzg0xjpsh2w5zqjrc7qnvv"))))
+ (build-system python-build-system)
+ (home-page "https://www.pycryptodome.org")
+ (synopsis "Low-level cryptographic Python library")
+ (description
+ "PyCryptodome is a self-contained Python package of low-level
+cryptographic primitives. It's not a wrapper to a separate C library like
+OpenSSL. To the largest possible extent, algorithms are implemented in pure
+Python. Only the pieces that are extremely critical to performance (e.g.,
+block ciphers) are implemented as C extensions.
+
+You are expected to have a solid understanding of cryptography and security
+engineering to successfully use these primitives. You must also be able to
+recognize that some are obsolete (e.g., TDES) or even insecure (RC4).
+
+It provides many enhancements over the last release of PyCrypto (2.6.1):
+
+@itemize
+@item Authenticated encryption modes (GCM, CCM, EAX, SIV, OCB)
+@item Accelerated AES on Intel platforms via AES-NI
+@item First-class support for PyPy
+@item Elliptic curves cryptography (NIST P-256 curve only)
+@item Better and more compact API (nonce and iv attributes for ciphers,
+automatic generation of random nonces and IVs, simplified CTR cipher mode, and
+more)
+@item SHA-3 (including SHAKE XOFs) and BLAKE2 hash algorithms
+@item Salsa20 and ChaCha20 stream ciphers
+@item scrypt and HKDF
+@item Deterministic (EC)DSA
+@item Password-protected PKCS#8 key containers
+@item Shamir’s Secret Sharing scheme
+@item Random numbers get sourced directly from the OS (and not from a CSPRNG
+in userspace)
+@item Cleaner RSA and DSA key generation (largely based on FIPS 186-4)
+@item Major clean-ups and simplification of the code base
+@end itemize
+
+PyCryptodomex is the stand-alone version of PyCryptodome that no longer
+provides drop-in compatibility with PyCrypto.")
+ (license (list license:bsd-2
+ license:public-domain)))) ; code inherited from PyCrypto
+
(define-public python-m2crypto
(package
(name "python-m2crypto")