File: _hashlib.pyi

package info (click to toggle)
typeshed 0.0~git20241223.ea91db2-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 28,756 kB
  • sloc: python: 7,741; makefile: 20; sh: 18
file content (80 lines) | stat: -rw-r--r-- 3,760 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import sys
from _typeshed import ReadableBuffer
from collections.abc import Callable
from types import ModuleType
from typing import AnyStr, final, overload
from typing_extensions import Self, TypeAlias

_DigestMod: TypeAlias = str | Callable[[], HASH] | ModuleType | None

openssl_md_meth_names: frozenset[str]

class HASH:
    @property
    def digest_size(self) -> int: ...
    @property
    def block_size(self) -> int: ...
    @property
    def name(self) -> str: ...
    def copy(self) -> Self: ...
    def digest(self) -> bytes: ...
    def hexdigest(self) -> str: ...
    def update(self, obj: ReadableBuffer, /) -> None: ...

if sys.version_info >= (3, 10):
    class UnsupportedDigestmodError(ValueError): ...

if sys.version_info >= (3, 9):
    class HASHXOF(HASH):
        def digest(self, length: int) -> bytes: ...  # type: ignore[override]
        def hexdigest(self, length: int) -> str: ...  # type: ignore[override]

    @final
    class HMAC:
        @property
        def digest_size(self) -> int: ...
        @property
        def block_size(self) -> int: ...
        @property
        def name(self) -> str: ...
        def copy(self) -> Self: ...
        def digest(self) -> bytes: ...
        def hexdigest(self) -> str: ...
        def update(self, msg: ReadableBuffer) -> None: ...

    @overload
    def compare_digest(a: ReadableBuffer, b: ReadableBuffer, /) -> bool: ...
    @overload
    def compare_digest(a: AnyStr, b: AnyStr, /) -> bool: ...
    def get_fips_mode() -> int: ...
    def hmac_new(key: bytes | bytearray, msg: ReadableBuffer = b"", digestmod: _DigestMod = None) -> HMAC: ...
    def new(name: str, string: ReadableBuffer = b"", *, usedforsecurity: bool = True) -> HASH: ...
    def openssl_md5(string: ReadableBuffer = b"", *, usedforsecurity: bool = True) -> HASH: ...
    def openssl_sha1(string: ReadableBuffer = b"", *, usedforsecurity: bool = True) -> HASH: ...
    def openssl_sha224(string: ReadableBuffer = b"", *, usedforsecurity: bool = True) -> HASH: ...
    def openssl_sha256(string: ReadableBuffer = b"", *, usedforsecurity: bool = True) -> HASH: ...
    def openssl_sha384(string: ReadableBuffer = b"", *, usedforsecurity: bool = True) -> HASH: ...
    def openssl_sha512(string: ReadableBuffer = b"", *, usedforsecurity: bool = True) -> HASH: ...
    def openssl_sha3_224(string: ReadableBuffer = b"", *, usedforsecurity: bool = True) -> HASH: ...
    def openssl_sha3_256(string: ReadableBuffer = b"", *, usedforsecurity: bool = True) -> HASH: ...
    def openssl_sha3_384(string: ReadableBuffer = b"", *, usedforsecurity: bool = True) -> HASH: ...
    def openssl_sha3_512(string: ReadableBuffer = b"", *, usedforsecurity: bool = True) -> HASH: ...
    def openssl_shake_128(string: ReadableBuffer = b"", *, usedforsecurity: bool = True) -> HASHXOF: ...
    def openssl_shake_256(string: ReadableBuffer = b"", *, usedforsecurity: bool = True) -> HASHXOF: ...

else:
    def new(name: str, string: ReadableBuffer = b"") -> HASH: ...
    def openssl_md5(string: ReadableBuffer = b"") -> HASH: ...
    def openssl_sha1(string: ReadableBuffer = b"") -> HASH: ...
    def openssl_sha224(string: ReadableBuffer = b"") -> HASH: ...
    def openssl_sha256(string: ReadableBuffer = b"") -> HASH: ...
    def openssl_sha384(string: ReadableBuffer = b"") -> HASH: ...
    def openssl_sha512(string: ReadableBuffer = b"") -> HASH: ...

def hmac_digest(key: bytes | bytearray, msg: ReadableBuffer, digest: str) -> bytes: ...
def pbkdf2_hmac(
    hash_name: str, password: ReadableBuffer, salt: ReadableBuffer, iterations: int, dklen: int | None = None
) -> bytes: ...
def scrypt(
    password: ReadableBuffer, *, salt: ReadableBuffer, n: int, r: int, p: int, maxmem: int = 0, dklen: int = 64
) -> bytes: ...