
    (ph@                       S SK Jr  S SKrS SKJr  S SKJr  / SQr " S S\R                  S9r
 " S	 S
\R                  S9r\R                  R                  r\R                  \5        \R                  R                  r " S S\R                  S9r " S S\
5      r " S S\
5      r " S S\
5      r " S S\
5      r " S S\
5      r " S S\
5      r " S S\
5      r " S S\
5      r " S S\
5      r " S S \
5      r " S! S"\
5      r " S# S$\
\5      r " S% S&\
\5      r " S' S(\
5      r " S) S*\
5      r " S+ S,\
5      r  " S- S.\
5      r!g)/    )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                      \ rS rSr\\R                  SS j5       5       r\\R                  SS j5       5       r\\R                  S	S j5       5       r	Sr
g)
r   &   c                    g)z8
A string naming this algorithm (e.g. "sha256", "md5").
N selfs    X/var/www/html/venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/hashes.pynameHashAlgorithm.name'           c                    g)z,
The size of the resulting digest in bytes.
Nr   r    s    r"   digest_sizeHashAlgorithm.digest_size.   r%   r&   c                    g)zx
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_sizeHashAlgorithm.block_size5   r%   r&   r   N)returnstrr-   int)r-   z
int | None)__name__
__module____qualname____firstlineno__propertyabcabstractmethodr#   r(   r+   __static_attributes__r   r&   r"   r   r   &   sf      
   
   r&   r   )	metaclassc                      \ rS rSr\\R                  SS j5       5       r\R                  S	S j5       r\R                  S
S j5       r	\R                  SS j5       r
Srg)r   >   c                    g)z4
A HashAlgorithm that will be used by this context.
Nr   r    s    r"   	algorithmHashContext.algorithm?   r%   r&   c                    g)z0
Processes the provided bytes through the hash.
Nr   )r!   datas     r"   updateHashContext.updateF   r%   r&   c                    g)zB
Finalizes the hash context and returns the hash digest as bytes.
Nr   r    s    r"   finalizeHashContext.finalizeL   r%   r&   c                    g)z=
Return a HashContext that is a copy of the current context.
Nr   r    s    r"   copyHashContext.copyR   r%   r&   r   N)r-   r   )r@   r   r-   None)r-   bytes)r-   r   )r1   r2   r3   r4   r5   r6   r7   r=   rA   rD   rG   r8   r   r&   r"   r   r   >   sp      
 	 
 	 
 	 r&   r   c                      \ rS rSrSrSrg)r   _   z/
An interface for extendable output functions.
r   N)r1   r2   r3   r4   __doc__r8   r   r&   r"   r   r   _   s    r&   r   c                       \ rS rSrSrSrSrSrg)r   e   sha1   @   r   Nr1   r2   r3   r4   r#   r(   r+   r8   r   r&   r"   r   r   e   s    DKJr&   r   c                       \ rS rSrSrSrSrSrg)r   k   z
sha512-224      r   NrS   r   r&   r"   r   r   k       DKJr&   r   c                       \ rS rSrSrSrSrSrg)r   q   z
sha512-256    rW   r   NrS   r   r&   r"   r   r   q   rX   r&   r   c                       \ rS rSrSrSrSrSrg)r   w   sha224rV   rR   r   NrS   r   r&   r"   r   r   w       DKJr&   r   c                       \ rS rSrSrSrSrSrg)r   }   sha256r[   rR   r   NrS   r   r&   r"   r   r   }   r_   r&   r   c                       \ rS rSrSrSrSrSrg)r      sha3840   rW   r   NrS   r   r&   r"   r   r          DKJr&   r   c                       \ rS rSrSrSrSrSrg)r      sha512rR   rW   r   NrS   r   r&   r"   r   r      rg   r&   r   c                       \ rS rSrSrSrSrSrg)r      zsha3-224rV   Nr   rS   r   r&   r"   r   r          DKJr&   r   c                       \ rS rSrSrSrSrSrg)r	      zsha3-256r[   Nr   rS   r   r&   r"   r	   r	      rm   r&   r	   c                       \ rS rSrSrSrSrSrg)r
      zsha3-384rf   Nr   rS   r   r&   r"   r
   r
      rm   r&   r
   c                       \ rS rSrSrSrSrSrg)r      zsha3-512rR   Nr   rS   r   r&   r"   r   r      rm   r&   r   c                  :    \ rS rSrSrSrSS jr\SS j5       rSr	g)	r      shake128Nc                r    [        U[        5      (       d  [        S5      eUS:  a  [        S5      eXl        g Nzdigest_size must be an integer   z&digest_size must be a positive integer
isinstancer0   	TypeError
ValueError_digest_sizer!   r(   s     r"   __init__SHAKE128.__init__   4    +s++<==?EFF'r&   c                    U R                   $ Nr~   r    s    r"   r(   SHAKE128.digest_size          r&   r   r(   r0   r/   
r1   r2   r3   r4   r#   r+   r   r5   r(   r8   r   r&   r"   r   r      %    DJ( ! !r&   r   c                  :    \ rS rSrSrSrSS jr\SS j5       rSr	g)	r      shake256Nc                r    [        U[        5      (       d  [        S5      eUS:  a  [        S5      eXl        g rx   rz   r   s     r"   r   SHAKE256.__init__   r   r&   c                    U R                   $ r   r   r    s    r"   r(   SHAKE256.digest_size   r   r&   r   r   r/   r   r   r&   r"   r   r      r   r&   r   c                       \ rS rSrSrSrSrSrg)r      md5   rR   r   NrS   r   r&   r"   r   r          DKJr&   r   c                  B    \ rS rSrSrSrSrSrS
S jr\	SS j5       r
Srg	)r      blake2brR   ry   rW   c                2    US:w  a  [        S5      eXl        g )NrR   zDigest size must be 64r}   r~   r   s     r"   r   BLAKE2b.__init__       "566'r&   c                    U R                   $ r   r   r    s    r"   r(   BLAKE2b.digest_size   r   r&   r   Nr   r/   )r1   r2   r3   r4   r#   _max_digest_size_min_digest_sizer+   r   r5   r(   r8   r   r&   r"   r   r      s1    DJ( ! !r&   r   c                  B    \ rS rSrSrSrSrSrS
S jr\	SS j5       r
Srg	)r      blake2srR   r[   ry   c                2    US:w  a  [        S5      eXl        g )Nr[   zDigest size must be 32r   r   s     r"   r   BLAKE2s.__init__   r   r&   c                    U R                   $ r   r   r    s    r"   r(   BLAKE2s.digest_size   r   r&   r   Nr   r/   )r1   r2   r3   r4   r#   r+   r   r   r   r5   r(   r8   r   r&   r"   r   r      s1    DJ( ! !r&   r   c                       \ rS rSrSrSrSrSrg)r      sm3r[   rR   r   NrS   r   r&   r"   r   r      r   r&   r   )"
__future__r   r6   "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&   