
    d?iy                     r    S SK r S SKJrJr  SSKJrJr  SSKJrJ	r	  SSK
Jr  SSKJrJr  S/r " S	 S5      rg)
    N)AbstractSetOptional   )JWSDecodeErrorJWSEncodeError)AbstractSigningAlgorithmsupported_signing_algorithms)AbstractJWKBase)	b64decode	b64encodeJWSc            
           \ rS rSrSS jrS\S\4S jr   SS\S\	\
   S	\	\\\4      S\4S
 jjrS\S\\\\4   \\\4   4S jr   SS\S\	\
   S\	\\      S\4S jjrSrg)r   &   returnNc                 "    [        5       U l        g )N)r	   _supported_algs)selfs    K/var/www/html/livechat/backend/venv/lib/python3.13/site-packages/jwt/jws.py__init__JWS.__init__(   s    ;=    algc                 T     U R                   U   $ ! [         a    [        S5      ef = f)NUnsupported signing algorithm.)r   KeyErrorr   )r   r   s     r   _retrieve_algJWS._retrieve_alg+   s6    	C'',, 	C !ABB	Cs    'messagekeyoptional_headersc                    X0R                   ;  a  [        SU 35      eU R                  U5      nU(       a  UR                  5       O0 nX6S'   [	        [
        R                  " USS9R                  S5      5      n[	        U5      nUS-   U-   n	UR                  U	R                  S5      U5      n
[	        U
5      nU	S-   U-   $ )Nzunsupported algorithm: r   ),:)
separatorsascii.)	r   r   r   copyr   jsondumpsencodesign)r   r   r   r   r    alg_implheader
header_b64message_b64signing_message	signaturesignature_b64s               r   r*   
JWS.encode1   s     *** #:3%!@AA%%c*,<!&&("uJJv*5<<WE

  ($s*[8MM/"8"8"A3G	!),$}44r   c                     UR                  SS5      u  p#UR                  S5      u  pE[        R
                  " [        U5      R                  S5      5      n[        U5      n[        U5      nXgX4$ ! [         a    [        S5      ef = f)Nr&   r   zmalformed JWS payloadr%   )rsplitsplit
ValueErrorr   r(   loadsr   decode)	r   r   r0   r2   r.   r/   r-   message_binr1   s	            r   _decode_segmentsJWS._decode_segmentsJ   s    	:-4^^C-C*O&5&;&;C&@#J Ij188AB,m,	I>>  	: !899	:s   'A1 1B
algorithmsc                 2   Uc!  [        [        5       R                  5       5      nU R                  U5      u  pVpxUS   n	X;  a  [	        S5      eU R                  U	5      n
U(       a1  U
R                  UR                  S5      X'5      (       d  [	        S5      eU$ )Nr   r   r%   z!JWS passed could not be validated)setr	   keysr;   r   r   verifyr*   )r   r   r   	do_verifyr=   r-   r:   r1   r0   	alg_valuer,   s              r   r9   
JWS.decodeX   s     9;@@BCJ !!'* 	8Y 5M	& !ABB%%i0X__""7+S
 
 !!DEEr   )r   )r   N)NHS256N)NTN)__name__
__module____qualname____firstlineno__r   strr   r   bytesr   r
   dictr*   tupler;   r   r9   __static_attributes__ r   r   r   r   &   s    >C C)A C *.5955 o&5
 #4S>25 
52??	tCH~ueS0	1?" *.15 o&
 [-. 
 r   )r(   typingr   r   
exceptionsr   r   jwar   r	   jwkr
   utilsr   r   __all__r   rO   r   r   <module>rV      s8    
 !
 'J Jr   