_mode_ccm.pyi 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. from types import ModuleType
  2. from typing import Union, overload, Dict, Tuple, Optional
  3. Buffer = Union[bytes, bytearray, memoryview]
  4. __all__ = ['CcmMode']
  5. class CCMMessageTooLongError(ValueError):
  6. pass
  7. class CcmMode(object):
  8. block_size: int
  9. nonce: bytes
  10. def __init__(self,
  11. factory: ModuleType,
  12. key: Buffer,
  13. nonce: Buffer,
  14. mac_len: int,
  15. msg_len: Optional[int],
  16. assoc_len: Optional[int],
  17. cipher_params: Dict) -> None: ...
  18. def update(self, assoc_data: Buffer) -> CcmMode: ...
  19. @overload
  20. def encrypt(self, plaintext: Buffer) -> bytes: ...
  21. @overload
  22. def encrypt(self, plaintext: Buffer, output: Union[bytearray, memoryview]) -> None: ...
  23. @overload
  24. def decrypt(self, plaintext: Buffer) -> bytes: ...
  25. @overload
  26. def decrypt(self, plaintext: Buffer, output: Union[bytearray, memoryview]) -> None: ...
  27. def digest(self) -> bytes: ...
  28. def hexdigest(self) -> str: ...
  29. def verify(self, received_mac_tag: Buffer) -> None: ...
  30. def hexverify(self, hex_mac_tag: str) -> None: ...
  31. @overload
  32. def encrypt_and_digest(self,
  33. plaintext: Buffer) -> Tuple[bytes, bytes]: ...
  34. @overload
  35. def encrypt_and_digest(self,
  36. plaintext: Buffer,
  37. output: Buffer) -> Tuple[None, bytes]: ...
  38. def decrypt_and_verify(self,
  39. ciphertext: Buffer,
  40. received_mac_tag: Buffer,
  41. output: Optional[Union[bytearray, memoryview]] = ...) -> bytes: ...