-
Notifications
You must be signed in to change notification settings - Fork 30
Open
Description
#!/usr/bin/python3
import requests
import wolfssl
from collections import OrderedDict
from requests.adapters import HTTPAdapter
class CipherSuiteAdapter(HTTPAdapter):
def __init__(self, **kwargs):
wolfssl.WolfSSL.enable_debug()
self.ssl_context = wolfssl.SSLContext(wolfssl.PROTOCOL_TLSv1_2)
self.ssl_context.verify_mode = wolfssl.CERT_NONE
self.ssl_context.set_ciphers('ECDHE-RSA-AES128-GCM-SHA256')
super(CipherSuiteAdapter, self).__init__(**kwargs)
# ------------------------------------------------------------------------------- #
def init_poolmanager(self, *args, **kwargs):
kwargs['ssl_context'] = self.ssl_context
return super(CipherSuiteAdapter, self).init_poolmanager(*args, **kwargs)
# ------------------------------------------------------------------------------- #
def proxy_manager_for(self, *args, **kwargs):
kwargs['ssl_context'] = self.ssl_context
return super(CipherSuiteAdapter, self).proxy_manager_for(*args, **kwargs)
# ------------------------------------------------------------------------------- #
session = requests.session()
session.mount('https://', CipherSuiteAdapter())
session.headers = OrderedDict([
("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0"),
("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"),
("Accept-Language", "en-US,en;q=0.5"),
("Accept-Encoding", "gzip, deflate")
])
print(session.get('https://somewebsite/', verify=False).status_code)The following results in..
Traceback (most recent call last):
File "./wolf.py", line 54, in <module>
print(session.get('https://somewebsite', verify=False).status_code)
File "/usr/local/lib/python3.7/dist-packages/requests/sessions.py", line 546, in get
return self.request('GET', url, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/requests/sessions.py", line 533, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python3.7/dist-packages/requests/sessions.py", line 646, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/requests/adapters.py", line 449, in send
timeout=timeout
File "/usr/local/lib/python3.7/dist-packages/urllib3/connectionpool.py", line 603, in urlopen
chunked=chunked)
File "/usr/local/lib/python3.7/dist-packages/urllib3/connectionpool.py", line 344, in _make_request
self._validate_conn(conn)
File "/usr/local/lib/python3.7/dist-packages/urllib3/connectionpool.py", line 843, in _validate_conn
conn.connect()
File "/usr/local/lib/python3.7/dist-packages/urllib3/connection.py", line 370, in connect
ssl_context=context)
File "/usr/local/lib/python3.7/dist-packages/urllib3/util/ssl_.py", line 355, in ssl_wrap_socket
return context.wrap_socket(sock, server_hostname=server_hostname)
File "/usr/local/lib/python3.7/dist-packages/wolfssl/__init__.py", line 243, in wrap_socket
_context=self, server_hostname=server_hostname)
File "/usr/local/lib/python3.7/dist-packages/wolfssl/__init__.py", line 396, in __init__
self._context.use_sni(server_hostname)
File "/usr/local/lib/python3.7/dist-packages/wolfssl/__init__.py", line 263, in use_sni
server_hostname, len(server_hostname))
TypeError: initializer for ctype 'void *' must be a cdata pointer, not str
Metadata
Metadata
Assignees
Labels
No labels