o
    <‘ði@  ã                   @  s¢  d dl mZ d dlZd dlm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¡ ejjZ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)ÚBuffer)ÚMD5ÚSHA1ÚSHA3_224ÚSHA3_256ÚSHA3_384ÚSHA3_512ÚSHA224ÚSHA256ÚSHA384ÚSHA512Ú
SHA512_224Ú
SHA512_256ÚSHAKE128ÚSHAKE256ÚSM3ÚBLAKE2bÚBLAKE2sÚExtendableOutputFunctionÚHashÚHashAlgorithmÚHashContextÚXOFHashc                   @  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   úd/root/parts/websockify/install/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_size5   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Údatar   ÚNonec                 C  r   )z@
        Processes the provided bytes through the hash.
        Nr   )r    r1   r   r   r!   ÚupdateF   r#   zHashContext.updateÚbytesc                 C  r   )zR
        Finalizes the hash context and returns the hash digest as bytes.
        Nr   r   r   r   r!   ÚfinalizeL   r#   zHashContext.finalizec                 C  r   )zM
        Return a HashContext that is a copy of the current context.
        Nr   r   r   r   r!   ÚcopyR   r#   zHashContext.copyN)r   r   )r1   r   r   r2   )r   r4   )r   r   )
r)   r*   r+   r,   r-   r.   r0   r3   r5   r6   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   e   ó    r   c                   @  r8   )r   z
sha512-224é   é€   Nr<   r   r   r   r!   r   k   r=   r   c                   @  r8   )r   z
sha512-256é    r?   Nr<   r   r   r   r!   r   q   r=   r   c                   @  r8   )r   Úsha224r>   r;   Nr<   r   r   r   r!   r   w   r=   r   c                   @  r8   )r   Úsha256r@   r;   Nr<   r   r   r   r!   r   }   r=   r   c                   @  r8   )r   Úsha384é0   r?   Nr<   r   r   r   r!   r   ƒ   r=   r   c                   @  r8   )r   Úsha512r;   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                   @  rF   )r   zsha3-256r@   Nr<   r   r   r   r!   r   •   r=   r   c                   @  rF   )r	   zsha3-384rD   Nr<   r   r   r   r!   r	   ›   r=   r	   c                   @  rF   )r
   zsha3-512r;   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©rP   r   r   r   r!   r%   ´   ó   zSHAKE128.digest_size©r%   r$   r(   ©r)   r*   r+   r"   r'   rR   r,   r%   r   r   r   r!   r   §   ó    
	r   c                   @  rG   )r   Úshake256Nr%   r$   c                 C  rI   rJ   rL   rQ   r   r   r!   rR   ½   rS   zSHAKE256.__init__r   c                 C  rT   rU   rV   r   r   r   r!   r%   Æ   rW   zSHAKE256.digest_sizerX   r(   rY   r   r   r   r!   r   ¹   rZ   r   c                   @  r8   )r   Úmd5é   r;   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   Úblake2br;   rK   r?   r%   r$   c                 C  ó   |dkrt dƒ‚|| _d S )Nr;   zDigest size must be 64©rO   rP   rQ   r   r   r!   rR   ×   ó   
zBLAKE2b.__init__r   c                 C  rT   rU   rV   r   r   r   r!   r%   Ý   rW   zBLAKE2b.digest_sizeNrX   r(   )
r)   r*   r+   r"   Ú_max_digest_sizeÚ_min_digest_sizer'   rR   r,   r%   r   r   r   r!   r   Ñ   ó    
r   c                   @  r^   )r   Úblake2sr;   r@   rK   r%   r$   c                 C  r`   )Nr@   zDigest size must be 32ra   rQ   r   r   r!   rR   è   rb   zBLAKE2s.__init__r   c                 C  rT   rU   rV   r   r   r   r!   r%   î   rW   zBLAKE2s.digest_sizeNrX   r(   )
r)   r*   r+   r"   r'   rc   rd   rR   r,   r%   r   r   r   r!   r   â   re   r   c                   @  r8   )r   Úsm3r@   r;   Nr<   r   r   r   r!   r   ó   r=   r   )"Ú
__future__r   r-   Ú"cryptography.hazmat.bindings._rustr   Úrust_opensslÚcryptography.utilsr   Ú__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   r!   Ú<module>   s8   
