ASR_BASE
Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/external/subpack/lang/python/python-cryptography/Makefile b/external/subpack/lang/python/python-cryptography/Makefile
new file mode 100644
index 0000000..c8b1950
--- /dev/null
+++ b/external/subpack/lang/python/python-cryptography/Makefile
@@ -0,0 +1,52 @@
+#
+# Copyright (C) 2015-2016, 2018-2023 Jeffery To
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=python-cryptography
+PKG_VERSION:=41.0.7
+PKG_RELEASE:=1
+
+PYPI_NAME:=cryptography
+PKG_HASH:=13f93ce9bea8016c253b34afc6bd6a75993e5c40672ed5405a9c832f0d4a00bc
+
+PKG_LICENSE:=Apache-2.0 BSD-3-Clause
+PKG_LICENSE_FILES:=LICENSE.APACHE LICENSE.BSD
+PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
+PKG_CPE_ID:=cpe:/a:cryptography_project:cryptography
+
+PKG_BUILD_DEPENDS:=libffi/host python-cffi/host python-setuptools-rust/host
+
+include ../pypi.mk
+include $(INCLUDE_DIR)/package.mk
+include ../python3-package.mk
+
+define Package/python3-cryptography
+ SECTION:=lang
+ CATEGORY:=Languages
+ SUBMENU:=Python
+ TITLE:=Cryptographic recipes and primitives
+ URL:=https://github.com/pyca/cryptography
+ DEPENDS:= \
+ +libopenssl \
+ +libopenssl-legacy \
+ +python3-light \
+ +python3-email \
+ +python3-urllib \
+ +python3-cffi \
+ $(RUST_ARCH_DEPENDS)
+endef
+
+define Package/python3-cryptography/description
+cryptography is a package which provides cryptographic recipes and
+primitives to Python developers. Our goal is for it to be your
+"cryptographic standard library".
+endef
+
+$(eval $(call Py3Package,python3-cryptography))
+$(eval $(call BuildPackage,python3-cryptography))
+$(eval $(call BuildPackage,python3-cryptography-src))
diff --git a/external/subpack/lang/python/python-cryptography/patches/001-Update-ouroboros.patch b/external/subpack/lang/python/python-cryptography/patches/001-Update-ouroboros.patch
new file mode 100644
index 0000000..93abe3a
--- /dev/null
+++ b/external/subpack/lang/python/python-cryptography/patches/001-Update-ouroboros.patch
@@ -0,0 +1,13 @@
+Fixes https://rustsec.org/advisories/RUSTSEC-2023-0042.html
+
+--- a/src/rust/Cargo.toml
++++ b/src/rust/Cargo.toml
+@@ -15,7 +15,7 @@ cryptography-cffi = { path = "cryptograp
+ cryptography-x509 = { path = "cryptography-x509" }
+ cryptography-openssl = { path = "cryptography-openssl" }
+ pem = "1.1"
+-ouroboros = "0.15"
++ouroboros = "0.18"
+ openssl = "0.10.54"
+ openssl-sys = "0.9.88"
+ foreign-types-shared = "0.1"
diff --git a/external/subpack/lang/python/python-cryptography/test.sh b/external/subpack/lang/python/python-cryptography/test.sh
new file mode 100644
index 0000000..308f545
--- /dev/null
+++ b/external/subpack/lang/python/python-cryptography/test.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+[ "$1" = python3-cryptography ] || exit 0
+
+python3 - << 'EOF'
+
+from cryptography.fernet import Fernet
+key = Fernet.generate_key()
+f = Fernet(key)
+msg = b"my deep dark secret"
+token = f.encrypt(msg)
+assert f.decrypt(token) == msg
+
+EOF