a
    ϏPf                     @  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                   @  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   f/var/www/html/python-backend/venv/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   sha3840   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   
