3 from typing import Any, Callable, Optional, Union, overload, AnyStr
\r
4 from types import ModuleType
\r
7 _B = Union[bytes, bytearray]
\r
9 # TODO more precise type for object of hashlib
\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
18 def new(key: _B, msg: Optional[_B] = ...,
\r
19 digestmod: Optional[Union[Callable[[], _Hash], ModuleType]] = ...) -> 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
33 def compare_digest(a: bytearray, b: bytearray) -> bool: ...
\r
35 def compare_digest(a: AnyStr, b: AnyStr) -> bool: ...
\r
37 if sys.version_info >= (3, 7):
\r
38 def digest(key: _B, msg: _B, digest: str) -> bytes: ...
\r