summaryrefslogtreecommitdiff
path: root/dev-python/pycryptodome
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/pycryptodome')
-rw-r--r--dev-python/pycryptodome/Manifest1
-rw-r--r--dev-python/pycryptodome/pycryptodome-4.1.0.ebuild86
2 files changed, 87 insertions, 0 deletions
diff --git a/dev-python/pycryptodome/Manifest b/dev-python/pycryptodome/Manifest
index 70cf2236f500..493b515ac5cb 100644
--- a/dev-python/pycryptodome/Manifest
+++ b/dev-python/pycryptodome/Manifest
@@ -1,3 +1,4 @@
DIST pycryptodome-3.24.1.gh.tar.gz 19739898 BLAKE2B 7db01c5bd78f14d61620272d6a15105e3c640b933263a4720d5d047c55a0bd57e984fc150f96469aa29b7947b0fb62dbbe3e199587d146b08f30af28d781600b SHA512 90df69c1f003d9a06391709e09d1cb3124053c4eb4a062cba01e6048c1fc07ba29db36b94dbafc6e5f7f6f173321b8e687358d8a3cca88921234e74f46c17c37
DIST pycryptodome-4.0.0.gh.tar.gz 16296945 BLAKE2B e6380f4638013d528aeb45d9db1e5c6509de0301bb7bdde07dfb363d0bc833dea72edcb43cc0a1c4ce2b39ef6edf67287494c90d7f68fb0d6697ce1f77f7c3fa SHA512 536522d15b29646cdfbeae1d3d4d23261fe112392858809df117b71f3293af4b7705f9a8421a4ddd7dbf5a5df117852ce4bc506dbe30b241de0ded36c7ce6033
DIST pycryptodome-4.0.1.gh.tar.gz 16299237 BLAKE2B 74e0e2acca917f66c949a9da0e01e2bf0d22b67587354276aebe379e001acdd9a75c7b8d504e8d6b9c2baaaac9b8c13194a56d60d5658782e4072c783ac6da88 SHA512 ece24a54049190ac6131c4712f48f49290d910524bfe7ff5d1bd675ccf28bc6eb17ca7e642eabd9bfa1fd664a25bbc75e6f9fef92c7231a175ac8409082b8fdd
+DIST pycryptodome-4.1.0.gh.tar.gz 26032340 BLAKE2B 0ac96edd8df4b4b0055a1f736faab428dcaf10428e21a21e844e479355a850e7510ac4ee8b15d3a43796b6752cc764683dabb1524890726da235926143b8a4af SHA512 898c721a1e5361e2e0945f993101a3096b2e935615773d1eb68f0148468cd7da34c2ea5cbe63c1ca024ee2454c8f7c648f6727e45e5f115987c10b17aee7e6c3
diff --git a/dev-python/pycryptodome/pycryptodome-4.1.0.ebuild b/dev-python/pycryptodome/pycryptodome-4.1.0.ebuild
new file mode 100644
index 000000000000..2b4914b240d2
--- /dev/null
+++ b/dev-python/pycryptodome/pycryptodome-4.1.0.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2026 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_{13..14} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit cmake distutils-r1 toolchain-funcs
+
+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 MIT Unlicense"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+
+DEPEND="
+ dev-libs/gmp:=
+"
+BDEPEND="
+ dev-python/cffi[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ ${DEPEND}
+ ${BDEPEND}
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+CMAKE_USE_DIR=${S}/src/test
+
+src_prepare() {
+ cmake_src_prepare
+ distutils-r1_src_prepare
+
+ # force sanitizer detection to fail, they break tests x_x
+ sed -i -e 's:-fsanitize=[a-z]*::g' src/test/CMakeLists.txt || die
+}
+
+check_x86_opt() {
+ local macro=${1}
+
+ if { use amd64 || use x86; } &&
+ tc-cpp-is-true "defined(${macro})" ${CFLAGS} ${CPPFLAGS}
+ then
+ echo ON
+ else
+ echo OFF
+ fi
+}
+
+src_test() {
+ local mycmakeargs=(
+ # TODO: grab these off CFLAGS, they enable extra tests
+ -DAESNI="$(check_x86_opt __AES__)"
+ -DSSE="$(check_x86_opt __SSSE3__)"
+
+ -DVALGRIND=VALGRIND_NOT_FOUND
+ )
+
+ cmake_src_configure
+ cmake_src_compile
+ cmake_src_test
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ local -x PYTHONPATH=${S}/test_vectors:${PYTHONPATH}
+ epytest --pyargs Crypto
+
+ # TODO: run cmake tests from src/test?
+}