diff options
author | Alfred Wingate <parona@protonmail.com> | 2023-11-14 19:20:19 +0200 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2023-11-14 19:56:39 +0100 |
commit | b1f4a60612395dd8af27ea39b4b72a3827ba1f5f (patch) | |
tree | 6ffc27c25f9eaa32dd042d1c536d89fad1c28947 /dev-python/pycryptodome | |
parent | dev-util/intel_clc: Add RDEPEND on libclc (diff) | |
download | gentoo-b1f4a60612395dd8af27ea39b4b72a3827ba1f5f.tar.gz gentoo-b1f4a60612395dd8af27ea39b4b72a3827ba1f5f.tar.bz2 gentoo-b1f4a60612395dd8af27ea39b4b72a3827ba1f5f.zip |
dev-python/pycryptodome: add 3.19.0
Signed-off-by: Alfred Wingate <parona@protonmail.com>
Closes: https://github.com/gentoo/gentoo/pull/33824
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'dev-python/pycryptodome')
-rw-r--r-- | dev-python/pycryptodome/Manifest | 1 | ||||
-rw-r--r-- | dev-python/pycryptodome/files/pycryptodome-3.19.0-fix-verbosity-in-tests.patch | 120 | ||||
-rw-r--r-- | dev-python/pycryptodome/pycryptodome-3.19.0.ebuild | 61 |
3 files changed, 182 insertions, 0 deletions
diff --git a/dev-python/pycryptodome/Manifest b/dev-python/pycryptodome/Manifest index 52265221b4a2..7d8268b41a31 100644 --- a/dev-python/pycryptodome/Manifest +++ b/dev-python/pycryptodome/Manifest @@ -1 +1,2 @@ DIST pycryptodome-3.18.0.gh.tar.gz 16720227 BLAKE2B dfdc3a7cc0b1aea1e7b7d8f6e8bcf651ca92f0020e2c51849512d00e716283537feb884cacdc655d99a6b992305db9b899172d022bc9ff65d6349ee40b40c4d5 SHA512 a30a6b406bfd1d4288169924924636246c36999ca1e14c5cb70bd2f71ce25739dae04726ca97bdaebf7a8b36927cc6f617fbe2599fad48512a2c5e016a528247 +DIST pycryptodome-3.19.0.gh.tar.gz 17153954 BLAKE2B 5ecaacce490e5eec052d632b1427a4e36ba19a863c28934f53f247b945bb32a1367aeaf1b8669018978bd19d53c28a00f711158c6be014779c47c48f263b2e8c SHA512 1afa71336da38efb32f79d87b442a1d50537a6908ec153be7a087027a8540cebabab12922557c92e501f2d6da5c2f35466d3bbe6a3de44540de7278069691290 diff --git a/dev-python/pycryptodome/files/pycryptodome-3.19.0-fix-verbosity-in-tests.patch b/dev-python/pycryptodome/files/pycryptodome-3.19.0-fix-verbosity-in-tests.patch new file mode 100644 index 000000000000..7d54e5e4c2a7 --- /dev/null +++ b/dev-python/pycryptodome/files/pycryptodome-3.19.0-fix-verbosity-in-tests.patch @@ -0,0 +1,120 @@ +https://github.com/Legrandin/pycryptodome/issues/765 +https://github.com/Legrandin/pycryptodome/commit/87ff66373a5b80cddc9b0dd76e9bb8c15f6a8e50 + +From 87ff66373a5b80cddc9b0dd76e9bb8c15f6a8e50 Mon Sep 17 00:00:00 2001 +From: Helder Eijs <helderijs@gmail.com> +Date: Sun, 17 Sep 2023 23:32:02 +0200 +Subject: [PATCH] Fix verbosity problem in tests + +--- a/lib/Crypto/SelfTest/Protocol/test_ecdh.py ++++ b/lib/Crypto/SelfTest/Protocol/test_ecdh.py +@@ -72,6 +72,8 @@ def ecdh_test_rev(self, + + class TestVectorsECDHWycheproof(unittest.TestCase): + ++ desc = "Wycheproof ECDH tests" ++ + def add_tests(self, filename): + + def curve(g): +@@ -107,7 +109,6 @@ def shortDescription(self): + return self.desc + + def test_verify(self, tv): +- self._id = "Wycheproof ECDH Verify Test #%d (%s, %s)" % (tv.id, tv.comment, tv.filename) + + if len(tv.public) == 0: + return +@@ -138,7 +139,7 @@ def test_verify(self, tv): + + def runTest(self): + for tv in self.tv: +- self.desc = "Test #%d (%s) - %s" % (tv.id, tv.filename, tv.comment) ++ self.desc = "Wycheproof ECDH Verify Test #%d (%s, %s)" % (tv.id, tv.comment, tv.filename) + self.test_verify(tv) + + +--- a/lib/Crypto/SelfTest/__init__.py ++++ b/lib/Crypto/SelfTest/__init__.py +@@ -28,18 +28,19 @@ + application runs. + """ + +-__revision__ = "$Id$" +- + import sys + import unittest ++from importlib import import_module + from Crypto.Util.py3compat import StringIO + ++ + class SelfTestError(Exception): + def __init__(self, message, result): + Exception.__init__(self, message, result) + self.message = message + self.result = result + ++ + def run(module=None, verbosity=0, stream=None, tests=None, config=None, **kwargs): + """Execute self-tests. + +@@ -77,21 +78,25 @@ def run(module=None, verbosity=0, stream=None, tests=None, config=None, **kwargs + raise SelfTestError("Self-test failed", result) + return result + ++ + def get_tests(config={}): + tests = [] +- from Crypto.SelfTest import Cipher; tests += Cipher.get_tests(config=config) +- from Crypto.SelfTest import Hash; tests += Hash.get_tests(config=config) +- from Crypto.SelfTest import Protocol; tests += Protocol.get_tests(config=config) +- from Crypto.SelfTest import PublicKey; tests += PublicKey.get_tests(config=config) +- from Crypto.SelfTest import Random; tests += Random.get_tests(config=config) +- from Crypto.SelfTest import Util; tests += Util.get_tests(config=config) +- from Crypto.SelfTest import Signature; tests += Signature.get_tests(config=config) +- from Crypto.SelfTest import IO; tests += IO.get_tests(config=config) +- from Crypto.SelfTest import Math; tests += Math.get_tests(config=config) ++ ++ module_names = [ ++ "Cipher", "Hash", "Protocol", "PublicKey", "Random", ++ "Util", "Signature", "IO", "Math", ++ ] ++ ++ for name in module_names: ++ module = import_module("Crypto.SelfTest." + name) ++ tests += module.get_tests(config=config) ++ + return tests + ++ + if __name__ == '__main__': +- suite = lambda: unittest.TestSuite(get_tests()) ++ def suite(): ++ return unittest.TestSuite(get_tests()) + unittest.main(defaultTest='suite') + + # vim:set ts=4 sw=4 sts=4 expandtab: +--- a/lib/Crypto/SelfTest/__main__.py ++++ b/lib/Crypto/SelfTest/__main__.py +@@ -26,7 +26,7 @@ + + from Crypto import SelfTest + +-slow_tests = not "--skip-slow-tests" in sys.argv ++slow_tests = not ("--skip-slow-tests" in sys.argv) + if not slow_tests: + print("Skipping slow tests") + +@@ -34,5 +34,10 @@ + if wycheproof_warnings: + print("Printing Wycheproof warnings") + +-config = {'slow_tests' : slow_tests, 'wycheproof_warnings' : wycheproof_warnings } +-SelfTest.run(stream=sys.stdout, verbosity=1, config=config) ++if "-v" in sys.argv: ++ verbosity=2 ++else: ++ verbosity=1 ++ ++config = {'slow_tests': slow_tests, 'wycheproof_warnings': wycheproof_warnings} ++SelfTest.run(stream=sys.stdout, verbosity=verbosity, config=config) diff --git a/dev-python/pycryptodome/pycryptodome-3.19.0.ebuild b/dev-python/pycryptodome/pycryptodome-3.19.0.ebuild new file mode 100644 index 000000000000..f7c07f2ea6a3 --- /dev/null +++ b/dev-python/pycryptodome/pycryptodome-3.19.0.ebuild @@ -0,0 +1,61 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{10..12} pypy3 ) +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 + +DESCRIPTION="A self-contained cryptographic library for Python" +HOMEPAGE=" + https://www.pycryptodome.org/ + https://github.com/Legrandin/pycryptodome/ + https://pypi.org/project/pycryptodome/ +" +SRC_URI=" + https://github.com/Legrandin/pycryptodome/archive/v${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="BSD-2 Unlicense" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + +DEPEND=" + dev-libs/gmp:= + >=dev-libs/libtomcrypt-1.18.2-r1:= +" +BDEPEND=" + $(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*') +" +RDEPEND=" + ${DEPEND} + ${BDEPEND} +" + +PATCHES=( + "${FILESDIR}/pycryptodome-3.10.1-system-libtomcrypt.patch" + "${FILESDIR}/pycryptodome-3.19.0-fix-verbosity-in-tests.patch" +) + +python_prepare_all() { + # make sure we're unbundling it correctly + rm -r src/libtom || die + + distutils-r1_python_prepare_all +} + +python_test() { + local -x PYTHONPATH=${S}/test_vectors:${PYTHONPATH} + "${EPYTHON}" - <<-EOF || die + import sys + from Crypto import SelfTest + SelfTest.run(verbosity=2, stream=sys.stdout) + EOF + + # TODO: run cmake tests from src/test? +} |