o
    ÖèFhã  ã                   @  sŽ  d dl mZ d dlZd dlmZ g d¢ZG dd„ dejd�ZG dd	„ d	ejd�Z	ej
jZe	 e¡ G d
d„ dejd�ZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG d d!„ d!eƒZG d"d#„ d#eeƒZG d$d%„ d%eeƒZG d&d'„ d'eƒZG d(d)„ d)eƒZG d*d+„ d+eƒZG d,d-„ d-eƒZdS ).é    )ÚannotationsN)Úopenssl)ÚHashAlgorithmÚHashContextÚHashÚExtendableOutputFunctionÚSHA1Ú
SHA512_224Ú
SHA512_256ÚSHA224ÚSHA256ÚSHA384ÚSHA512ÚSHA3_224ÚSHA3_256ÚSHA3_384ÚSHA3_512ÚSHAKE128ÚSHAKE256ÚMD5ÚBLAKE2bÚBLAKE2sÚSM3c                   @  sH   e Zd Zeejddd„ƒƒZeejddd„ƒƒZeejdd	d
„ƒƒZdS )r   ÚreturnÚstrc                 C  ó   dS )zH
        A string naming this algorithm (e.g. "sha256", "md5").
        N© ©Úselfr   r   ú^/var/www/html/loop/nvenv/lib/python3.10/site-packages/cryptography/hazmat/primitives/hashes.pyÚname%   ó    zHashAlgorithm.nameÚintc                 C  r   )z<
        The size of the resulting digest in bytes.
        Nr   r   r   r   r   Údigest_size,   r!   zHashAlgorithm.digest_sizeú
int | Nonec                 C  r   )z�
        The internal block size of the hash function, or None if the hash
        function does not use blocks internally (e.g. SHA3).
        Nr   r   r   r   r   Ú
block_size3   r!   zHashAlgorithm.block_sizeN)r   r   ©r   r"   )r   r$   )	Ú__name__Ú
__module__Ú__qualname__ÚpropertyÚabcÚabstractmethodr    r#   r%   r   r   r   r   r   $   s    r   )Ú	metaclassc                   @  sP   e Zd Zeejddd„ƒƒZejddd	„ƒZejdd
d„ƒZejddd„ƒZ	dS )r   r   r   c                 C  r   )zD
        A HashAlgorithm that will be used by this context.
        Nr   r   r   r   r   Ú	algorithm=   r!   zHashContext.algorithmÚdataÚbytesÚNonec                 C  r   )z@
        Processes the provided bytes through the hash.
        Nr   )r   r/   r   r   r   ÚupdateD   r!   zHashContext.updatec                 C  r   )zR
        Finalizes the hash context and returns the hash digest as bytes.
        Nr   r   r   r   r   ÚfinalizeJ   r!   zHashContext.finalizec                 C  r   )zM
        Return a HashContext that is a copy of the current context.
        Nr   r   r   r   r   ÚcopyP   r!   zHashContext.copyN)r   r   )r/   r0   r   r1   )r   r0   )r   r   )
r'   r(   r)   r*   r+   r,   r.   r2   r3   r4   r   r   r   r   r   <   s    r   c                   @  s   e Zd ZdZdS )r   z7
    An interface for extendable output functions.
    N)r'   r(   r)   Ú__doc__r   r   r   r   r   [   s    r   c                   @  ó   e Zd ZdZdZdZdS )r   Úsha1é   é@   N©r'   r(   r)   r    r#   r%   r   r   r   r   r   a   ó    r   c                   @  r6   )r	   z
sha512-224é   é€   Nr:   r   r   r   r   r	   g   r;   r	   c                   @  r6   )r
   z
sha512-256é    r=   Nr:   r   r   r   r   r
   m   r;   r
   c                   @  r6   )r   Úsha224r<   r9   Nr:   r   r   r   r   r   s   r;   r   c                   @  r6   )r   Úsha256r>   r9   Nr:   r   r   r   r   r   y   r;   r   c                   @  r6   )r   Úsha384é0   r=   Nr:   r   r   r   r   r      r;   r   c                   @  r6   )r   Úsha512r9   r=   Nr:   r   r   r   r   r   …   r;   r   c                   @  ó   e Zd ZdZdZdZdS )r   zsha3-224r<   Nr:   r   r   r   r   r   ‹   r;   r   c                   @  rD   )r   zsha3-256r>   Nr:   r   r   r   r   r   ‘   r;   r   c                   @  rD   )r   zsha3-384rB   Nr:   r   r   r   r   r   —   r;   r   c                   @  rD   )r   zsha3-512r9   Nr:   r   r   r   r   r   �   r;   r   c                   @  ó,   e Zd ZdZdZd
dd„Zeddd	„ƒZdS )r   Úshake128Nr#   r"   c                 C  ó,   t |tƒs	tdƒ‚|dk rtdƒ‚|| _d S ©Nzdigest_size must be an integeré   z&digest_size must be a positive integer©Ú
isinstancer"   Ú	TypeErrorÚ
ValueErrorÚ_digest_size©r   r#   r   r   r   Ú__init__§   ó
   

zSHAKE128.__init__r   c                 C  ó   | j S ©N©rN   r   r   r   r   r#   °   ó   zSHAKE128.digest_size©r#   r"   r&   ©r'   r(   r)   r    r%   rP   r*   r#   r   r   r   r   r   £   ó    
	r   c                   @  rE   )r   Úshake256Nr#   r"   c                 C  rG   rH   rJ   rO   r   r   r   rP   ¹   rQ   zSHAKE256.__init__r   c                 C  rR   rS   rT   r   r   r   r   r#   Â   rU   zSHAKE256.digest_sizerV   r&   rW   r   r   r   r   r   µ   rX   r   c                   @  r6   )r   Úmd5é   r9   Nr:   r   r   r   r   r   Ç   r;   r   c                   @  ó4   e Zd ZdZdZdZdZddd„Zedd
d„ƒZ	dS )r   Úblake2br9   rI   r=   r#   r"   c                 C  ó   |dkrt dƒ‚|| _d S )Nr9   zDigest size must be 64©rM   rN   rO   r   r   r   rP   Ó   ó   
zBLAKE2b.__init__r   c                 C  rR   rS   rT   r   r   r   r   r#   Ù   rU   zBLAKE2b.digest_sizeNrV   r&   )
r'   r(   r)   r    Ú_max_digest_sizeÚ_min_digest_sizer%   rP   r*   r#   r   r   r   r   r   Í   ó    
r   c                   @  r\   )r   Úblake2sr9   r>   rI   r#   r"   c                 C  r^   )Nr>   zDigest size must be 32r_   rO   r   r   r   rP   ä   r`   zBLAKE2s.__init__r   c                 C  rR   rS   rT   r   r   r   r   r#   ê   rU   zBLAKE2s.digest_sizeNrV   r&   )
r'   r(   r)   r    r%   ra   rb   rP   r*   r#   r   r   r   r   r   Þ   rc   r   c                   @  r6   )r   Úsm3r>   r9   Nr:   r   r   r   r   r   ï   r;   r   )Ú
__future__r   r+   Ú"cryptography.hazmat.bindings._rustr   Úrust_opensslÚ__all__ÚABCMetar   r   Úhashesr   Úregisterr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Ú<module>   s4   
