"""Use only release OpenSSL binaries for an anonymous HTTPS connectivity probe.""" import ctypes import os import sys from pathlib import Path bundle = Path(__file__).resolve().parents[1] / "dist/ZhenAI-WeCom-Assistant-v1.4.4/_internal" if "_ssl" in sys.modules: raise RuntimeError("Run with -S before SSL is imported") handle = os.add_dll_directory(str(bundle)) sys.path.insert(0, str(bundle)) import ssl import _ssl import urllib.request import urllib.error if Path(_ssl.__file__).resolve().parent != bundle.resolve(): raise RuntimeError("SSL extension did not load from the release bundle") api = ctypes.WinDLL("kernel32", use_last_error=True) api.GetModuleHandleW.argtypes = [ctypes.c_wchar_p] api.GetModuleHandleW.restype = ctypes.c_void_p api.GetModuleFileNameW.argtypes = [ctypes.c_void_p, ctypes.c_wchar_p, ctypes.c_uint] api.GetModuleFileNameW.restype = ctypes.c_uint for name in ("libssl-3-x64.dll", "libcrypto-3-x64.dll"): module = api.GetModuleHandleW(name) filename = ctypes.create_unicode_buffer(32768) if not module or not api.GetModuleFileNameW(module, filename, len(filename)): raise RuntimeError("Required OpenSSL library did not load") if Path(filename.value).resolve().parent != bundle.resolve(): raise RuntimeError("OpenSSL library was loaded from outside release bundle") print("Release SSL extension and OpenSSL libraries loaded from bundle", flush=True) request = urllib.request.Request("https://admin.zhenyangtang.com.cn/", method="HEAD") try: with urllib.request.urlopen(request, timeout=15) as response: print("Anonymous identity-service HTTPS request returned HTTP", response.status, flush=True) except urllib.error.HTTPError as exc: print("Anonymous identity-service HTTPS request returned HTTP", exc.code, flush=True)