AES.pyi 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. from typing import Dict, Optional, Tuple, Union, overload
  2. from typing_extensions import Literal
  3. Buffer=bytes|bytearray|memoryview
  4. from Crypto.Cipher._mode_ecb import EcbMode
  5. from Crypto.Cipher._mode_cbc import CbcMode
  6. from Crypto.Cipher._mode_cfb import CfbMode
  7. from Crypto.Cipher._mode_ofb import OfbMode
  8. from Crypto.Cipher._mode_ctr import CtrMode
  9. from Crypto.Cipher._mode_openpgp import OpenPgpMode
  10. from Crypto.Cipher._mode_ccm import CcmMode
  11. from Crypto.Cipher._mode_eax import EaxMode
  12. from Crypto.Cipher._mode_gcm import GcmMode
  13. from Crypto.Cipher._mode_siv import SivMode
  14. from Crypto.Cipher._mode_ocb import OcbMode
  15. from Crypto.Cipher._mode_kw import KWMode
  16. from Crypto.Cipher._mode_kwp import KWPMode
  17. MODE_ECB: Literal[1]
  18. MODE_CBC: Literal[2]
  19. MODE_CFB: Literal[3]
  20. MODE_OFB: Literal[5]
  21. MODE_CTR: Literal[6]
  22. MODE_OPENPGP: Literal[7]
  23. MODE_CCM: Literal[8]
  24. MODE_EAX: Literal[9]
  25. MODE_SIV: Literal[10]
  26. MODE_GCM: Literal[11]
  27. MODE_OCB: Literal[12]
  28. MODE_KW: Literal[13]
  29. MODE_KWP: Literal[14]
  30. # MODE_ECB
  31. @overload
  32. def new(key: Buffer,
  33. mode: Literal[1],
  34. use_aesni : bool = ...) -> \
  35. EcbMode: ...
  36. # MODE_CBC
  37. @overload
  38. def new(key: Buffer,
  39. mode: Literal[2],
  40. iv : Optional[Buffer] = ...,
  41. use_aesni : bool = ...) -> \
  42. CbcMode: ...
  43. @overload
  44. def new(key: Buffer,
  45. mode: Literal[2],
  46. IV : Optional[Buffer] = ...,
  47. use_aesni : bool = ...) -> \
  48. CbcMode: ...
  49. # MODE_CFB
  50. @overload
  51. def new(key: Buffer,
  52. mode: Literal[3],
  53. iv : Optional[Buffer] = ...,
  54. segment_size : int = ...,
  55. use_aesni : bool = ...) -> \
  56. CfbMode: ...
  57. @overload
  58. def new(key: Buffer,
  59. mode: Literal[3],
  60. IV : Optional[Buffer] = ...,
  61. segment_size : int = ...,
  62. use_aesni : bool = ...) -> \
  63. CfbMode: ...
  64. # MODE_OFB
  65. @overload
  66. def new(key: Buffer,
  67. mode: Literal[5],
  68. iv : Optional[Buffer] = ...,
  69. use_aesni : bool = ...) -> \
  70. OfbMode: ...
  71. @overload
  72. def new(key: Buffer,
  73. mode: Literal[5],
  74. IV : Optional[Buffer] = ...,
  75. use_aesni : bool = ...) -> \
  76. OfbMode: ...
  77. # MODE_CTR
  78. @overload
  79. def new(key: Buffer,
  80. mode: Literal[6],
  81. nonce : Optional[Buffer] = ...,
  82. initial_value : Union[int, Buffer] = ...,
  83. counter : Dict = ...,
  84. use_aesni : bool = ...) -> \
  85. CtrMode: ...
  86. # MODE_OPENPGP
  87. @overload
  88. def new(key: Buffer,
  89. mode: Literal[7],
  90. iv : Optional[Buffer] = ...,
  91. use_aesni : bool = ...) -> \
  92. OpenPgpMode: ...
  93. @overload
  94. def new(key: Buffer,
  95. mode: Literal[7],
  96. IV : Optional[Buffer] = ...,
  97. use_aesni : bool = ...) -> \
  98. OpenPgpMode: ...
  99. # MODE_CCM
  100. @overload
  101. def new(key: Buffer,
  102. mode: Literal[8],
  103. nonce : Optional[Buffer] = ...,
  104. mac_len : int = ...,
  105. assoc_len : int = ...,
  106. use_aesni : bool = ...) -> \
  107. CcmMode: ...
  108. # MODE_EAX
  109. @overload
  110. def new(key: Buffer,
  111. mode: Literal[9],
  112. nonce : Optional[Buffer] = ...,
  113. mac_len : int = ...,
  114. use_aesni : bool = ...) -> \
  115. EaxMode: ...
  116. # MODE_GCM
  117. @overload
  118. def new(key: Buffer,
  119. mode: Literal[10],
  120. nonce : Optional[Buffer] = ...,
  121. use_aesni : bool = ...) -> \
  122. SivMode: ...
  123. # MODE_SIV
  124. @overload
  125. def new(key: Buffer,
  126. mode: Literal[11],
  127. nonce : Optional[Buffer] = ...,
  128. mac_len : int = ...,
  129. use_aesni : bool = ...) -> \
  130. GcmMode: ...
  131. # MODE_OCB
  132. @overload
  133. def new(key: Buffer,
  134. mode: Literal[12],
  135. nonce : Optional[Buffer] = ...,
  136. mac_len : int = ...,
  137. use_aesni : bool = ...) -> \
  138. OcbMode: ...
  139. # MODE_KW
  140. @overload
  141. def new(key: Buffer,
  142. mode: Literal[13],
  143. use_aesni : bool = ...) -> \
  144. KWMode: ...
  145. # MODE_KWP
  146. @overload
  147. def new(key: Buffer,
  148. mode: Literal[14],
  149. use_aesni : bool = ...) -> \
  150. KWPMode: ...
  151. block_size: int
  152. key_size: Tuple[int, int, int]