diff --git a/shadowsocks/crypto/ctypes_libsodium.py b/shadowsocks/crypto/ctypes_libsodium.py index 69b9de9..e74d577 100644 --- a/shadowsocks/crypto/ctypes_libsodium.py +++ b/shadowsocks/crypto/ctypes_libsodium.py @@ -42,11 +42,16 @@ def load_libsodium(): global loaded, libsodium, buf from ctypes.util import find_library + libsodium_path = None for p in ('sodium', 'libsodium'): libsodium_path = find_library(p) if libsodium_path: break else: + import glob + for libsodium_path in glob.glob('/usr/lib/libsodium.*'): + pass + if libsodium_path is None: raise Exception('libsodium not found') logging.info('loading libsodium from %s', libsodium_path) libsodium = CDLL(libsodium_path) diff --git a/shadowsocks/crypto/ctypes_openssl.py b/shadowsocks/crypto/ctypes_openssl.py index 0ef8ce0..9e0dfca 100644 --- a/shadowsocks/crypto/ctypes_openssl.py +++ b/shadowsocks/crypto/ctypes_openssl.py @@ -39,11 +39,16 @@ def load_openssl(): global loaded, libcrypto, buf from ctypes.util import find_library + libcrypto_path = None for p in ('crypto', 'eay32', 'libeay32'): libcrypto_path = find_library(p) if libcrypto_path: break else: + import glob + for libcrypto_path in glob.glob('/usr/lib/libcrypto.*'): + pass + if libcrypto_path is None: raise Exception('libcrypto(OpenSSL) not found') logging.info('loading libcrypto from %s', libcrypto_path) libcrypto = CDLL(libcrypto_path)