a
    còfã  ã                   @  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)Ú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ÚHashContextc                   @  sT   e Zd Zeejddœdd„ƒƒZeejddœdd„ƒƒZeejddœd	d
„ƒƒZdS )r   Ústr©Úreturnc                 C  s   dS )zH
        A string naming this algorithm (e.g. "sha256", "md5").
        N© ©Úselfr   r   úb/home/httpd/docs/test/DocsMgr/lib/python3.9/site-packages/cryptography/hazmat/primitives/hashes.pyÚname%   s    zHashAlgorithm.nameÚintc                 C  s   dS )z<
        The size of the resulting digest in bytes.
        Nr   r   r   r   r   Údigest_size,   s    zHashAlgorithm.digest_sizez
int | Nonec                 C  s   dS )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   s    zHashAlgorithm.block_sizeN)	Ú__name__Ú
__module__Ú__qualname__ÚpropertyÚabcÚabstractmethodr    r"   r#   r   r   r   r   r   $   s   r   )Ú	metaclassc                   @  sb   e Zd Zeejddœdd„ƒƒZejdddœdd	„ƒZejddœd
d„ƒZejd dœdd„ƒZ	dS )r   r   r   c                 C  s   dS )zD
        A HashAlgorithm that will be used by this context.
        Nr   r   r   r   r   Ú	algorithm=   s    zHashContext.algorithmÚbytesÚNone)Údatar   c                 C  s   dS )z@
        Processes the provided bytes through the hash.
        Nr   )r   r.   r   r   r   ÚupdateD   s    zHashContext.updatec                 C  s   dS )zR
        Finalizes the hash context and returns the hash digest as bytes.
        Nr   r   r   r   r   ÚfinalizeJ   s    zHashContext.finalizec                 C  s   dS )zM
        Return a HashContext that is a copy of the current context.
        Nr   r   r   r   r   ÚcopyP   s    zHashContext.copyN)
r$   r%   r&   r'   r(   r)   r+   r/   r0   r1   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                   @  s   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   s   r   c                   @  s   e Zd ZdZdZdZdS )r   z
sha512-224é   é€   Nr6   r   r   r   r   r   g   s   r   c                   @  s   e Zd ZdZdZdZdS )r   z
sha512-256é    r8   Nr6   r   r   r   r   r   m   s   r   c                   @  s   e Zd ZdZdZdZdS )r
   Úsha224r7   r5   Nr6   r   r   r   r   r
   s   s   r
   c                   @  s   e Zd ZdZdZdZdS )r   Úsha256r9   r5   Nr6   r   r   r   r   r   y   s   r   c                   @  s   e Zd ZdZdZdZdS )r   Úsha384é0   r8   Nr6   r   r   r   r   r      s   r   c                   @  s   e Zd ZdZdZdZdS )r   Úsha512r5   r8   Nr6   r   r   r   r   r   …   s   r   c                   @  s   e Zd ZdZdZdZdS )r   zsha3-224r7   Nr6   r   r   r   r   r   ‹   s   r   c                   @  s   e Zd ZdZdZdZdS )r   zsha3-256r9   Nr6   r   r   r   r   r   ‘   s   r   c                   @  s   e Zd ZdZdZdZdS )r   zsha3-384r=   Nr6   r   r   r   r   r   —   s   r   c                   @  s   e Zd ZdZdZdZdS )r	   zsha3-512r5   Nr6   r   r   r   r   r	   �   s   r	   c                   @  s4   e Zd ZdZdZddœdd„Zeddœdd	„ƒZdS )
r   Zshake128Nr!   ©r"   c                 C  s,   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__§   s
    
zSHAKE128.__init__r   c                 C  s   | j S ©N©rF   r   r   r   r   r"   °   s    zSHAKE128.digest_size©r$   r%   r&   r    r#   rH   r'   r"   r   r   r   r   r   £   s
   	r   c                   @  s4   e Zd ZdZdZddœdd„Zeddœdd	„ƒZdS )
r   Zshake256Nr!   r?   c                 C  s,   t |tƒstdƒ‚|dk r"tdƒ‚|| _d S r@   rB   rG   r   r   r   rH   ¹   s
    
zSHAKE256.__init__r   c                 C  s   | j S rI   rJ   r   r   r   r   r"   Â   s    zSHAKE256.digest_sizerK   r   r   r   r   r   µ   s
   	r   c                   @  s   e Zd ZdZdZdZdS )r   Úmd5é   r5   Nr6   r   r   r   r   r   Ç   s   r   c                   @  s<   e Zd ZdZdZdZdZddœdd„Zedd	œd
d„ƒZ	dS )r   Úblake2br5   rA   r8   r!   r?   c                 C  s   |dkrt dƒ‚|| _d S )Nr5   zDigest size must be 64©rE   rF   rG   r   r   r   rH   Ó   s    zBLAKE2b.__init__r   c                 C  s   | j S rI   rJ   r   r   r   r   r"   Ù   s    zBLAKE2b.digest_sizeN)
r$   r%   r&   r    Ú_max_digest_sizeÚ_min_digest_sizer#   rH   r'   r"   r   r   r   r   r   Í   s   r   c                   @  s<   e Zd ZdZdZdZdZddœdd„Zedd	œd
d„ƒZ	dS )r   Úblake2sr5   r9   rA   r!   r?   c                 C  s   |dkrt dƒ‚|| _d S )Nr9   zDigest size must be 32rO   rG   r   r   r   rH   ä   s    zBLAKE2s.__init__r   c                 C  s   | j S rI   rJ   r   r   r   r   r"   ê   s    zBLAKE2s.digest_sizeN)
r$   r%   r&   r    r#   rP   rQ   rH   r'   r"   r   r   r   r   r   Þ   s   r   c                   @  s   e Zd ZdZdZdZdS )r   Zsm3r9   r5   Nr6   r   r   r   r   r   ï   s   r   )Ú
__future__r   r(   Z"cryptography.hazmat.bindings._rustr   Z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>   s2   
