~myers-1/pyopenssl/npn

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# Copyright (C) AB Strakt
# See LICENSE for details.

"""
pyOpenSSL - A simple wrapper around the OpenSSL library
"""

import sys

try:
    orig = sys.getdlopenflags()
except AttributeError:
    from OpenSSL import crypto
else:
    try:
        import DLFCN
    except ImportError:
        try:
            import dl
        except ImportError:
            try:
                import ctypes
            except ImportError:
                flags = 2 | 256
            else:
                flags = 2 | ctypes.RTLD_GLOBAL
                del ctypes
        else:
            flags = dl.RTLD_NOW | dl.RTLD_GLOBAL
            del dl
    else:
        flags = DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL
        del DLFCN

    sys.setdlopenflags(flags)
    from OpenSSL import crypto
    sys.setdlopenflags(orig)
    del orig, flags
del sys

from OpenSSL import rand, SSL
from OpenSSL.version import __version__

__all__ = [
    'rand', 'crypto', 'SSL', 'tsafe', '__version__']