]> www.wagner.pp.ru Git - oss/ctypescrypto.git/blobdiff - ctypescrypto/__init__.py
Use find_library to search for openssl libs
[oss/ctypescrypto.git] / ctypescrypto / __init__.py
index ebf8c41a7750e6c9dd3a2bc31976c4df65270489..c55ae11842d566a6e66b3e772012db690602b9ba 100644 (file)
@@ -1,20 +1,30 @@
 """
-       Interface to some libcrypto functions
+    Interface to some libcrypto functions
 
 """
 
 
-from ctypes import CDLL,c_char_p
+from ctypes import CDLL, c_char_p
+from ctypes.util import find_library
+import sys
 
 def config(filename=None):
-       """
-               Loads OpenSSL Config file. If none are specified, loads default
-               (compiled in) one
-       """
-       libcrypto.OPENSSL_config(filename)
+    """
+        Loads OpenSSL Config file. If none are specified, loads default
+        (compiled in) one
+    """
+    libcrypto.OPENSSL_config(filename)
 
-__all__ = ['bio','cipher','cms','config','digest','ec','engine','exception','oid','pbkdf2','pkey','rand','x509']
+__all__ = ['config']
 
-libcrypto = CDLL("libcrypto.so.1.0.0")
-libcrypto.OPENSSL_config.argtypes=(c_char_p,)
+if sys.platform.startswith('win'):
+    __libname__ = find_library('libeay32')
+else:
+    __libname__ = find_library('crypto')
+
+if __libname__ is None:
+    raise OSError("Cannot find OpenSSL crypto library")
+
+libcrypto = CDLL(__libname__)
+libcrypto.OPENSSL_config.argtypes = (c_char_p, )
 libcrypto.OPENSSL_add_all_algorithms_conf()