
    ӝgh@                       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j                  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!y)/    )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y)r   c                     y)zH
        A string naming this algorithm (e.g. "sha256", "md5").
        N selfs    i/var/www/enzed_healthcare/enzed_env/lib/python3.12/site-packages/cryptography/hazmat/primitives/hashes.pynamezHashAlgorithm.name'           c                     y)z<
        The size of the resulting digest in bytes.
        Nr   r   s    r!   digest_sizezHashAlgorithm.digest_size.   r#   r$   c                     y)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)returnstrr)   int)r)   z
int | None)	__name__
__module____qualname__propertyabcabstractmethodr"   r&   r(   r   r$   r!   r   r   &   sf      
   
   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	y)
r   c                     y)zD
        A HashAlgorithm that will be used by this context.
        Nr   r   s    r!   	algorithmzHashContext.algorithm?   r#   r$   c                     y)z@
        Processes the provided bytes through the hash.
        Nr   )r    datas     r!   updatezHashContext.updateF   r#   r$   c                     y)zR
        Finalizes the hash context and returns the hash digest as bytes.
        Nr   r   s    r!   finalizezHashContext.finalizeL   r#   r$   c                     y)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)   None)r)   bytes)r)   r   )
r-   r.   r/   r0   r1   r2   r6   r9   r;   r=   r   r$   r!   r   r   >   sp      
 	 
 	 
 	 r$   r   c                      e Zd ZdZy)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y)r   sha1   @   Nr-   r.   r/   r"   r&   r(   r   r$   r!   r   r   e   s    DKJr$   r   c                      e Zd ZdZdZdZy)r   z
sha512-224      NrF   r   r$   r!   r   r   k       DKJr$   r   c                      e Zd ZdZdZdZy)r   z
sha512-256    rI   NrF   r   r$   r!   r   r   q   rJ   r$   r   c                      e Zd ZdZdZdZy)r   sha224rH   rE   NrF   r   r$   r!   r   r   w       DKJr$   r   c                      e Zd ZdZdZdZy)r   sha256rL   rE   NrF   r   r$   r!   r   r   }   rO   r$   r   c                      e Zd ZdZdZdZy)r   sha3840   rI   NrF   r   r$   r!   r   r          DKJr$   r   c                      e Zd ZdZdZdZy)r   sha512rE   rI   NrF   r   r$   r!   r   r      rU   r$   r   c                      e Zd ZdZdZdZy)r   zsha3-224rH   NrF   r   r$   r!   r   r          DKJr$   r   c                      e Zd ZdZdZdZy)r	   zsha3-256rL   NrF   r   r$   r!   r	   r	      rY   r$   r	   c                      e Zd ZdZdZdZy)r
   zsha3-384rT   NrF   r   r$   r!   r
   r
      rY   r$   r
   c                      e Zd ZdZdZdZy)r   zsha3-512rE   NrF   r   r$   r!   r   r      rY   r$   r   c                  .    e Zd ZdZdZddZedd       Zy)r   shake128Nc                h    t        |t              st        d      |dk  rt        d      || _        y 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__   3    +s+<==?EFF'r$   c                    | j                   S Nrf   r   s    r!   r&   zSHAKE128.digest_size          r$   r&   r,   r+   r-   r.   r/   r"   r(   rh   r0   r&   r   r$   r!   r   r      %    DJ( ! !r$   r   c                  .    e Zd ZdZdZddZedd       Zy)r   shake256Nc                h    t        |t              st        d      |dk  rt        d      || _        y r`   rb   rg   s     r!   rh   zSHAKE256.__init__   ri   r$   c                    | j                   S rk   rl   r   s    r!   r&   zSHAKE256.digest_size   rm   r$   rn   r+   ro   r   r$   r!   r   r      rp   r$   r   c                      e Zd ZdZdZdZy)r   md5   rE   NrF   r   r$   r!   r   r          DKJr$   r   c                  6    e Zd ZdZdZdZdZddZed	d       Z	y)
r   blake2brE   ra   rI   c                2    |dk7  rt        d      || _        y )NrE   zDigest size must be 64re   rf   rg   s     r!   rh   zBLAKE2b.__init__       "566'r$   c                    | j                   S rk   rl   r   s    r!   r&   zBLAKE2b.digest_size   rm   r$   Nrn   r+   )
r-   r.   r/   r"   _max_digest_size_min_digest_sizer(   rh   r0   r&   r   r$   r!   r   r      s1    DJ( ! !r$   r   c                  6    e Zd ZdZdZdZdZddZed	d       Z	y)
r   blake2srE   rL   ra   c                2    |dk7  rt        d      || _        y )NrL   zDigest size must be 32r|   rg   s     r!   rh   zBLAKE2s.__init__   r}   r$   c                    | j                   S rk   rl   r   s    r!   r&   zBLAKE2s.digest_size   rm   r$   Nrn   r+   )
r-   r.   r/   r"   r(   r   r   rh   r0   r&   r   r$   r!   r   r      s1    DJ( ! !r$   r   c                      e Zd ZdZdZdZy)r   sm3rL   rE   NrF   r   r$   r!   r   r      rx   r$   r   )"
__future__r   r1   "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      sN  
 # 
 F %4ckk 0CKK 6    T 



%
% =   ] ] ] ] } } } } !}6 !$!}6 !$- !m !"!m !"- r$   