
    d?i                        S SK r S SKrS SKJrJrJr  S SKJr  S SKJ	r	J
r
Jr  SSKJr  SSKJr  S\S	\\/\4   4S
 jr " S S5      r " S S\5      r\" 5       r " S S\5      r\" \ R0                  5      r\" \ R4                  5      r\" \ R8                  5      r " S S\5      r\" \	5      r\" \
5      r \" \5      r! " S S\5      r"\"" \	5      r#\"" \
5      r$\"" \5      r%S	\&\\4   4S jr'g)    N)AnyCallableOptional)padding)SHA256SHA384SHA512   )InvalidKeyTypeError)AbstractJWKBasealgreturnc                    U R                  S5      (       a  [        R                  $ U R                  S5      (       a  [        R                  $ U R                  S5      (       a  [        R                  $ [        U  S35      e)NS256S384S512z is not supported)endswithhashlibsha256sha384sha512
ValueError)r   s    K/var/www/html/livechat/backend/venv/lib/python3.13/site-packages/jwt/jwa.pystd_hash_by_algr   "   s`    
||F~~
||F~~
||F~~
u-.
//    c                   P    \ rS rSrS\S\\   S\4S jrS\S\\   S\S\4S jr	Sr
g	)
AbstractSigningAlgorithm,   messagekeyr   c                     [        5       eNNotImplementedErrorselfr   r    s      r   signAbstractSigningAlgorithm.sign.   s    !##r   	signaturec                     [        5       er"   r#   r&   r   r    r)   s       r   verifyAbstractSigningAlgorithm.verify1   s     "##r    N__name__
__module____qualname____firstlineno__bytesr   r   r'   boolr,   __static_attributes__r.   r   r   r   r   ,   sQ    $E $(A $e $$$ o&$ 	$
 
$r   r   c                   P    \ rS rSrS\S\\   S\4S jrS\S\\   S\S\4S jr	Sr
g	)
NoneAlgorithm:   r   r    r   c                     gNr   r.   r%   s      r   r'   NoneAlgorithm.sign<   s    r   r)   c                 0    [         R                  " US5      $ r;   )hmaccompare_digestr+   s       r   r,   NoneAlgorithm.verify?   s     ""9c22r   r.   Nr/   r.   r   r   r8   r8   :   sQ    E (A e 33 o&3 	3
 
3r   r8   c                       \ rS rSrS\/ \4   SS4S jrS\\   S\4S jr	S\
S\
S\
4S	 jrS\
S\\   S\
4S
 jrS\
S\\   S\
S\4S jrSrg)HMACAlgorithmK   hash_funr   Nc                     Xl         g r"   rD   r&   rD   s     r   __init__HMACAlgorithm.__init__M        r   r    c                 R    U(       a  UR                  5       S:w  a  [        S5      eU$ )NoctzOctet key is required)get_ktyr   )r&   r    s     r   
_check_keyHMACAlgorithm._check_keyP   s#    ckkmu,%&=>>
r   r   c                 `    [         R                  " X!U R                  5      R                  5       $ r"   )r>   newrD   digestr%   s      r   _signHMACAlgorithm._signU   s     xxdmm4;;==r   c                 V    U R                  U5      nUR                  XR                  S9$ N)signer)rN   r'   rS   r%   s      r   r'   HMACAlgorithm.signX   s%    ooc"xx

x33r   r)   c                 X    U R                  U5      nUR                  XU R                  S9$ rV   )rN   r,   rS   r+   s       r   r,   HMACAlgorithm.verify\   s)     ooc"zz'TZZz@@r   rF   )r0   r1   r2   r3   r   r   rH   r   r   rN   r4   rS   r'   r5   r,   r6   r.   r   r   rB   rB   K   s    !"c'!2 !t !h7 O 
>U > >5 >4E 4(A 4e 4AA o&A 	A
 
Ar   rB   c                       \ rS rSrS\SS4S jr SS\\   S\S\4S jjr	S	\
S\\   S\
4S
 jrS	\
S\\   S\
S\4S jrSrg)RSAAlgorithmk   rD   r   Nc                     Xl         g r"   rF   rG   s     r   rH   RSAAlgorithm.__init__m   rJ   r   r    must_sign_keyc                     U(       a  UR                  5       S:w  a  [        S5      eU(       a   UR                  5       (       d  [        S5      eU$ NRSAzRSA key is requiredz;a RSA private key is required, but passed is RSA public keyrM   r   is_sign_keyr&   r    r`   s      r   rN   RSAAlgorithm._check_keyp   F    
 ckkmu,%&;<<!2!2%M  
