Current File : //lib64/python3.9/site-packages/cryptography/hazmat/primitives/__pycache__/hashes.cpython-39.pyc
a

�aD�@s�ddlZddlZddlmZddlmZGdd�dejd�ZGdd�dejd�ZGd	d
�d
ejd�Z	Gdd�de�Z
Gd
d�de�ZGdd�de�ZGdd�de�Z
Gdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd �d e�ZGd!d"�d"e�ZGd#d$�d$ee	�ZGd%d&�d&ee	�ZGd'd(�d(e�ZGd)d*�d*e�ZGd+d,�d,e�ZGd-d.�d.e�ZdS)/�N)�utils)�AlreadyFinalizedc@sNeZdZejed�dd��Zejed�dd��Zeje	j
ed�dd��ZdS)	�
HashAlgorithm��returncCsdS)zH
        A string naming this algorithm (e.g. "sha256", "md5").
        N���selfrr�K/usr/lib64/python3.9/site-packages/cryptography/hazmat/primitives/hashes.py�nameszHashAlgorithm.namecCsdS)z<
        The size of the resulting digest in bytes.
        Nrrrrr
�digest_sizeszHashAlgorithm.digest_sizecCsdS)z�
        The internal block size of the hash function, or None if the hash
        function does not use blocks internally (e.g. SHA3).
        Nrrrrr
�
block_sizeszHashAlgorithm.block_sizeN)�__name__�
__module__�__qualname__�abc�abstractproperty�strr�intr�typing�Optionalr
rrrr
rsr)�	metaclassc@s^eZdZejed�dd��Zejedd�dd��Z	ejed�dd	��Z
ejdd�d
d��ZdS)�HashContextrcCsdS)zD
        A HashAlgorithm that will be used by this context.
        Nrrrrr
�	algorithm$szHashContext.algorithmN��datarcCsdS)z@
        Processes the provided bytes through the hash.
        Nr�r	rrrr
�update*szHashContext.updatecCsdS)zR
        Finalizes the hash context and returns the hash digest as bytes.
        Nrrrrr
�finalize0szHashContext.finalizecCsdS)zM
        Return a HashContext that is a copy of the current context.
        Nrrrrr
�copy6szHashContext.copy)rrrrrrr�abstractmethod�bytesrrrrrrr
r#src@seZdZdZdS)�ExtendableOutputFunctionz7
    An interface for extendable output functions.
    N)rrr�__doc__rrrr
r"=sr"c@sfeZdZdeejejdd�dd�Zeed�dd��Z	e
dd	�d
d�Zdd�dd
�Ze
d�dd�Z
dS)�HashNr)r�backend�ctxcCsFt|t�std��||_|dur<ddlm}|�|j�|_n||_dS)Nz*Expected instance of hashes.HashAlgorithm.r)r%)	�
isinstancer�	TypeError�
_algorithmZ,cryptography.hazmat.backends.openssl.backendr%Zcreate_hash_ctxr�_ctx)r	rr%r&Zosslrrr
�__init__Ds
z
Hash.__init__rcCs|jS�N)r)rrrr
rWszHash.algorithmrcCs.|jdurtd��t�d|�|j�|�dS)N�Context was already finalized.r)r*rrZ_check_byteslikerrrrr
r[s
zHash.updatecCs&|jdurtd��t|j|j��d�S)Nr-)r&)r*rr$rrrrrr
ras
z	Hash.copycCs&|jdurtd��|j��}d|_|S)Nr-)r*rr)r	�digestrrr
rfs


z
Hash.finalize)NN)rrrrr�Anyrr+�propertyrr!rrrrrrr
r$Cs��r$c@seZdZdZdZdZdS)�SHA1Zsha1��@N�rrrrrr
rrrr
r1nsr1c@seZdZdZdZdZdS)�
SHA512_224z
sha512-224��Nr4rrrr
r5tsr5c@seZdZdZdZdZdS)�
SHA512_256z
sha512-256� r7Nr4rrrr
r8zsr8c@seZdZdZdZdZdS)�SHA224Zsha224r6r3Nr4rrrr
r:�sr:c@seZdZdZdZdZdS)�SHA256Zsha256r9r3Nr4rrrr
r;�sr;c@seZdZdZdZdZdS)�SHA384Zsha384�0r7Nr4rrrr
r<�sr<c@seZdZdZdZdZdS)�SHA512Zsha512r3r7Nr4rrrr
r>�sr>c@seZdZdZdZdZdS)�SHA3_224zsha3-224r6Nr4rrrr
r?�sr?c@seZdZdZdZdZdS)�SHA3_256zsha3-256r9Nr4rrrr
r@�sr@c@seZdZdZdZdZdS)�SHA3_384zsha3-384r=Nr4rrrr
rA�srAc@seZdZdZdZdZdS)�SHA3_512zsha3-512r3Nr4rrrr
rB�srBc@s4eZdZdZdZed�dd�Zeed�dd��ZdS)	�SHAKE128Zshake128N�rcCs,t|t�std��|dkr"td��||_dS�Nzdigest_size must be an integer�z&digest_size must be a positive integer�r'rr(�
ValueError�_digest_size�r	rrrr
r+�s

zSHAKE128.__init__rcCs|jSr,�rIrrrr
r�szSHAKE128.digest_size�	rrrrr
rr+r0rrrrr
rC�s
	rCc@s4eZdZdZdZed�dd�Zeed�dd��ZdS)	�SHAKE256Zshake256NrDcCs,t|t�std��|dkr"td��||_dSrErGrJrrr
r+�s

zSHAKE256.__init__rcCs|jSr,rKrrrr
r�szSHAKE256.digest_sizerLrrrr
rM�s
	rMc@seZdZdZdZdZdS)�MD5Zmd5�r3Nr4rrrr
rN�srNc@s<eZdZdZdZdZdZed�dd�Ze	ed�d	d
��Z
dS)�BLAKE2bZblake2br3rFr7rDcCs|dkrtd��||_dS)Nr3zDigest size must be 64�rHrIrJrrr
r+�szBLAKE2b.__init__rcCs|jSr,rKrrrr
r�szBLAKE2b.digest_sizeN)rrrr�_max_digest_size�_min_digest_sizer
rr+r0rrrrr
rP�srPc@s<eZdZdZdZdZdZed�dd�Ze	ed�d	d
��Z
dS)�BLAKE2sZblake2sr3r9rFrDcCs|dkrtd��||_dS)Nr9zDigest size must be 32rQrJrrr
r+�szBLAKE2s.__init__rcCs|jSr,rKrrrr
r�szBLAKE2s.digest_sizeN)rrrrr
rRrSrr+r0rrrrr
rT�srTc@seZdZdZdZdZdS)�SM3Zsm3r9r3Nr4rrrr
rU�srU)rrZcryptographyrZcryptography.exceptionsr�ABCMetarrr"r$r1r5r8r:r;r<r>r?r@rArBrCrMrNrPrTrUrrrr
�<module>s0+