1import sys 2from _typeshed import ReadableBuffer 3from typing import AbstractSet, Optional 4 5class _Hash(object): 6 digest_size: int 7 block_size: int 8 9 # [Python documentation note] Changed in version 3.4: The name attribute has 10 # been present in CPython since its inception, but until Python 3.4 was not 11 # formally specified, so may not exist on some platforms 12 name: str 13 def __init__(self, data: ReadableBuffer = ...) -> None: ... 14 def copy(self) -> _Hash: ... 15 def digest(self) -> bytes: ... 16 def hexdigest(self) -> str: ... 17 def update(self, __data: ReadableBuffer) -> None: ... 18 19if sys.version_info >= (3, 9): 20 def new(name: str, data: ReadableBuffer = ..., *, usedforsecurity: bool = ...) -> _Hash: ... 21 def md5(string: ReadableBuffer = ..., *, usedforsecurity: bool = ...) -> _Hash: ... 22 def sha1(string: ReadableBuffer = ..., *, usedforsecurity: bool = ...) -> _Hash: ... 23 def sha224(string: ReadableBuffer = ..., *, usedforsecurity: bool = ...) -> _Hash: ... 24 def sha256(string: ReadableBuffer = ..., *, usedforsecurity: bool = ...) -> _Hash: ... 25 def sha384(string: ReadableBuffer = ..., *, usedforsecurity: bool = ...) -> _Hash: ... 26 def sha512(string: ReadableBuffer = ..., *, usedforsecurity: bool = ...) -> _Hash: ... 27 28elif sys.version_info >= (3, 8): 29 def new(name: str, data: ReadableBuffer = ...) -> _Hash: ... 30 def md5(string: ReadableBuffer = ...) -> _Hash: ... 31 def sha1(string: ReadableBuffer = ...) -> _Hash: ... 32 def sha224(string: ReadableBuffer = ...) -> _Hash: ... 33 def sha256(string: ReadableBuffer = ...) -> _Hash: ... 34 def sha384(string: ReadableBuffer = ...) -> _Hash: ... 35 def sha512(string: ReadableBuffer = ...) -> _Hash: ... 36 37else: 38 def new(name: str, data: ReadableBuffer = ...) -> _Hash: ... 39 def md5(__string: ReadableBuffer = ...) -> _Hash: ... 40 def sha1(__string: ReadableBuffer = ...) -> _Hash: ... 41 def sha224(__string: ReadableBuffer = ...) -> _Hash: ... 42 def sha256(__string: ReadableBuffer = ...) -> _Hash: ... 43 def sha384(__string: ReadableBuffer = ...) -> _Hash: ... 44 def sha512(__string: ReadableBuffer = ...) -> _Hash: ... 45 46algorithms_guaranteed: AbstractSet[str] 47algorithms_available: AbstractSet[str] 48 49def pbkdf2_hmac( 50 hash_name: str, password: ReadableBuffer, salt: ReadableBuffer, iterations: int, dklen: Optional[int] = ... 51) -> bytes: ... 52 53class _VarLenHash(object): 54 digest_size: int 55 block_size: int 56 name: str 57 def __init__(self, data: ReadableBuffer = ...) -> None: ... 58 def copy(self) -> _VarLenHash: ... 59 def digest(self, __length: int) -> bytes: ... 60 def hexdigest(self, __length: int) -> str: ... 61 def update(self, __data: ReadableBuffer) -> None: ... 62 63sha3_224 = _Hash 64sha3_256 = _Hash 65sha3_384 = _Hash 66sha3_512 = _Hash 67shake_128 = _VarLenHash 68shake_256 = _VarLenHash 69 70def scrypt( 71 password: ReadableBuffer, 72 *, 73 salt: Optional[ReadableBuffer] = ..., 74 n: Optional[int] = ..., 75 r: Optional[int] = ..., 76 p: Optional[int] = ..., 77 maxmem: int = ..., 78 dklen: int = ..., 79) -> bytes: ... 80 81class _BlakeHash(_Hash): 82 MAX_DIGEST_SIZE: int 83 MAX_KEY_SIZE: int 84 PERSON_SIZE: int 85 SALT_SIZE: int 86 87 if sys.version_info >= (3, 9): 88 def __init__( 89 self, 90 __data: ReadableBuffer = ..., 91 *, 92 digest_size: int = ..., 93 key: ReadableBuffer = ..., 94 salt: ReadableBuffer = ..., 95 person: ReadableBuffer = ..., 96 fanout: int = ..., 97 depth: int = ..., 98 leaf_size: int = ..., 99 node_offset: int = ..., 100 node_depth: int = ..., 101 inner_size: int = ..., 102 last_node: bool = ..., 103 usedforsecurity: bool = ..., 104 ) -> None: ... 105 else: 106 def __init__( 107 self, 108 __data: ReadableBuffer = ..., 109 *, 110 digest_size: int = ..., 111 key: ReadableBuffer = ..., 112 salt: ReadableBuffer = ..., 113 person: ReadableBuffer = ..., 114 fanout: int = ..., 115 depth: int = ..., 116 leaf_size: int = ..., 117 node_offset: int = ..., 118 node_depth: int = ..., 119 inner_size: int = ..., 120 last_node: bool = ..., 121 ) -> None: ... 122 123blake2b = _BlakeHash 124blake2s = _BlakeHash 125