From 9e175d44681d605ed0d0e8a10a1559a5a9e8f740 Mon Sep 17 00:00:00 2001 From: RiqueVaz Date: Mon, 28 Jul 2025 19:46:53 -0300 Subject: [PATCH] Fix Windows DLL lookup: search both oqs.dll and liboqs.dll (Issue #108) Signed-off-by: RiqueVaz --- oqs/oqs.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/oqs/oqs.py b/oqs/oqs.py index 54e36b1..b725afa 100644 --- a/oqs/oqs.py +++ b/oqs/oqs.py @@ -109,9 +109,11 @@ def _load_shared_obj( if platform.system() == "Darwin": paths.append(path.absolute() / Path(f"lib{name}").with_suffix(".dylib")) elif platform.system() == "Windows": - paths.append(path.absolute() / Path(name).with_suffix(".dll")) - # Does not work - # os.environ["PATH"] += os.path.abspath(path) + # Try both oqs.dll and liboqs.dll in the install path + for dll_name in (name, f"lib{name}"): + paths.append( + path.absolute() / Path(dll_name).with_suffix(".dll") + ) else: # Linux/FreeBSD/UNIX paths.append(path.absolute() / Path(f"lib{name}").with_suffix(".so")) # https://stackoverflow.com/questions/856116/changing-ld-library-path-at-runtime-for-ctypes @@ -281,7 +283,7 @@ def native() -> ct.CDLL: def oqs_version() -> str: - """`liboqs` version string.""" + """liboqs version string.""" native().OQS_version.restype = ct.c_char_p return ct.c_char_p(native().OQS_version()).value.decode("UTF-8") # type: ignore[union-attr]