massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / coc-python-data / languageServer.0.5.59 / Typeshed / stdlib / 2and3 / hmac.pyi
1 # Stubs for hmac\r
2 \r
3 from typing import Any, Callable, Optional, Union, overload, AnyStr\r
4 from types import ModuleType\r
5 import sys\r
6 \r
7 _B = Union[bytes, bytearray]\r
8 \r
9 # TODO more precise type for object of hashlib\r
10 _Hash = Any\r
11 \r
12 digest_size: None\r
13 \r
14 if sys.version_info >= (3, 4):\r
15     def new(key: _B, msg: Optional[_B] = ...,\r
16             digestmod: Optional[Union[str, Callable[[], _Hash], ModuleType]] = ...) -> HMAC: ...\r
17 else:\r
18     def new(key: _B, msg: Optional[_B] = ...,\r
19             digestmod: Optional[Union[Callable[[], _Hash], ModuleType]] = ...) -> HMAC: ...\r
20 \r
21 class HMAC:\r
22     if sys.version_info >= (3,):\r
23         digest_size = ...  # type: int\r
24     if sys.version_info >= (3, 4):\r
25         block_size = ...  # type: int\r
26         name = ...  # type: str\r
27     def update(self, msg: _B) -> None: ...\r
28     def digest(self) -> bytes: ...\r
29     def hexdigest(self) -> str: ...\r
30     def copy(self) -> HMAC: ...\r
31 \r
32 @overload\r
33 def compare_digest(a: bytearray, b: bytearray) -> bool: ...\r
34 @overload\r
35 def compare_digest(a: AnyStr, b: AnyStr) -> bool: ...\r
36 \r
37 if sys.version_info >= (3, 7):\r
38     def digest(key: _B, msg: _B, digest: str) -> bytes: ...\r