
    z%i%                         	 d dl Z	 d dlZej                  Z eej                        Zd dlZ ed  ed      D              Z ed  ed      D              ZdZ G d d      Zd
dZd	 Zy# e$ r dZdZd dl	m
Z Y Sw xY w)    N)_compare_digestc              #   &   K   | ]	  }|d z    yw)\   N .0xs     8/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/hmac.py	<genexpr>r           0!d(0      c              #   &   K   | ]	  }|d z    yw)6   Nr   r   s     r
   r   r      r   r   c                   X    e Zd Z	 dZdZddZd Zd Zed        Z	d Z
d	 Zd
 Zd Zd Zy)HMAC@   )_hmac_inner_outer
block_sizedigest_sizeNc                 n   	 t        |t        t        f      s!t        dt	        |      j
                  z        |st        d      t        r+t        |t        t        f      r	 | j                  |||       y | j                  |||       y # t        j                  $ r | j                  |||       Y y w xY w)Nz,key: expected bytes or bytearray, but got %rz'Missing required parameter 'digestmod'.)
isinstancebytes	bytearray	TypeErrortype__name___hashopensslstr	_functype
_init_hmacUnsupportedDigestmodError	_init_oldselfkeymsg	digestmods       r
   __init__zHMAC.__init__&   s    	 #y12JTRUYM_M__``EFFJy3	2BC4S)4 NN3Y/  99 4sC34s   #B &B43B4c                     t        j                  |||      | _        | j                  j                  | _        | j                  j                  | _        y )N)r*   )r    hmac_newr   r   r   r&   s       r
   r#   zHMAC._init_hmacB   s;    !**3yI
::11**//    c                 b   t              r}nt        t              rd	fd	}nd	fd	}d | _         |       | _         |       | _        | j
                  j                  | _        t        | j
                  d      rR| j
                  j                  }|dk  rkt        j                  d|| j                  fz  t        d       | j                  }n4t        j                  d| j                  z  t        d       | j                  }t        |      |kD  r ||      j                         }|| _        |j                  |d      }| j                  j!                  |j#                  t$                     | j
                  j!                  |j#                  t&                     || j!                  |       y y )
Nc                 0    t        j                  |       S N_hashlibnewdr*   s    r
   <lambda>z HMAC._init_old.<locals>.<lambda>K   s    Y(B r.   c                 &    j                  |       S r1   r4   r5   s    r
   r7   z HMAC._init_old.<locals>.<lambda>M   s    	a(8 r.   r      z:block_size of %d seems too small; using our default of %d.   z<No block_size attribute on given digest object; Assuming %d.    r.   )callabler   r!   r   r   r   r   hasattrr   	_warningswarn	blocksizeRuntimeWarninglendigestljustupdate	translatetrans_5Ctrans_36)r'   r(   r)   r*   digest_consrB   s      `  r
   r%   zHMAC._init_oldG   sW   I#K	3'BK8K
!m!m;;224;;-..I2~  03<dnn2M N-q2 !NN	NN *-1^^=)1. Is8ic"))+C $ii	5)3==233==23?KK r.   c                 x    | j                   r| j                   j                  S d| j                  j                   S )Nzhmac-)r   namer   )r'   s    r
   rM   z	HMAC.namen   s/    ::::??"4;;++,--r.   c                 \    	 | j                   xs | j                  }|j                  |       y r1   )r   r   rG   )r'   r)   insts      r
   rG   zHMAC.updateu   s#    :zz(T[[Cr.   c                 t   	 | j                   j                  | j                         }| j                  |_        | j                  r/| j                  j	                         |_        d x|_        |_        |S d |_        | j
                  j	                         |_        | j                  j	                         |_        |S r1   )	__class____new__r   r   copyr   r   )r'   others     r
   rS   z	HMAC.copyz   s    	
 &&t~~6 ,,::**//+EK*..EL5<
  EK;;++-EL;;++-ELr.   c                     	 | j                   r| j                   S | j                  j                         }|j                  | j                  j                                |S r1   )r   r   rS   rG   r   rE   r'   hs     r
   _currentzHMAC._current   sJ    	 ::::  "AHHT[['')*Hr.   c                 D    	 | j                         }|j                         S r1   )rX   rE   rV   s     r
   rE   zHMAC.digest   s     	 MMOxxzr.   c                 D    	 | j                         }|j                         S r1   )rX   	hexdigestrV   s     r
   r[   zHMAC.hexdigest   s    	MMO{{}r.   N )r   
__module____qualname__rB   	__slots__r+   r#   r%   propertyrM   rG   rS   rX   rE   r[   r   r.   r
   r   r      sR     II080
%N . .
"
r.   r   c                     	 t        | ||      S r1   )r   )r(   r)   r*   s      r
   r4   r4      s      S)$$r.   c                    	 t         .t        t        t        f      r	 t        j                  | |      S t              r}nt        t              rdfd	}ndfd	} |       } |       }t        |dd      }t        |       |kD  r ||       j                         } | d|t        |       z
  z  z   } |j                  | j                  t                     |j                  | j                  t                     |j                  |       |j                  |j                                |j                         S # t         j
                  $ r Y w xY w)Nc                 0    t        j                  |       S r1   r2   r6   rE   s    r
   r7   zdigest.<locals>.<lambda>   s    HLL$; r.   c                 &    j                  |       S r1   r9   re   s    r
   r7   zdigest.<locals>.<lambda>   s    FJJqM r.   r   r   r<   r=   )r    r   r!   r"   hmac_digestr$   r>   getattrrD   rE   rG   rH   rJ   rI   )r(   r)   rE   rK   innerouterrB   s     `    r
   rE   rE      s    JvY7G$H	++Cf== 	FC	 ;1MEME|R0I
3x)#%%'
9s3x/0
0C	LLx()	LLx()	LL	LL <<>) 55 		s   D= =EEr\   )warningsr@   r3   r    compare_digestr   openssl_sha256r"   ImportError	_operatorr   hashlibr   rangerI   rJ   r   r   r4   rE   r   r.   r
   <module>rr      s   
 2# "00N\001I 0U3Z000U3Z00 J JX%( e  <LI;<s   A+ +A=<A=