1 from typing import Callable
2 from typing import Dict
3 from typing import Sequence
4 from typing import Tuple
7 SBOXES = ... # type: Dict[str, Tuple[Tuple[int, ...], ...]]
8 BLOCKSIZE = ... # type: int
10 Words = Tuple[int, int]
13 def block2ns(data: bytes) -> Words: ...
16 def ns2block(ns: Words) -> bytes: ...
19 def validate_key(key: bytes) -> None: ...
22 def validate_iv(iv: bytes) -> None: ...
25 def validate_sbox(sbox: str) -> None: ...
28 def xcrypt(seq: Sequence[int], sbox: str, key: bytes, ns: Words) -> Words: ...
31 def encrypt(sbox: str, key: bytes, ns: Words) -> Words: ...
34 def decrypt(sbox: str, key: bytes, ns: Words) -> Words: ...
40 action: Callable[[str, bytes, Words], Words],