Jean-Paul Calderone | 8671c85 | 2011-03-02 19:26:20 -0500 | [diff] [blame^] | 1 | # Copyright (C) AB Strakt |
| 2 | # See LICENSE for details. |
| 3 | |
Jean-Paul Calderone | 897bc25 | 2008-02-18 20:50:23 -0500 | [diff] [blame] | 4 | """ |
| 5 | pyOpenSSL - A simple wrapper around the OpenSSL library |
| 6 | """ |
Jean-Paul Calderone | 297294e | 2010-08-11 22:41:49 -0400 | [diff] [blame] | 7 | |
| 8 | import sys |
Jean-Paul Calderone | 08e72bc | 2010-10-12 21:14:51 -0400 | [diff] [blame] | 9 | |
Jean-Paul Calderone | b859778 | 2010-09-19 10:12:50 -0400 | [diff] [blame] | 10 | try: |
| 11 | orig = sys.getdlopenflags() |
| 12 | except AttributeError: |
Jean-Paul Calderone | 08e72bc | 2010-10-12 21:14:51 -0400 | [diff] [blame] | 13 | from OpenSSL import crypto |
Jean-Paul Calderone | b859778 | 2010-09-19 10:12:50 -0400 | [diff] [blame] | 14 | else: |
Jean-Paul Calderone | 08e72bc | 2010-10-12 21:14:51 -0400 | [diff] [blame] | 15 | try: |
| 16 | import DLFCN |
| 17 | except ImportError: |
| 18 | try: |
| 19 | import dl |
| 20 | except ImportError: |
| 21 | try: |
| 22 | import ctypes |
| 23 | except ImportError: |
| 24 | flags = 2 | 256 |
| 25 | else: |
| 26 | flags = 2 | ctypes.RTLD_GLOBAL |
| 27 | del ctypes |
| 28 | else: |
| 29 | flags = dl.RTLD_NOW | dl.RTLD_GLOBAL |
| 30 | del dl |
| 31 | else: |
| 32 | flags = DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL |
| 33 | del DLFCN |
| 34 | |
| 35 | sys.setdlopenflags(flags) |
Jean-Paul Calderone | b859778 | 2010-09-19 10:12:50 -0400 | [diff] [blame] | 36 | from OpenSSL import crypto |
| 37 | sys.setdlopenflags(orig) |
Jean-Paul Calderone | 08e72bc | 2010-10-12 21:14:51 -0400 | [diff] [blame] | 38 | del orig, flags |
Jean-Paul Calderone | 02ea268 | 2010-09-19 10:15:08 -0400 | [diff] [blame] | 39 | del sys |
Jean-Paul Calderone | 297294e | 2010-08-11 22:41:49 -0400 | [diff] [blame] | 40 | |
Jean-Paul Calderone | 08e72bc | 2010-10-12 21:14:51 -0400 | [diff] [blame] | 41 | from OpenSSL import rand, SSL |
Jean-Paul Calderone | 297294e | 2010-08-11 22:41:49 -0400 | [diff] [blame] | 42 | from OpenSSL.version import __version__ |
| 43 | |
| 44 | __all__ = [ |
| 45 | 'rand', 'crypto', 'SSL', 'tsafe', '__version__'] |