Fix OpenSSL dll/so location find patcher

This commit is contained in:
Tamas Kocsis 2020-11-03 02:51:42 +01:00
parent 5cac059ef4
commit c515e26cd6
2 changed files with 19 additions and 5 deletions

View File

@ -7,6 +7,8 @@ import hashlib
from util.Electrum import dbl_format from util.Electrum import dbl_format
from Config import config from Config import config
import util.OpensslFindPatch
lib_verify_best = "sslcrypto" lib_verify_best = "sslcrypto"
from lib import sslcrypto from lib import sslcrypto

View File

@ -1,11 +1,12 @@
import logging import logging
import os import os
import sys import sys
from ctypes.util import find_library import ctypes.util
from lib.sslcrypto.openssl import discovery
from Config import config from Config import config
find_library_original = ctypes.util.find_library
def getOpensslPath(): def getOpensslPath():
if config.openssl_lib_file: if config.openssl_lib_file:
@ -47,11 +48,22 @@ def getOpensslPath():
logging.debug("OpenSSL lib not found in: %s (%s)" % (path, err)) logging.debug("OpenSSL lib not found in: %s (%s)" % (path, err))
lib_path = ( lib_path = (
find_library('ssl.so') or find_library('ssl') or ctypes.util.find_library('ssl.so') or ctypes.util.find_library('ssl') or
find_library('crypto') or find_library('libcrypto') or 'libeay32' ctypes.util.find_library('crypto') or ctypes.util.find_library('libcrypto') or 'libeay32'
) )
return lib_path return lib_path
discovery.discover = getOpensslPath def patchCtypesOpensslFindLibrary():
def findLibraryPatched(name):
if name in ("ssl", "crypto", "libeay32"):
lib_path = getOpensslPath()
return lib_path
else:
return find_library_original(name)
ctypes.util.find_library = findLibraryPatched
patchCtypesOpensslFindLibrary()