diff options
author | cyfraeviolae <cyfraeviolae> | 2024-04-03 03:17:55 -0400 |
---|---|---|
committer | cyfraeviolae <cyfraeviolae> | 2024-04-03 03:17:55 -0400 |
commit | 12cf076118570eebbff08c6b3090e0d4798447a1 (patch) | |
tree | 3ba25e17e3c3a5e82316558ba3864b955919ff72 /venv/lib/python3.11/site-packages/websockets/utils.py | |
parent | c45662ff3923b34614ddcc8feb9195541166dcc5 (diff) |
no venv
Diffstat (limited to 'venv/lib/python3.11/site-packages/websockets/utils.py')
-rw-r--r-- | venv/lib/python3.11/site-packages/websockets/utils.py | 51 |
1 files changed, 0 insertions, 51 deletions
diff --git a/venv/lib/python3.11/site-packages/websockets/utils.py b/venv/lib/python3.11/site-packages/websockets/utils.py deleted file mode 100644 index c404049..0000000 --- a/venv/lib/python3.11/site-packages/websockets/utils.py +++ /dev/null @@ -1,51 +0,0 @@ -from __future__ import annotations - -import base64 -import hashlib -import secrets -import sys - - -__all__ = ["accept_key", "apply_mask"] - - -GUID = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11" - - -def generate_key() -> str: - """ - Generate a random key for the Sec-WebSocket-Key header. - - """ - key = secrets.token_bytes(16) - return base64.b64encode(key).decode() - - -def accept_key(key: str) -> str: - """ - Compute the value of the Sec-WebSocket-Accept header. - - Args: - key: value of the Sec-WebSocket-Key header. - - """ - sha1 = hashlib.sha1((key + GUID).encode()).digest() - return base64.b64encode(sha1).decode() - - -def apply_mask(data: bytes, mask: bytes) -> bytes: - """ - Apply masking to the data of a WebSocket message. - - Args: - data: data to mask. - mask: 4-bytes mask. - - """ - if len(mask) != 4: - raise ValueError("mask must contain 4 bytes") - - data_int = int.from_bytes(data, sys.byteorder) - mask_repeated = mask * (len(data) // 4) + mask[: len(data) % 4] - mask_int = int.from_bytes(mask_repeated, sys.byteorder) - return (data_int ^ mask_int).to_bytes(len(data), sys.byteorder) |