+
    P(i)                         ^ RI t ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIHt ^RI	H
t
 ^RI	Ht ^RIHt ^R	IHt ^R
IHt ^RIHt ^RIHt  ! R R4      tR tR tR tR tR# )    N)
json_dumps)
json_loads)to_bytes)
to_unicode)DecodeError)InsecureClaimError)JsonWebSignature)JsonWebEncryption)Key)KeySet)	JWTClaimsc                      a  ] tR t^t o Rt]P                  ! RP                  . R	O4      ]P                  4      t	R
R lt
R tRR ltRR ltRtV tR# )JsonWebToken|Nc                J    \        WR 7      V n        \        WR 7      V n        R# ))private_headersN)r	   _jwsr
   _jwe)self
algorithmsr   s   &&&^/Users/agent/.openclaw/workspace/venv/lib/python3.14/site-packages/authlib/jose/rfc7519/jwt.py__init__JsonWebToken.__init__%   s    $ZQ	%jR	    c                    V Fj  pW P                   9   d   \        V4      hW,          p\        V\        4      '       g   K>  V P                  P                  V4      '       g   Ka  \        V4      h	  R# )z0Check if payload contains sensitive information.N)SENSITIVE_NAMESr   
isinstancestrSENSITIVE_VALUESsearch)r   payloadkvs   &&  r   check_sensitive_data!JsonWebToken.check_sensitive_data)   sZ    A((((++ 
A!S!!d&;&;&B&B1&E&E(++ r   c                   VP                  RR4       R F\  pVP                  V4      p\        V\        P                  4      '       g   K6  \        P
                  ! VP                  4       4      W%&   K^  	  V'       d   V P                  V4       \        W14      p\        \        V4      4      pRV9   d   V P                  P                  WV4      # V P                  P                  WV4      # )zEncode a JWT with the given header, payload and key.

:param header: A dict of JWS header
:param payload: A dict to be encoded
:param key: key used to sign the signature
:param check: check if sensitive data in payload
:return: bytes
typJWTenc)expiatnbf)
setdefaultgetr   datetimecalendartimegmutctimetupler$   find_encode_keyr   r   r   serialize_compactr   )r   headerr!   keycheckr"   claimtexts   &&&&&   r   encodeJsonWebToken.encode5   s     	%'&AKKNE%!2!233%__U-?-?-AB
	 ' %%g.c*
7+,F?99..vSAA99..vSAAr   c                   Vf   \         p\        V4      '       d   TpM\        \        V4      4      p\	        V4      pVP                  R4      pV^8X  d"   V P                  P                  W\        4      pM3V^8X  d"   V P                  P                  W\        4      pM\        R4      hV! VR,          VR,          VVR7      # )a  Decode the JWT with the given key. This is similar with
:meth:`verify`, except that it will raise BadSignatureError when
signature doesn't match.

:param s: text of JWT
:param key: key used to verify the signature
:param claims_cls: class to be used for JWT claims
:param claims_options: `options` parameters for claims_cls
:param claims_params: `params` parameters for claims_cls
:return: claims_cls instance
:raise: BadSignatureError
   .zInvalid input segments lengthr!   r5   )optionsparams)r   callablecreate_load_keyprepare_raw_keyr   countr   deserialize_compactdecode_payloadr   r   )	r   sr6   
claims_clsclaims_optionsclaims_paramsload_key	dot_countdatas	   &&&&&&   r   decodeJsonWebToken.decodeP   s     "JC==H&s';<HQKGGDM	>9900nMD!^9900nMD=>>ON" 	
 	
r   )r   r   )passwordtokensecret
secret_key)z1\b(?:3[47]\d|(?:4\d|5[1-5]|65)\d{2}|6011)\d{12}\bzB-----BEGIN[A-Z ]+PRIVATE KEY-----.+-----END[A-Z ]+PRIVATE KEY-----z3^\b(?!(000|666|9))\d{3}-(?!00)\d{2}-(?!0000)\d{4}\b)N)T)NNN)__name__
__module____qualname____firstlineno__r   recompilejoinDOTALLr   r   r$   r:   rM   __static_attributes____classdictcell__)__classdict__s   @r   r   r      sN     COzz				
 			S
,B6"
 "
r   r   c                      \        \        V 4      4      p\	        T\
        4      '       g   \        R4      hT#   \         d   p\        R 4      ThRp?ii ; i)zInvalid payload valueNzInvalid payload type)r   r   
ValueErrorr   r   dict)bytes_payloadr!   excs   &  r   rE   rE   u   sV    <Z67 gt$$011N	  <12;<s   9 AAAc                    \        V \        4      '       d   V # \        V \        4      '       d<   V P                  R 4      '       d%   V P	                  R4      '       d   \        V 4      p V # \        V \        \        34      '       d   RV /p V # ){}keys)r   r   r   
startswithendswithr   tuplelist)raws   &r   rB   rB      sn    #v
#ss 3 3S8I8Io J 
C%	'	'smJr   c                    \        V \        4      '       d\   VP                  R 4      pV'       d   V P                  V4      # \        P
                  ! V P                  4      pVP                  VR &   V# \        V \        4      '       d|   RV 9   du   V R,          pVP                  R 4      pV F  pVP                  R 4      V8X  g   K  Vu # 	  V'       g%   \        P
                  ! V4      pVR ,          VR &   V# \        R4      h\        V \        4      '       d   R V 9   d   V R ,          VR &   V # \        V \        4      '       d"   V P                  '       d   V P                  VR &   V # kidrf   zInvalid JSON Web Key Set)r   r   r.   find_by_kidrandomchoicerf   rn   r`   r_   r   )r6   r5   rn   rvrf   r"   s   &&    r   r3   r3      s   #vjj??3'']]388$u	#t36{jjAuuU|s"  t$BuIF5MI344 #t#E
u J 
C		#'''uJr   c                    a  V 3R  lpV# )c                 z  < \        S\        4      '       d!   SP                  V P                  R 4      4      # \        S\        4      '       dn   RS9   dg   SR,          pV P                  R 4      pVe%   V F  pVP                  R 4      V8X  g   K  Vu # 	  M\        V4      ^8X  d
   V^ ,          # \        R4      hS# rm   )r   r   ro   r.   r`   lenr_   )r5   r!   rf   rn   r"   r6   s   &&   r   rJ   !create_load_key.<locals>.load_key   s    c6""??6::e#455c4  Vs]v;D**U#CAuuU|s*  
 t9>7N788
r    )r6   rJ   s   f r   rA   rA      s    ( Or   )r0   r/   rp   rW   authlib.common.encodingr   r   r   r   errorsr   r   rfc7515r	   rfc7516r
   rfc7517r   r   claimsr   r   rE   rB   r3   rA   rw   r   r   <module>r~      sT       	 . . , .   ' & '   ^
 ^
B@r   