From 55987225bdab700b6a83f730421aa160d45fdbb3 Mon Sep 17 00:00:00 2001 From: Adriano Caloiaro Date: Sat, 1 Jan 2022 17:41:38 -0800 Subject: [PATCH] Add a fallback method for finding libcrypto DLL paths --- DeDRM_plugin/adobekey.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/DeDRM_plugin/adobekey.py b/DeDRM_plugin/adobekey.py index 9871eda..4449e68 100644 --- a/DeDRM_plugin/adobekey.py +++ b/DeDRM_plugin/adobekey.py @@ -124,17 +124,28 @@ if iswindows: except ImportError: import _winreg as winreg + def _licrypto_dll_path(): + import sys + for p in sys.path: + if p.endswith("DLLs"): + return os.path.join(p, "libcrypto-1_1.dll") + + return + def _load_crypto_libcrypto(): from ctypes.util import find_library libcrypto = find_library('libcrypto-1_1') if libcrypto is None: libcrypto = find_library('libeay32') + if libcrypto is None: + libcrypto = _licrypto_dll_path() if libcrypto is None: raise ADEPTError('libcrypto not found') libcrypto = CDLL(libcrypto) AES_MAXNR = 14 c_char_pp = POINTER(c_char_p) c_int_p = POINTER(c_int) + class AES_KEY(Structure): _fields_ = [('rd_key', c_long * (4 * (AES_MAXNR + 1))), ('rounds', c_int)]