Skip to content

Commit ff3ef23

Browse files
committed
Certificate pinning
1 parent 190698d commit ff3ef23

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

tls_client/sessions.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ def __init__(
3636
random_tls_extension_order: Optional = False,
3737
force_http1: Optional = False,
3838
catch_panics: Optional = False,
39-
debug: Optional = False
39+
debug: Optional = False,
40+
certificate_pinning: Optional[Dict[str, List[str]]] = None,
4041
) -> None:
4142
self._session_id = str(uuid.uuid4())
4243
# --- Standard Settings ----------------------------------------------------------------------------------------
@@ -68,6 +69,9 @@ def __init__(
6869
# Timeout
6970
self.timeout_seconds = 30
7071

72+
# Certificate pinning
73+
self.certificate_pinning = certificate_pinning
74+
7175
# --- Advanced Settings ----------------------------------------------------------------------------------------
7276

7377
# Examples:
@@ -375,6 +379,11 @@ def execute_request(
375379
# maximum time to wait for a response
376380

377381
timeout_seconds = timeout_seconds or self.timeout_seconds
382+
383+
# --- Certificate pinning --------------------------------------------------------------------------------------
384+
# pins a certificate so that it restricts which certificates are considered valid
385+
386+
certificate_pinning = self.certificate_pinning
378387

379388
# --- Request --------------------------------------------------------------------------------------------------
380389
is_byte_request = isinstance(request_body, (bytes, bytearray))
@@ -396,6 +405,8 @@ def execute_request(
396405
"requestCookies": request_cookies,
397406
"timeoutSeconds": timeout_seconds,
398407
}
408+
if certificate_pinning:
409+
request_payload["certificatePinningHosts"] = certificate_pinning
399410
if self.client_identifier is None:
400411
request_payload["customTlsClient"] = {
401412
"ja3String": self.ja3_string,

0 commit comments

Comments
 (0)