
    .Ph@                       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ej	                  Z
 G d	 d
ej	                  Zej        j        Ze                    e           ej        j        Z 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)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                      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    e/var/www/html/test/jupyter/venv/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_size5   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&   datar   Nonec                    dS )z@
        Processes the provided bytes through the hash.
        Nr    )r"   r8   s     r#   updatezHashContext.updateF   r%   r&   bytesc                    dS )zR
        Finalizes the hash context and returns the hash digest as bytes.
        Nr    r!   s    r#   finalizezHashContext.finalizeL   r%   r&   c                    dS )zM
        Return a HashContext that is a copy of the current context.
        Nr    r!   s    r#   copyzHashContext.copyR   r%   r&   N)r   r   )r8   r   r   r9   )r   r<   )r   r   )
r.   r/   r0   r1   r2   r3   r7   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/   r0   __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/   r0   r$   r)   r,   r    r&   r#   r   r   e   s        DKJJJr&   r   c                      e Zd ZdZdZdZdS )r   z
sha512-224      NrG   r    r&   r#   r   r   k           DKJJJr&   r   c                      e Zd ZdZdZdZdS )r   z
sha512-256    rJ   NrG   r    r&   r#   r   r   q   rK   r&   r   c                      e Zd ZdZdZdZdS )r   sha224rI   rF   NrG   r    r&   r#   r   r   w           DKJJJr&   r   c                      e Zd ZdZdZdZdS )r   sha256rM   rF   NrG   r    r&   r#   r   r   }   rP   r&   r   c                      e Zd ZdZdZdZdS )r   sha3840   rJ   NrG   r    r&   r#   r   r              DKJJJr&   r   c                      e Zd ZdZdZdZdS )r   sha512rF   rJ   NrG   r    r&   r#   r   r      rV   r&   r   c                      e Zd ZdZdZdZdS )r   zsha3-224rI   NrG   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-256rM   NrG   r    r&   r#   r	   r	      rZ   r&   r	   c                      e Zd ZdZdZdZdS )r
   zsha3-384rU   NrG   r    r&   r#   r
   r
      rZ   r&   r
   c                      e Zd ZdZdZdZdS )r   zsha3-512rF   NrG   r    r&   r#   r   r      rZ   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rg   r!   s    r#   r)   zSHAKE128.digest_size         r&   r)   r'   r-   r.   r/   r0   r$   r,   ri   r1   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 ra   rc   rh   s     r#   ri   zSHAKE256.__init__   rj   r&   r   c                    | j         S rl   rm   r!   s    r#   r)   zSHAKE256.digest_size   rn   r&   ro   r-   rp   r    r&   r#   r   r      rq   r&   r   c                      e Zd ZdZdZdZdS )r   md5   rF   NrG   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   blake2brF   rb   rJ   r)   r'   c                >    |dk    rt          d          || _        d S )NrF   zDigest size must be 64rf   rg   rh   s     r#   ri   zBLAKE2b.__init__   *    "5666'r&   r   c                    | j         S rl   rm   r!   s    r#   r)   zBLAKE2b.digest_size   rn   r&   Nro   r-   )
r.   r/   r0   r$   _max_digest_size_min_digest_sizer,   ri   r1   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   blake2srF   rM   rb   r)   r'   c                >    |dk    rt          d          || _        d S )NrM   zDigest size must be 32r}   rh   s     r#   ri   zBLAKE2s.__init__   r~   r&   r   c                    | j         S rl   rm   r!   s    r#   r)   zBLAKE2s.digest_size   rn   r&   Nro   r-   )
r.   r/   r0   r$   r,   r   r   ri   r1   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   sm3rM   rF   NrG   r    r&   r#   r   r      ry   r&   r   )"
__future__r   r2   "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#   <module>r      s  
 # " " " " " 



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