
    @wj                       d dl mZ d dl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    c/root/dashboard-youtube/.venv/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_size6   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.updateG   r#   r$   c                     y)zR
        Finalizes the hash context and returns the hash digest as bytes.
        Nr   r   s    r!   finalizezHashContext.finalizeM   r#   r$   c                     y)zM
        Return a HashContext that is a copy of the current context.
        Nr   r   s    r!   copyzHashContext.copyS   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ddZy)r   sha1   @   c                0    t        |t              st        S yNT)
isinstancer   NotImplementedr    others     r!   __eq__zSHA1.__eq__k   s    %&!!r$   NrK   objectr)   boolr-   r.   r/   r"   r&   r(   rL   r   r$   r!   r   r   f   s    DKJr$   r   c                       e Zd ZdZdZdZddZy)r   z
sha512-224      c                0    t        |t              st        S yrG   )rH   r   rI   rJ   s     r!   rL   zSHA512_224.__eq__w       %,!!r$   NrM   rP   r   r$   r!   r   r   r       DKJr$   r   c                       e Zd ZdZdZdZddZy)r   z
sha512-256    rS   c                0    t        |t              st        S yrG   )rH   r   rI   rJ   s     r!   rL   zSHA512_256.__eq__   rU   r$   NrM   rP   r   r$   r!   r   r   ~   rV   r$   r   c                       e Zd ZdZdZdZddZy)r   sha224rR   rE   c                0    t        |t              st        S yrG   )rH   r   rI   rJ   s     r!   rL   zSHA224.__eq__       %(!!r$   NrM   rP   r   r$   r!   r   r          DKJr$   r   c                       e Zd ZdZdZdZddZy)r   sha256rX   rE   c                0    t        |t              st        S yrG   )rH   r   rI   rJ   s     r!   rL   zSHA256.__eq__   r]   r$   NrM   rP   r   r$   r!   r   r      r^   r$   r   c                       e Zd ZdZdZdZddZy)r   sha3840   rS   c                0    t        |t              st        S yrG   )rH   r   rI   rJ   s     r!   rL   zSHA384.__eq__   r]   r$   NrM   rP   r   r$   r!   r   r          DKJr$   r   c                       e Zd ZdZdZdZddZy)r   sha512rE   rS   c                0    t        |t              st        S yrG   )rH   r   rI   rJ   s     r!   rL   zSHA512.__eq__   r]   r$   NrM   rP   r   r$   r!   r   r      rf   r$   r   c                       e Zd ZdZdZdZddZy)r   zsha3-224rR   Nc                0    t        |t              st        S yrG   )rH   r   rI   rJ   s     r!   rL   zSHA3_224.__eq__       %*!!r$   rM   rP   r   r$   r!   r   r          DKJr$   r   c                       e Zd ZdZdZdZddZy)r	   zsha3-256rX   Nc                0    t        |t              st        S yrG   )rH   r	   rI   rJ   s     r!   rL   zSHA3_256.__eq__   rl   r$   rM   rP   r   r$   r!   r	   r	      rm   r$   r	   c                       e Zd ZdZdZdZddZy)r
   zsha3-384rd   Nc                0    t        |t              st        S yrG   )rH   r
   rI   rJ   s     r!   rL   zSHA3_384.__eq__   rl   r$   rM   rP   r   r$   r!   r
   r
      rm   r$   r
   c                       e Zd ZdZdZdZddZy)r   zsha3-512rE   Nc                0    t        |t              st        S yrG   )rH   r   rI   rJ   s     r!   rL   zSHA3_512.__eq__   rl   r$   rM   rP   r   r$   r!   r   r      rm   r$   r   c                  F    e Zd ZdZdZddZddZed	d       Ze	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rH   r,   	TypeError
ValueError_digest_sizer    r&   s     r!   __init__zSHAKE128.__init__   3    +s+<==?EFF'r$   c                `    t        |t              st        S | j                  |j                  k(  S N)rH   r   rI   r|   rJ   s     r!   rL   zSHAKE128.__eq__   )    %*!!  E$6$666r$   c                    | j                   S r   r|   r   s    r!   r&   zSHAKE128.digest_size          r$   c                .     | t         j                        S r   sysmaxsizeclss    r!   xofzSHAKE128.xof      3;;r$   r&   r,   rM   r+   r-   r.   r/   r"   r(   r~   rL   r0   r&   classmethodr   r   r$   r!   r   r      >    DJ(7 ! !    r$   r   c                  F    e Zd ZdZdZddZddZed	d       Ze	d        Z
y)
r   shake256Nc                h    t        |t              st        d      |dk  rt        d      || _        y rw   ry   r}   s     r!   r~   zSHAKE256.__init__
  r   r$   c                `    t        |t              st        S | j                  |j                  k(  S r   )rH   r   rI   r|   rJ   s     r!   rL   zSHAKE256.__eq__  r   r$   c                    | j                   S r   r   r   s    r!   r&   zSHAKE256.digest_size  r   r$   c                .     | t         j                        S r   r   r   s    r!   r   zSHAKE256.xof  r   r$   r   rM   r+   r   r   r$   r!   r   r     r   r$   r   c                       e Zd ZdZdZdZddZy)r   md5   rE   c                0    t        |t              st        S yrG   )rH   r   rI   rJ   s     r!   rL   z
MD5.__eq__'      %%!!r$   NrM   rP   r   r$   r!   r   r   "      DKJr$   r   c                  >    e Zd ZdZdZdZdZd	dZd
dZe	dd       Z
y)r   blake2brE   rx   rS   c                2    |dk7  rt        d      || _        y )NrE   zDigest size must be 64r{   r|   r}   s     r!   r~   zBLAKE2b.__init__4      "566'r$   c                `    t        |t              st        S | j                  |j                  k(  S r   )rH   r   rI   r|   rJ   s     r!   rL   zBLAKE2b.__eq__:  )    %)!!  E$6$666r$   c                    | j                   S r   r   r   s    r!   r&   zBLAKE2b.digest_size@  r   r$   Nr   rM   r+   )r-   r.   r/   r"   _max_digest_size_min_digest_sizer(   r~   rL   r0   r&   r   r$   r!   r   r   .  s6    DJ(7 ! !r$   r   c                  >    e Zd ZdZdZdZdZd	dZd
dZe	dd       Z
y)r   blake2srE   rX   rx   c                2    |dk7  rt        d      || _        y )NrX   zDigest size must be 32r   r}   s     r!   r~   zBLAKE2s.__init__K  r   r$   c                `    t        |t              st        S | j                  |j                  k(  S r   )rH   r   rI   r|   rJ   s     r!   rL   zBLAKE2s.__eq__Q  r   r$   c                    | j                   S r   r   r   s    r!   r&   zBLAKE2s.digest_sizeW  r   r$   Nr   rM   r+   )r-   r.   r/   r"   r(   r   r   r~   rL   r0   r&   r   r$   r!   r   r   E  s6    DJ(7 ! !r$   r   c                       e Zd ZdZdZdZddZy)r   sm3rX   rE   c                0    t        |t              st        S yrG   )rH   r   rI   rJ   s     r!   rL   z
SM3.__eq__a  r   r$   NrM   rP   r   r$   r!   r   r   \  r   r$   r   )#
__future__r   r1   r   "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      sQ  
 # 
 
 F %4ckk 0CKK 6    T 



%
% 	= 		 		 		] 		] 		] 		] 		} 		} 		} 		} 	 }6  8 }6  8	- 	!m !.!m !.	- 	r$   