r   r   c                 |    U R                  USS9nUR                  XR                  [        R                  " 5       S9$ )NTr`   rD   r   )rN   r'   rD   r   PKCS1v15r%   s      r   r'   RSAAlgorithm.sign}   s<    ooco6xxmmW5E5E5G  
 	
r   r)   c                     U R                  U5      nUR                  UUU R                  [        R                  " 5       S9$ )Nrk   )rN   r,   rD   r   rl   r+   s       r   r,   RSAAlgorithm.verify   sA     ooc"zz]]$$&	  
 	
r   rF   F)r0   r1   r2   r3   objectrH   r   r   r5   rN   r4   r'   r,   r6   r.   r   r   r\   r\   k   s    ! !D ! $o&  
	
E 
(A 
e 


 o&
 	

 

r   r\   c                       \ rS rSrS\/ \4   SS4S jr SS\\   S\	S\4S jjr
S	\S\\   S\4S
 jrS	\S\\   S\S\	4S jrSrg)PSSRSAAlgorithm   rD   r   Nc                     Xl         g r"   rF   rG   s     r   rH   PSSRSAAlgorithm.__init__   rJ   r   r    r`   c                     U(       a  UR                  5       S:w  a  [        S5      eU(       a   UR                  5       (       d  [        S5      eU$ rb   rd   rf   s      r   rN   PSSRSAAlgorithm._check_key   rh   r   r   c           
          U R                  USS9nUR                  UU R                  [        R                  " [        R
                  " U R                  5       5      U R                  5       R                  S9S9$ )NTrj   mgfsalt_lengthrk   )rN   r'   rD   r   PSSMGF1digest_sizer%   s      r   r'   PSSRSAAlgorithm.sign   sa    ooco6xx]]KKLL1 MMO77  
 	
r   r)   c                     U R                  U5      nUR                  UUU R                  [        R                  " [        R
                  " U R                  5       5      U R                  5       R                  S9S9$ )Nrz   rk   )rN   r,   rD   r   r}   r~   r   r+   s       r   r,   PSSRSAAlgorithm.verify   sb     ooc"zz]]KKLL1 MMO77	  
 	
r   rF   rp   )r0   r1   r2   r3   r   r   rH   r   r   r5   rN   r4   r'   r,   r6   r.   r   r   rs   rs      s    !"c'!2 !t ! $o&  
		
E 	
(A 	
e 	


 o&
 	

 

r   rs   c            
      b    [         [        [        [        [        [
        [        [        [        S.	$ )N	HS256HS384HS512RS256RS384RS512PS256PS384PS512r   r.   r   r   supported_signing_algorithmsr      s)     
 
r   )(r   r>   typingr   r   r   )cryptography.hazmat.primitives.asymmetricr   %cryptography.hazmat.primitives.hashesr   r   r	   
exceptionsr   jwkr   strr4   rq   r   r   r8   nonerB   r   r   r   r   r   r   r\   r   r   r   rs   r   r   r   dictr   r.   r   r   <module>r      s      >  ,  0 05'6/!: 0$ $3, 3 A, A6 	gnn%gnn%gnn%$
+ $
N 	VVV+
. +
\ 	d30H+H&I r   