|
25 | 25 | from mocket.compat import decode_from_bytes, encode_to_bytes
|
26 | 26 | from mocket.io import MocketSocketCore
|
27 | 27 | from mocket.mode import MocketMode
|
| 28 | +from mocket.ssl import FakeSSLContext |
28 | 29 | from mocket.utils import hexdump, hexload
|
29 | 30 |
|
30 | 31 | xxh32 = None
|
|
59 | 60 | true_urllib3_match_hostname = urllib3_match_hostname
|
60 | 61 |
|
61 | 62 |
|
62 |
| -class SuperFakeSSLContext: |
63 |
| - """For Python 3.6 and newer.""" |
64 |
| - |
65 |
| - class FakeSetter(int): |
66 |
| - def __set__(self, *args): |
67 |
| - pass |
68 |
| - |
69 |
| - minimum_version = FakeSetter() |
70 |
| - options = FakeSetter() |
71 |
| - verify_mode = FakeSetter() |
72 |
| - verify_flags = FakeSetter() |
73 |
| - |
74 |
| - |
75 |
| -class FakeSSLContext(SuperFakeSSLContext): |
76 |
| - DUMMY_METHODS = ( |
77 |
| - "load_default_certs", |
78 |
| - "load_verify_locations", |
79 |
| - "set_alpn_protocols", |
80 |
| - "set_ciphers", |
81 |
| - "set_default_verify_paths", |
82 |
| - ) |
83 |
| - sock = None |
84 |
| - post_handshake_auth = None |
85 |
| - _check_hostname = False |
86 |
| - |
87 |
| - @property |
88 |
| - def check_hostname(self): |
89 |
| - return self._check_hostname |
90 |
| - |
91 |
| - @check_hostname.setter |
92 |
| - def check_hostname(self, _): |
93 |
| - self._check_hostname = False |
94 |
| - |
95 |
| - def __init__(self, *args, **kwargs): |
96 |
| - self._set_dummy_methods() |
97 |
| - |
98 |
| - def _set_dummy_methods(self): |
99 |
| - def dummy_method(*args, **kwargs): |
100 |
| - pass |
101 |
| - |
102 |
| - for m in self.DUMMY_METHODS: |
103 |
| - setattr(self, m, dummy_method) |
104 |
| - |
105 |
| - @staticmethod |
106 |
| - def wrap_socket(sock, *args, **kwargs): |
107 |
| - sock.kwargs = kwargs |
108 |
| - sock._secure_socket = True |
109 |
| - return sock |
110 |
| - |
111 |
| - @staticmethod |
112 |
| - def wrap_bio(incoming, outcoming, *args, **kwargs): |
113 |
| - ssl_obj = MocketSocket() |
114 |
| - ssl_obj._host = kwargs["server_hostname"] |
115 |
| - return ssl_obj |
116 |
| - |
117 |
| - |
118 | 63 | def create_connection(address, timeout=None, source_address=None):
|
119 | 64 | s = socket.socket(socket.AF_INET, socket.SOCK_STREAM, socket.IPPROTO_TCP)
|
120 | 65 | if timeout:
|
|
0 commit comments