Finish Python 3 hashlib stub (#179)

This commit is contained in:
Jakub Stasiak
2016-05-04 17:29:16 +02:00
committed by Guido van Rossum
parent d492c5360d
commit f5bfee6f35

View File

@@ -1,11 +1,17 @@
# Stubs for hashlib
# NOTE: These are incomplete!
from abc import abstractmethod, ABCMeta
import typing
from typing import AbstractSet
class Hash(metaclass=ABCMeta):
digest_size = ... # type: int
block_size = ... # type: int
# [Python documentation note] Changed in version 3.4: The name attribute has
# been present in CPython since its inception, but until Python 3.4 was not
# formally specified, so may not exist on some platforms
name = ... # type: str
@abstractmethod
def update(self, arg: bytes) -> None: ...
@abstractmethod
@@ -23,3 +29,12 @@ def sha384(arg: bytes = ...) -> Hash: ...
def sha512(arg: bytes = ...) -> Hash: ...
def new(name: str, data: bytes = ...) -> Hash: ...
# New in version 3.2
algorithms_guaranteed = ... # type: AbstractSet[str]
algorithms_available = ... # type: AbstractSet[str]
# New in version 3.4
# TODO The documentation says "password and salt are interpreted as buffers of
# bytes", should we declare something other than bytes here?
def pbkdf2_hmac(name: str, password: bytes, salt: bytes, rounds: int, dklen: int = ...) -> bytes: ...