
    kKj=                        d dl Z d dlmZmZ ddlmZmZmZ ddlm	Z	m
Z
mZ ddlmZ ddlmZ dd	lmZmZmZmZmZ dd
lmZ g dZeegef   Zdee   dededede
f
dZdededededef
dZdedededede	f
dZde
dedefdZde	dedefdZdededede fdZ!dededede fdZ"dede	dededede fdZ#de$e%ef   de$e%ef   fdZ&y)     N)AnyCallable   )HeaderMemberGeneralJSONSignatureFlattenedJSONSignature)JSONSignatureDictGeneralJSONSerializationFlattenedJSONSerialization)JWSRegistry   )reject_unprotected_crit_header)to_bytesjson_b64encodejson_b64decodeurlsafe_b64encodeurlsafe_b64decode)DecodeError)FindKeysign_general_jsonsign_flattened_jsonsign_json_memberextract_general_jsonverify_general_jsonverify_flattened_jsondetach_json_contentmemberspayloadregistryfind_keyreturnc           	          t        |      }| D cg c]  }t        ||||       }}|j                  d      |dS c c}w )Nutf-8)r   
signaturesr   r   decode)r   r   r   r    payload_segmentmemberr$   s          f/Users/ahmed/devFolder/Ultron/claude-voice/.venv/lib/python3.12/site-packages/joserfc/_rfc7515/json.pyr   r   &   sY     (0OT[+T[&&(HET[  + #))'2  +s   ;r(   c                 b    t        |      }t        || ||      }d|j                  d      i|}|S )Nr   r#   r%   )r(   r   r   r    r'   	signaturedatas          r)   r   r   6   s>     (0O &(HMI(1?3I3I'3R'`V_'`DK    r'   c                    t        |j                         |j                         }|j                  |       |j	                  |d         } ||      }|j                  |       |j                  rt        |j                        }nd}dj                  || g      }t        |j                  ||            }	d|	j                  d      i}
|j                  r|j                  d      |
d<   |j                  r|j                  |
d<   |
S )Nalgr-      .r+   r#   	protectedheader)r   r2   headerscheck_headerget_alg	check_keyr1   r   joinr   signr&   )r'   r(   r   r    r3   r/   keyprotected_segmentsigning_inputr+   rvs              r)   r   r   B   s     #6==1nnG'"


75>
*C
6
CMM#*6+;+;<II0/BCM!#((=#">?I()*:*:7*CDB+227;;}}}}8Ir-   valuec                 "   | d   j                  d      }|j                  |       	 t        |      }| d   }|D cg c]  }t        ||       }}t        ||      }||_        d|i|_	        |S # t        t        f$ r t        d      w xY wc c}w )Nr   r#   zInvalid payloadr$   )
encodevalidate_payload_sizer   	TypeError
ValueErrorr   __signature_to_memberr   r$   segments)r=   r   r'   r   r$   sigr   objs           r)   r   r   Y   s    "9-44W=O""?3-#O4 +0*=J?IJz$S(3zGJ
w
0CCN/CLJ z" -+,,- Ks   A. B.B	rE   c                     t               }d| v r/t        | d         }|j                  |       t        |      |_        d| v r
| d   |_        |S )Nr1   r2   )r   r   validate_header_sizer   r1   r2   )rE   r   r(   r:   s       r)   rC   rC   i   sU    ^Fc$S%56%%&78)*;<3HMr-   rF   c                     | j                   d   }t        | j                        D ]%  \  }}| j                  |   }t	        |||||      r% y y)Nr   FT)rD   	enumerater$   r   verify_signature)rF   r   r    r'   indexr+   r(   s          r)   r   r   t   sN    ll9-O%cnn5yU#	?HhW 6 r-   c                     | j                   d   }| j                  J t        | j                  | j                  |||      S Nr   )rD   r+   rK   r(   )rF   r   r    r'   s       r)   r   r   }   s<    ll9-O==$$$CJJRZ[[r-   r+   c                    t        | j                         | j                         }|j                  |       |j	                  |d         } ||       }|j                  |       d|v rt        |d         }nd}t        |d         }	|j                  |	       t        |	      }
dj                  ||g      }|j                  ||
|      S )Nr/   r1   r-   r+   r0   )r   r2   r3   r4   r5   r6   r   validate_signature_sizer   r7   verify)r(   r+   r'   r   r    r3   r/   r9   r:   signature_segmentrE   r;   s               r)   rK   rK      s     #6==1nnG'"


75>
*C
6
CMM#i$Y{%;< ;!78$$%67
-
.CII0/BCM::mS#..r-   c                 >    t        j                  |       }d|v r|d= |S rN   )copydeepcopy)r=   r<   s     r)   r   r      s#    	u	BByMIr-   )'rT   typingr   r   modelr   r   r   typesr	   r
   r   r   r   r   utilr   r   r   r   r   errorsr   __all__r   listbytesr   r   r   r   rC   boolr   r   rK   dictstrr    r-   r)   <module>rb      s      
 
 " 5  !	 L>3&
',  	
  			 	 		
  	$0<GSZ. 8 K Th  0 K L 1 [ T[ `d \5 \ \X_ \dh \// / / 	/
 / 
/6tCH~ $sCx. r-   