AES.pyi 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  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. MODE_ECB: Literal[1]
  16. MODE_CBC: Literal[2]
  17. MODE_CFB: Literal[3]
  18. MODE_OFB: Literal[5]
  19. MODE_CTR: Literal[6]
  20. MODE_OPENPGP: Literal[7]
  21. MODE_CCM: Literal[8]
  22. MODE_EAX: Literal[9]
  23. MODE_SIV: Literal[10]
  24. MODE_GCM: Literal[11]
  25. MODE_OCB: Literal[12]
  26. # MODE_ECB
  27. @overload
  28. def new(key: Buffer,
  29. mode: Literal[1],
  30. use_aesni : bool = ...) -> \
  31. EcbMode: ...
  32. # MODE_CBC
  33. @overload
  34. def new(key: Buffer,
  35. mode: Literal[2],
  36. iv : Optional[Buffer] = ...,
  37. use_aesni : bool = ...) -> \
  38. CbcMode: ...
  39. @overload
  40. def new(key: Buffer,
  41. mode: Literal[2],
  42. IV : Optional[Buffer] = ...,
  43. use_aesni : bool = ...) -> \
  44. CbcMode: ...
  45. # MODE_CFB
  46. @overload
  47. def new(key: Buffer,
  48. mode: Literal[3],
  49. iv : Optional[Buffer] = ...,
  50. segment_size : int = ...,
  51. use_aesni : bool = ...) -> \
  52. CfbMode: ...
  53. @overload
  54. def new(key: Buffer,
  55. mode: Literal[3],
  56. IV : Optional[Buffer] = ...,
  57. segment_size : int = ...,
  58. use_aesni : bool = ...) -> \
  59. CfbMode: ...
  60. # MODE_OFB
  61. @overload
  62. def new(key: Buffer,
  63. mode: Literal[5],
  64. iv : Optional[Buffer] = ...,
  65. use_aesni : bool = ...) -> \
  66. OfbMode: ...
  67. @overload
  68. def new(key: Buffer,
  69. mode: Literal[5],
  70. IV : Optional[Buffer] = ...,
  71. use_aesni : bool = ...) -> \
  72. OfbMode: ...
  73. # MODE_CTR
  74. @overload
  75. def new(key: Buffer,
  76. mode: Literal[6],
  77. nonce : Optional[Buffer] = ...,
  78. initial_value : Union[int, Buffer] = ...,
  79. counter : Dict = ...,
  80. use_aesni : bool = ...) -> \
  81. CtrMode: ...
  82. # MODE_OPENPGP
  83. @overload
  84. def new(key: Buffer,
  85. mode: Literal[7],
  86. iv : Optional[Buffer] = ...,
  87. use_aesni : bool = ...) -> \
  88. OpenPgpMode: ...
  89. @overload
  90. def new(key: Buffer,
  91. mode: Literal[7],
  92. IV : Optional[Buffer] = ...,
  93. use_aesni : bool = ...) -> \
  94. OpenPgpMode: ...
  95. # MODE_CCM
  96. @overload
  97. def new(key: Buffer,
  98. mode: Literal[8],
  99. nonce : Optional[Buffer] = ...,
  100. mac_len : int = ...,
  101. assoc_len : int = ...,
  102. use_aesni : bool = ...) -> \
  103. CcmMode: ...
  104. # MODE_EAX
  105. @overload
  106. def new(key: Buffer,
  107. mode: Literal[9],
  108. nonce : Optional[Buffer] = ...,
  109. mac_len : int = ...,
  110. use_aesni : bool = ...) -> \
  111. EaxMode: ...
  112. # MODE_GCM
  113. @overload
  114. def new(key: Buffer,
  115. mode: Literal[10],
  116. nonce : Optional[Buffer] = ...,
  117. use_aesni : bool = ...) -> \
  118. SivMode: ...
  119. # MODE_SIV
  120. @overload
  121. def new(key: Buffer,
  122. mode: Literal[11],
  123. nonce : Optional[Buffer] = ...,
  124. mac_len : int = ...,
  125. use_aesni : bool = ...) -> \
  126. GcmMode: ...
  127. # MODE_OCB
  128. @overload
  129. def new(key: Buffer,
  130. mode: Literal[12],
  131. nonce : Optional[Buffer] = ...,
  132. mac_len : int = ...,
  133. use_aesni : bool = ...) -> \
  134. OcbMode: ...
  135. block_size: int
  136. key_size: Tuple[int, int, int]