-def pad_size(int, int) -> int: ...
+from typing import Callable
-def pad1(bytes, int) -> bytes: ...
+def pad_size(data_size: int, blocksize: int) -> int: ...
-def pad2(bytes, int) -> bytes: ...
+def pad1(data: bytes, blocksize: int) -> bytes: ...
-def pad3(bytes, int) -> bytes: ...
+def pad2(data: bytes, blocksize: int) -> bytes: ...
+
+
+def unpad2(data: bytes, blocksize: int) -> bytes: ...
+
+
+def pad3(data: bytes, blocksize: int) -> bytes: ...
+
+
+def ecb_encrypt(encrypter: Callable[[bytes], bytes], bs: int, pt: bytes) -> bytes: ...
+
+
+def ecb_decrypt(decrypter: Callable[[bytes], bytes], bs: int, ct: bytes) -> bytes: ...
+
+
+def acpkm(encrypter: Callable[[bytes], bytes], bs: int) -> bytes: ...
+
+
+def ctr(encrypter: Callable[[bytes], bytes], bs: int, data: bytes, iv: bytes) -> bytes: ...
+
+
+def ctr_acpkm(
+ algo_class: object,
+ encrypter: Callable[[bytes], bytes],
+ section_size: int,
+ bs: int,
+ data: bytes,
+ iv: bytes,
+) -> bytes: ...
+
+
+def ofb(encrypter: Callable[[bytes], bytes], bs: int, data: bytes, iv: bytes) -> bytes: ...
+
+
+def cbc_encrypt(encrypter: Callable[[bytes], bytes], bs: int, pt: bytes, iv: bytes) -> bytes: ...
+
+
+def cbc_decrypt(decrypter: Callable[[bytes], bytes], bs: int, ct: bytes, iv: bytes) -> bytes: ...
+
+
+def cfb_encrypt(encrypter: Callable[[bytes], bytes], bs: int, pt: bytes, iv: bytes) -> bytes: ...
+
+
+def cfb_decrypt(encrypter: Callable[[bytes], bytes], bs: int, ct: bytes, iv: bytes) -> bytes: ...
+
+
+def mac(encrypter: Callable[[bytes], bytes], bs: int, data: bytes) -> bytes: ...
+
+
+def acpkm_master(
+ algo_class: object,
+ encrypter: Callable[[bytes], bytes],
+ key_section_size: int,
+ bs: int,
+ keymat_len: int,
+) -> bytes: ...
+
+
+def mac_acpkm_master(
+ algo_class: object,
+ encrypter: Callable[[bytes], bytes],
+ key_section_size: int,
+ section_size: int,
+ bs: int,
+ data: bytes,
+) -> bytes: ...