HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/cryptography/hazmat/primitives/__pycache__/hashes.cpython-38.pyc
U

�)%a��@s�ddlZddlZddlmZddlmZmZmZddlm	Z	ddl
mZGdd�dejd�Z
Gd	d
�d
ejd�ZGdd�dejd�ZGd
d�de�ZGdd�de
�ZGdd�de
�ZGdd�de
�ZGdd�de
�ZGdd�de
�ZGdd�de
�ZGdd�de
�ZGdd�de
�ZGdd �d e
�ZGd!d"�d"e
�ZGd#d$�d$e
�ZGd%d&�d&e
e�ZGd'd(�d(e
e�ZGd)d*�d*e
�ZGd+d,�d,e
�ZGd-d.�d.e
�Z dS)/�N)�utils)�AlreadyFinalized�UnsupportedAlgorithm�_Reasons)�_get_backend)�HashBackendc@sNeZdZejed�dd��Zejed�dd��Zeje	j
ed�dd��ZdS)	�
HashAlgorithm��returncCsdS)zH
        A string naming this algorithm (e.g. "sha256", "md5").
        N���selfrr�G/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/hashes.py�nameszHashAlgorithm.namecCsdS)z<
        The size of the resulting digest in bytes.
        Nrrrrr�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).
        Nrrrrr�
block_sizeszHashAlgorithm.block_sizeN)�__name__�
__module__�__qualname__�abc�abstractproperty�strr�intr�typing�Optionalrrrrrrsr)�	metaclassc@s^eZdZejed�dd��Zejedd�dd��Z	ejed�dd	��Z
ejdd�d
d��ZdS)�HashContextr	cCsdS)zD
        A HashAlgorithm that will be used by this context.
        Nrrrrr�	algorithm(szHashContext.algorithmN��datar
cCsdS)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.
        Nrrrrr�finalize4szHashContext.finalizecCsdS)zM
        Return a HashContext that is a copy of the current context.
        Nrrrrr�copy:szHashContext.copy)rrrrrrr�abstractmethod�bytesr!r"r#rrrrr'src@seZdZdZdS)�ExtendableOutputFunctionz7
    An interface for extendable output functions.
    N)rrr�__doc__rrrrr&Asr&c@sReZdZded�dd�Ze�d�Zedd�dd�Z	dd	�d
d�Z
ed	�dd
�ZdS)�HashN)rcCs`t|�}t|t�stdtj��t|t�s0td��||_||_	|dkrV|j	�
|j�|_n||_dS)Nz.Backend object does not implement HashBackend.z*Expected instance of hashes.HashAlgorithm.)
r�
isinstancerrrZBACKEND_MISSING_INTERFACEr�	TypeError�
_algorithm�_backendZcreate_hash_ctxr�_ctx)r
r�backend�ctxrrr�__init__Hs
�
z
Hash.__init__r+rcCs.|jdkrtd��t�d|�|j�|�dS)N�Context was already finalized.r)r-rr�_check_bytesliker!r rrrr!]s
zHash.updater	cCs*|jdkrtd��t|j|j|j��d�S)Nr1)r.r/)r-rr(rr,r#rrrrr#cs
�z	Hash.copycCs&|jdkrtd��|j��}d|_|S)Nr1)r-rr")r
�digestrrrr"js


z
Hash.finalize)NN)rrrrr0r�read_only_propertyrr%r!r#r"rrrrr(Gs

r(c@seZdZdZdZdZdS)�SHA1�sha1��@N�rrrrrrrrrrr5rsr5c@seZdZdZdZdZdS)�
SHA512_224z
sha512-224��Nr9rrrrr:xsr:c@seZdZdZdZdZdS)�
SHA512_256z
sha512-256� r<Nr9rrrrr=~sr=c@seZdZdZdZdZdS)�SHA224�sha224r;r8Nr9rrrrr?�sr?c@seZdZdZdZdZdS)�SHA256�sha256r>r8Nr9rrrrrA�srAc@seZdZdZdZdZdS)�SHA384�sha384�0r<Nr9rrrrrC�srCc@seZdZdZdZdZdS)�SHA512�sha512r8r<Nr9rrrrrF�srFc@seZdZdZdZdZdS)�SHA3_224zsha3-224r;Nr9rrrrrH�srHc@seZdZdZdZdZdS)�SHA3_256zsha3-256r>Nr9rrrrrI�srIc@seZdZdZdZdZdS)�SHA3_384zsha3-384rENr9rrrrrJ�srJc@seZdZdZdZdZdS)�SHA3_512zsha3-512r8Nr9rrrrrK�srKc@s,eZdZdZdZed�dd�Ze�d�Z	dS)�SHAKE128Zshake128N�rcCs,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
rrrrr0�s

zSHAKE128.__init__rR�
rrrrrrr0rr4rrrrrrL�s	rLc@s,eZdZdZdZed�dd�Ze�d�Z	dS)�SHAKE256Zshake256NrMcCs,t|t�std��|dkr"td��||_dSrNrPrSrrrr0�s

zSHAKE256.__init__rRrTrrrrrU�s	rUc@seZdZdZdZdZdS)�MD5�md5�r8Nr9rrrrrV�srVc@s4eZdZdZdZdZdZed�dd�Ze	�
d�Zd	S)
�BLAKE2b�blake2br8rOr<rMcCs|dkrtd��||_dS)Nr8zDigest size must be 64�rQrRrSrrrr0�szBLAKE2b.__init__rRN)rrrr�_max_digest_size�_min_digest_sizerrr0rr4rrrrrrY�srYc@s4eZdZdZdZdZdZed�dd�Ze	�
d�Zd	S)
�BLAKE2s�blake2sr8r>rOrMcCs|dkrtd��||_dS)Nr>zDigest size must be 32r[rSrrrr0�szBLAKE2s.__init__rRN)rrrrrr\r]rr0rr4rrrrrr^�sr^)!rr�cryptographyrZcryptography.exceptionsrrr�cryptography.hazmat.backendsrZ'cryptography.hazmat.backends.interfacesr�ABCMetarrr&r(r5r:r=r?rArCrFrHrIrJrKrLrUrVrYr^rrrr�<module>s2+