diff --git a/dev-python/pyhanko-certvalidator/Manifest b/dev-python/pyhanko-certvalidator/Manifest
new file mode 100644
index 000000000..3b90bd418
--- /dev/null
+++ b/dev-python/pyhanko-certvalidator/Manifest
@@ -0,0 +1 @@
+DIST pyhanko_certvalidator-0.29.0.tar.gz 93212 BLAKE2B 82dc403c5cf484c0eacb4711f2991bce7d1da9dae218845924118ff85948a615e5b0b50f2ea9787d07932c2ec282b3a3103939bc5478f1d35c9c21abc0d6ac5b SHA512 b36a801317b8086d0f3338f1d0ca67a6a67118f2b34551a9a371c40e0f22954e09bcb39822c6c258b86ec97bedc825c17609f3f7b2028c76d179b611dfd4e1d0
diff --git a/dev-python/pyhanko-certvalidator/metadata.xml b/dev-python/pyhanko-certvalidator/metadata.xml
new file mode 100644
index 000000000..a528b01d0
--- /dev/null
+++ b/dev-python/pyhanko-certvalidator/metadata.xml
@@ -0,0 +1,11 @@
+
+
+
+
+ unknown@pentoo.ch
+ Author Unknown
+
+
+ pyhanko-certvalidator
+
+
diff --git a/dev-python/pyhanko-certvalidator/pyhanko-certvalidator-0.29.0.ebuild b/dev-python/pyhanko-certvalidator/pyhanko-certvalidator-0.29.0.ebuild
new file mode 100644
index 000000000..4cf3be84d
--- /dev/null
+++ b/dev-python/pyhanko-certvalidator/pyhanko-certvalidator-0.29.0.ebuild
@@ -0,0 +1,27 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{12..14} )
+
+inherit pypi distutils-r1
+
+DESCRIPTION="Python library for validating X.509 certificates and paths"
+HOMEPAGE="https://pypi.org/project/pyhanko-certvalidator/"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~arm64 ~x86"
+
+#optional: async-http = ["aiohttp>=3.9,<3.13"]
+RDEPEND="
+ >=dev-python/asn1crypto-1.5.1[${PYTHON_USEDEP}]
+ >=dev-python/oscrypto-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-41.0.5[${PYTHON_USEDEP}]
+ >=dev-python/uritools-3.0.1[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.31.0[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
diff --git a/dev-python/pyhanko/Manifest b/dev-python/pyhanko/Manifest
new file mode 100644
index 000000000..e2b60e7ae
--- /dev/null
+++ b/dev-python/pyhanko/Manifest
@@ -0,0 +1 @@
+DIST pyhanko-0.31.0.tar.gz 407171 BLAKE2B 91aa4223fa4d29e62b93aa7853136a6311d448b20128f091ebefdc1185bfe22437961a57f65f936d03e7de4a28e17984d65166afafddc39a704966d3e32e24b3 SHA512 bf9944a966bbde86c297683f960c13fe64effd3feae1760c9eb4913b99ae7623bb8c58b8618db4b35f73a248057f5388db47543b5419b2d0cad8c5890cdac501
diff --git a/dev-python/pyhanko/metadata.xml b/dev-python/pyhanko/metadata.xml
new file mode 100644
index 000000000..d1f6ba305
--- /dev/null
+++ b/dev-python/pyhanko/metadata.xml
@@ -0,0 +1,12 @@
+
+
+
+
+ unknown@pentoo.ch
+ Author Unknown
+
+
+ MatthiasValvekens/pyhanko
+ pyhanko
+
+
diff --git a/dev-python/pyhanko/pyhanko-0.31.0.ebuild b/dev-python/pyhanko/pyhanko-0.31.0.ebuild
new file mode 100644
index 000000000..fed9000a3
--- /dev/null
+++ b/dev-python/pyhanko/pyhanko-0.31.0.ebuild
@@ -0,0 +1,52 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{12..14} )
+DISTUTILS_USE_PEP517=setuptools
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Tools for stamping and signing PDF files"
+HOMEPAGE="https://github.com/MatthiasValvekens/pyhanko"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~arm64 ~x86"
+
+#IUSE="opentype qr image-support pkcs11 async-http etsi"
+
+RDEPEND="
+ >=dev-python/asn1crypto-1.5.1[${PYTHON_USEDEP}]
+ >=dev-python/tzlocal-4.3[${PYTHON_USEDEP}]
+ >=dev-python/pyhanko-certvalidator-0.29.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.31.0[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-6.0[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-43.0.3[${PYTHON_USEDEP}]
+ >=dev-python/lxml-5.4.0[${PYTHON_USEDEP}]
+"
+# opentype? (
+# dev-python/fonttools[${PYTHON_USEDEP}]
+# )
+# qr? (
+# dev-python/pypng[${PYTHON_USEDEP}]
+# dev-python/qrcodegen[${PYTHON_USEDEP}]
+# )
+# image-support? (
+# dev-python/pillow[${PYTHON_USEDEP}]
+# dev-python/miniapp[${PYTHON_USEDEP}]
+# dev-python/qrcode[${PYTHON_USEDEP}]
+# )
+# pkcs11? (
+# dev-python/cryptoki[${PYTHON_USEDEP}]
+# )
+# async-http? (
+# dev-python/httpx[${PYTHON_USEDEP}]
+# )
+# etsi? (
+# dev-python/python-iso7816[${PYTHON_USEDEP}]
+# )
+
+DEPEND="${RDEPEND}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"