Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 

19 linhas
376 B

  1. import itertools
  2. __all__ = ["apply_mask"]
  3. def apply_mask(data: bytes, mask: bytes) -> bytes:
  4. """
  5. Apply masking to the data of a WebSocket message.
  6. :param data: Data to mask
  7. :param mask: 4-bytes mask
  8. """
  9. if len(mask) != 4:
  10. raise ValueError("mask must contain 4 bytes")
  11. return bytes(b ^ m for b, m in zip(data, itertools.cycle(mask)))