
    tf                       d dl mZ d dlZd dlmZ g dZ G d dej                  Z G d d	ej                  Z	ej
        j        Ze	                    e            G d
 dej                  Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d  d!e          Z G d" d#ee          Z G d$ d%ee          Z G d& d'e          Z G d( d)e          Z G d* d+e          Z G 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                      e Zd Zeej        d	d                        Zeej        d
d                        Zeej        dd                        ZdS )r   returnstrc                    dS )zH
        A string naming this algorithm (e.g. "sha256", "md5").
        N selfs    d/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/cryptography/hazmat/primitives/hashes.pynamezHashAlgorithm.name%             intc                    dS )z<
        The size of the resulting digest in bytes.
        Nr   r   s    r!   digest_sizezHashAlgorithm.digest_size,   r#   r$   
int | Nonec                    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   s    r!   
block_sizezHashAlgorithm.block_size3   r#   r$   N)r   r   r   r%   )r   r(   )	__name__
__module____qualname__propertyabcabstractmethodr"   r'   r*   r   r$   r!   r   r   $   s            X
     X
     X  r$   r   )	metaclassc                      e Zd Zeej        dd                        Zej        dd            Zej        dd            Zej        dd	            Z	d
S )r   r   r   c                    dS )zD
        A HashAlgorithm that will be used by this context.
        Nr   r   s    r!   	algorithmzHashContext.algorithm=   r#   r$   databytesNonec                    dS )z@
        Processes the provided bytes through the hash.
        Nr   )r    r6   s     r!   updatezHashContext.updateD   r#   r$   c                    dS )zR
        Finalizes the hash context and returns the hash digest as bytes.
        Nr   r   s    r!   finalizezHashContext.finalizeJ   r#   r$   c                    dS )zM
        Return a HashContext that is a copy of the current context.
        Nr   r   s    r!   copyzHashContext.copyP   r#   r$   N)r   r   )r6   r7   r   r8   )r   r7   )r   r   )
r,   r-   r.   r/   r0   r1   r5   r:   r<   r>   r   r$   r!   r   r   <   s            X
 	   
 	   
 	     r$   r   c                      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$   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   s        DKJJJr$   r   c                      e Zd ZdZdZdZdS )r   z
sha512-224      NrE   r   r$   r!   r   r   g           DKJJJr$   r   c                      e Zd ZdZdZdZdS )r   z
sha512-256    rH   NrE   r   r$   r!   r   r   m   rI   r$   r   c                      e Zd ZdZdZdZdS )r   sha224rG   rD   NrE   r   r$   r!   r   r   s           DKJJJr$   r   c                      e Zd ZdZdZdZdS )r   sha256rK   rD   NrE   r   r$   r!   r   r   y   rN   r$   r   c                      e Zd ZdZdZdZdS )r   sha3840   rH   NrE   r   r$   r!   r   r              DKJJJr$   r   c                      e Zd ZdZdZdZdS )r   sha512rD   rH   NrE   r   r$   r!   r   r      rT   r$   r   c                      e Zd ZdZdZdZdS )r   zsha3-224rG   NrE   r   r$   r!   r   r              DKJJJr$   r   c                      e Zd ZdZdZdZdS )r   zsha3-256rK   NrE   r   r$   r!   r   r      rX   r$   r   c                      e Zd ZdZdZdZdS )r	   zsha3-384rS   NrE   r   r$   r!   r	   r	      rX   r$   r	   c                      e Zd ZdZdZdZdS )r
   zsha3-512rD   NrE   r   r$   r!   r
   r
      rX   r$   r
   c                  6    e Zd ZdZdZddZed	d            ZdS )
r   shake128Nr'   r%   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'   s     r!   __init__zSHAKE128.__init__   I    +s++ 	><===??EFFF'r$   r   c                    | j         S Nre   r   s    r!   r'   zSHAKE128.digest_size         r$   r'   r%   r+   r,   r-   r.   r"   r*   rg   r/   r'   r   r$   r!   r   r      R        DJ( ( ( ( ! ! ! X! ! !r$   r   c                  6    e Zd ZdZdZddZed	d            ZdS )
r   shake256Nr'   r%   c                    t          |t                    st          d          |dk     rt          d          || _        d S r_   ra   rf   s     r!   rg   zSHAKE256.__init__   rh   r$   r   c                    | j         S rj   rk   r   s    r!   r'   zSHAKE256.digest_size   rl   r$   rm   r+   rn   r   r$   r!   r   r      ro   r$   r   c                      e Zd ZdZdZdZdS )r   md5   rD   NrE   r   r$   r!   r   r              DKJJJr$   r   c                  >    e Zd ZdZdZdZdZddZedd	            Z	d
S )r   blake2brD   r`   rH   r'   r%   c                >    |dk    rt          d          || _        d S )NrD   zDigest size must be 64rd   re   rf   s     r!   rg   zBLAKE2b.__init__   *    "5666'r$   r   c                    | j         S rj   rk   r   s    r!   r'   zBLAKE2b.digest_size   rl   r$   Nrm   r+   )
r,   r-   r.   r"   _max_digest_size_min_digest_sizer*   rg   r/   r'   r   r$   r!   r   r      s^        DJ( ( ( ( ! ! ! X! ! !r$   r   c                  >    e Zd ZdZdZdZdZddZedd	            Z	d
S )r   blake2srD   rK   r`   r'   r%   c                >    |dk    rt          d          || _        d S )NrK   zDigest size must be 32r{   rf   s     r!   rg   zBLAKE2s.__init__   r|   r$   r   c                    | j         S rj   rk   r   s    r!   r'   zBLAKE2s.digest_size   rl   r$   Nrm   r+   )
r,   r-   r.   r"   r*   r~   r   rg   r/   r'   r   r$   r!   r   r      s^        DJ( ( ( ( ! ! ! X! ! !r$   r   c                      e Zd ZdZdZdZdS )r   sm3rK   rD   NrE   r   r$   r!   r   r      rw   r$   r   )
__future__r   r0   "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!   <module>r      s  
 # " " " " " 



 F F F F F F  2    ck    0    CK    6    T               =                     ]       ]       ]       ]       }       }       }       }   ! ! ! ! !}6 ! ! !$! ! ! ! !}6 ! ! !$    -   ! ! ! ! !m ! ! !"! ! ! ! !m ! ! !"    -     r$   