Ë
    [üàg°8  ã                  ó.  — d dl mZ d dlZd dlZd dlmZ d dlmZmZ d dl	m	Z	m
Z
mZ d dlmZmZ ddlmZ dd	lmZmZmZmZmZmZmZmZmZ dd
lmZ erddlmZmZ ddlm Z   G d„ d«      Z! e!«       Z"e"jF                  Z#e"jH                  Z$e"jJ                  Z%y)é    )ÚannotationsN)Útimegm)ÚIterableÚSequence)ÚdatetimeÚ	timedeltaÚtimezone)ÚTYPE_CHECKINGÚAnyé   )Úapi_jws)	ÚDecodeErrorÚExpiredSignatureErrorÚImmatureSignatureErrorÚInvalidAudienceErrorÚInvalidIssuedAtErrorÚInvalidIssuerErrorÚInvalidJTIErrorÚInvalidSubjectErrorÚMissingRequiredClaimError)ÚRemovedInPyjwt3Warning)ÚAllowedPrivateKeysÚAllowedPublicKeys)ÚPyJWKc                  óÂ  — e Zd Zddd„Zedd„«       Z	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z	 	 d	 	 	 	 	 	 	 dd„Z	 	 	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zdd„Z		 	 	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z
	 	 	 	 d	 	 	 	 	 	 	 	 	 d d	„Z	 	 	 	 	 	 d!d
„Zdd"d„Zd"d„Z	 	 	 	 	 	 	 	 d#d„Z	 	 	 	 	 	 	 	 d#d„Z	 	 	 	 	 	 	 	 d#d„Zddœ	 	 	 	 	 	 	 d$d„Zd%d„Zy)&ÚPyJWTNc                ó>   — |€i }i | j                  «       ¥|¥| _        y ©N)Ú_get_default_optionsÚoptions)Úselfr    s     úI/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/jwt/api_jwt.pyÚ__init__zPyJWT.__init__   s&   € Øˆ?ØˆGØ'Q¨$×*CÑ*CÓ*EÐ'QÈÐ'Qˆ�ó    c            
     ó   — ddddddddg dœ	S )NT)	Úverify_signatureÚ
verify_expÚ
verify_nbfÚ
verify_iatÚ
verify_audÚ
verify_issÚ
verify_subÚ
verify_jtiÚrequire© r/   r$   r"   r   zPyJWT._get_default_options#   s)   € ð !%ØØØØØØØØñ

ð 
	
r$   c                óB  — t        |t        «      st        d«      ‚|j                  «       }dD ]A  }t        |j	                  |«      t
        «      sŒ#t        ||   j                  «       «      ||<   ŒC | j                  |||¬«      }t        j                  ||||||¬«      S )NzGExpecting a dict object, as JWT only supports JSON objects as payloads.)ÚexpÚiatÚnbf)ÚheadersÚjson_encoder)Úsort_headers)Ú
isinstanceÚdictÚ	TypeErrorÚcopyÚgetr   r   ÚutctimetupleÚ_encode_payloadr   Úencode)	r!   ÚpayloadÚkeyÚ	algorithmr4   r5   r6   Ú
time_claimÚjson_payloads	            r"   r>   zPyJWT.encode1   s³   € ô ˜'¤4Ô(Üð,óð ð —,‘,“.ˆØ/ò 	QˆJä˜'Ÿ+™+ jÓ1´8Õ<Ü&,¨W°ZÑ-@×-MÑ-MÓ-OÓ&P�˜
Ò#ð	Qð
 ×+Ñ+ØØØ%ð ,ó 
ˆô �~‰~ØØØØØØ%ô
ð 	
r$   c                óP   — t        j                  |d|¬«      j                  d«      S )zÚ
        Encode a given payload to the bytes to be signed.

        This method is intended to be overridden by subclasses that need to
        encode the payload in a different way, e.g. compress the payload.
        )ú,ú:)Ú
separatorsÚclszutf-8)ÚjsonÚdumpsr>   )r!   r?   r4   r5   s       r"   r=   zPyJWT._encode_payloadW   s)   € ô �z‰zØØ!Øô
÷ ‰&�‹/ð		r$   c                ó¸  — |r6t        j                  dt        |j                  «       «      › �t        d¬«       t        |xs i «      }|j                  dd«       |�$||d   k7  rt        j                  dt        d¬«       |d   s~|j                  dd	«       |j                  d
d	«       |j                  dd	«       |j                  dd	«       |j                  dd	«       |j                  dd	«       |j                  dd	«       t        j                  |||||¬«      }| j                  |«      }i | j                  ¥|¥}| j                  |||||
|	¬«       ||d<   |S )Nzypassing additional kwargs to decode_complete() is deprecated and will be removed in pyjwt version 3. Unsupported kwargs: é   ©Ú
stacklevelr&   TzàThe `verify` argument to `decode` does nothing in PyJWT 2.0 and newer. The equivalent is setting `verify_signature` to False in the `options` dictionary. This invocation has a mismatch between the kwarg and the option entry.)ÚcategoryrN   r'   Fr(   r)   r*   r+   r,   r-   )r@   Ú
algorithmsr    Údetached_payload)ÚaudienceÚissuerÚleewayÚsubjectr?   )ÚwarningsÚwarnÚtupleÚkeysr   r8   Ú
setdefaultÚDeprecationWarningr   Údecode_completeÚ_decode_payloadr    Ú_validate_claims)r!   Újwtr@   rP   r    ÚverifyrQ   rR   rS   rU   rT   ÚkwargsÚdecodedr?   Úmerged_optionss                  r"   r\   zPyJWT.decode_completei   s{  € ñ& Ü�M‰Mð'ä',¨V¯[©[«]Ó';Ð&<ð>ô 'Øõô �w’} "Ó%ˆØ×ÑÐ-¨tÔ4ð
 Ð &¨GÐ4FÑ,GÒ"GÜ�M‰MðYô ,Øõð Ð)Ò*Ø×Ñ˜|¨UÔ3Ø×Ñ˜|¨UÔ3Ø×Ñ˜|¨UÔ3Ø×Ñ˜|¨UÔ3Ø×Ñ˜|¨UÔ3Ø×Ñ˜|¨UÔ3Ø×Ñ˜|¨UÔ3ä×)Ñ)ØØØ!ØØ-ô
ˆð ×&Ñ& wÓ/ˆà4˜DŸL™LÐ4¨GÐ4ˆØ×ÑØØØØØØð 	ô 	
ð %ˆ�	ÑØˆr$   c                ó®   — 	 t        j                  |d   «      }t	        |t
        «      st        d«      ‚|S # t        $ r}t        d|› �«      |‚d}~ww xY w)a  
        Decode the payload from a JWS dictionary (payload, signature, header).

        This method is intended to be overridden by subclasses that need to
        decode the payload in a different way, e.g. decompress compressed
        payloads.
        r?   zInvalid payload string: Nz-Invalid payload string: must be a json object)rI   ÚloadsÚ
ValueErrorr   r7   r8   )r!   rb   r?   Úes       r"   r]   zPyJWT._decode_payload³   sa   € ð	EÜ—j‘j ¨Ñ!3Ó4ˆGô ˜'¤4Ô(ÜÐMÓNÐNØˆøô	 ò 	EÜÐ 8¸¸Ð<Ó=À1ÐDûð	Eús   ‚7 ·	AÁ AÁAc                ó²   — |r6t        j                  dt        |j                  «       «      › �t        d¬«       | j                  |||||||||	|
¬«
      }|d   S )Nzppassing additional kwargs to decode() is deprecated and will be removed in pyjwt version 3. Unsupported kwargs: rL   rM   )r`   rQ   rR   rU   rS   rT   r?   )rV   rW   rX   rY   r   r\   )r!   r_   r@   rP   r    r`   rQ   rR   rU   rS   rT   ra   rb   s                r"   ÚdecodezPyJWT.decodeÃ   sx   € ñ& Ü�M‰Mð'ä',¨V¯[©[«]Ó';Ð&<ð>ô 'Øõð ×&Ñ&ØØØØØØ-ØØØØð 'ó 
ˆð �yÑ!Ð!r$   c                ó–  — t        |t        «      r|j                  «       }|�!t        |t        t        f«      st        d«      ‚| j                  ||«       t        j                  t        j                  ¬«      j                  «       }d|v r|d   r| j                  |||«       d|v r|d   r| j                  |||«       d|v r|d   r| j                  |||«       |d	   r| j                  ||«       |d
   r$| j!                  |||j#                  dd«      ¬«       |d   r| j%                  ||«       |d   r| j'                  |«       y y )Nz+audience must be a string, iterable or None)Útzr2   r)   r3   r(   r1   r'   r+   r*   Ú
strict_audF©Ústrictr,   r-   )r7   r   Útotal_secondsÚstrr   r9   Ú_validate_required_claimsr   Únowr	   ÚutcÚ	timestampÚ_validate_iatÚ_validate_nbfÚ_validate_expÚ_validate_issÚ_validate_audr;   Ú_validate_subÚ_validate_jti)r!   r?   r    rR   rS   rU   rT   rr   s           r"   r^   zPyJWT._validate_claimsì   sC  € ô �fœiÔ(Ø×)Ñ)Ó+ˆFàÐ¬
°8¼cÄ8¸_Ô(MÜÐIÓJÐJà×&Ñ& w°Ô8ä�l‰lœhŸl™lÔ+×5Ñ5Ó7ˆà�GÑ ¨Ò 5Ø×Ñ˜w¨¨VÔ4à�GÑ ¨Ò 5Ø×Ñ˜w¨¨VÔ4à�GÑ ¨Ò 5Ø×Ñ˜w¨¨VÔ4à�<Ò Ø×Ñ˜w¨Ô/à�<Ò Ø×ÑØ˜¨'¯+©+°lÀEÓ*Jð ô ð �<Ò Ø×Ñ˜w¨Ô0à�<Ò Ø×Ñ˜wÕ'ð !r$   c                óP   — |d   D ]  }|j                  |«      �Œt        |«      ‚ y )Nr.   )r;   r   )r!   r?   r    Úclaims       r"   rq   zPyJWT._validate_required_claims  s2   € ð
 ˜YÑ'ò 	7ˆEØ�{‰{˜5Ó!Ñ)Ü/°Ó6Ð6ñ	7r$   c                óŽ   — d|vryt        |d   t        «      st        d«      ‚|� |j                  d«      |k7  rt        d«      ‚yy)zè
        Checks whether "sub" if in the payload is valid ot not.
        This is an Optional claim

        :param payload(dict): The payload which needs to be validated
        :param subject(str): The subject of the token
        ÚsubNzSubject must be a stringzInvalid subject)r7   rp   r   r;   )r!   r?   rU   s      r"   rz   zPyJWT._validate_sub  sV   € ð ˜ÑØä˜' %™.¬#Ô.Ü%Ð&@ÓAÐAàÐØ�{‰{˜5Ó! WÒ,Ü)Ð*;Ó<Ð<ð -ð r$   c                ób   — d|vryt        |j                  d«      t        «      st        d«      ‚y)z±
        Checks whether "jti" if in the payload is valid ot not
        This is an Optional claim

        :param payload(dict): The payload which needs to be validated
        ÚjtiNzJWT ID must be a string)r7   r;   rp   r   )r!   r?   s     r"   r{   zPyJWT._validate_jti2  s3   € ð ˜ÑØä˜'Ÿ+™+ eÓ,¬cÔ2Ü!Ð";Ó<Ð<ð 3r$   c                óz   — 	 t        |d   «      }|||z   kD  rt        d«      ‚y # t        $ r t        d«      d ‚w xY w)Nr2   z)Issued At claim (iat) must be an integer.z The token is not yet valid (iat))Úintrf   r   r   )r!   r?   rr   rT   r2   s        r"   ru   zPyJWT._validate_iat@  sX   € ð	Ü�g˜e‘nÓ%ˆCð
 �#˜‘,ÒÜ(Ð)KÓLÐLð  øô	 ò 	Ü&Ø;óàðð	úó   ‚$ ¤:c                óz   — 	 t        |d   «      }|||z   kD  rt        d«      ‚y # t        $ r t        d«      d ‚w xY w)Nr3   z*Not Before claim (nbf) must be an integer.z The token is not yet valid (nbf))rƒ   rf   r   r   )r!   r?   rr   rT   r3   s        r"   rv   zPyJWT._validate_nbfO  sW   € ð	VÜ�g˜e‘nÓ%ˆCð �#˜‘,ÒÜ(Ð)KÓLÐLð  øô ò 	VÜÐJÓKÐQUÐUð	Vúr„   c                óz   — 	 t        |d   «      }|||z
  k  rt        d«      ‚y # t        $ r t        d«      d ‚w xY w)Nr1   z/Expiration Time claim (exp) must be an integer.zSignature has expired)rƒ   rf   r   r   )r!   r?   rr   rT   r1   s        r"   rw   zPyJWT._validate_exp]  sX   € ð	Ü�g˜e‘nÓ%ˆCð �3˜‘<Ò Ü'Ð(?Ó@Ð@ð !øô ò 	ÜØAóàðð	úr„   Frm   c               óò  ‡— |€d|vs|d   sy t        d«      ‚d|vs|d   st        d«      ‚|d   Š|rGt        |t        «      st        d«      ‚t        ‰t        «      st        d«      ‚|‰k7  rt        d«      ‚y t        ‰t        «      r‰gŠt        ‰t        «      st        d«      ‚t        d„ ‰D «       «      rt        d«      ‚t        |t        «      r|g}t        ˆfd„|D «       «      rt        d	«      ‚y )
NÚaudzInvalid audiencezInvalid audience (strict)z&Invalid claim format in token (strict)zAudience doesn't match (strict)zInvalid claim format in tokenc              3  ó>   K  — | ]  }t        |t        «       –— Œ y ­wr   )r7   rp   )Ú.0Úcs     r"   ú	<genexpr>z&PyJWT._validate_aud.<locals>.<genexpr>–  s   è ø€ Ò?¨!”:˜a¤Ó%Ô%Ñ?ùs   ‚c              3  ó&   •K  — | ]  }|‰v–— Œ
 y ­wr   r/   )rŠ   rˆ   Úaudience_claimss     €r"   rŒ   z&PyJWT._validate_aud.<locals>.<genexpr>œ  s   øè ø€ Ò>¨cˆs˜/Ô)Ñ>ùs   ƒzAudience doesn't match)r   r   r7   rp   ÚlistÚanyÚall)r!   r?   rR   rn   rŽ   s       @r"   ry   zPyJWT._validate_audm  s
  ø€ ð ÐØ˜GÑ#¨7°5ª>Øô 'Ð'9Ó:Ð:à˜Ñ w¨u¢~ô ,¨EÓ2Ð2à! %™.ˆñ ä˜h¬Ô,Ü*Ð+FÓGÐGô ˜o¬sÔ3Ü*Ð+SÓTÐTà˜?Ò*Ü*Ð+LÓMÐMàä�o¤sÔ+Ø.Ð/ˆOÜ˜/¬4Ô0Ü&Ð'FÓGÐGÜÑ?¨Ô?Ô?Ü&Ð'FÓGÐGä�h¤Ô$Ø �zˆHäÓ>°XÔ>Ô>Ü&Ð'?Ó@Ð@ð ?r$   c                ó”   — |€y d|vrt        d«      ‚t        |t        «      r|d   |k7  rt        d«      ‚y |d   |vrt        d«      ‚y )NÚisszInvalid issuer)r   r7   rp   r   )r!   r?   rS   s      r"   rx   zPyJWT._validate_issŸ  sc   € Øˆ>Øà˜ÑÜ+¨EÓ2Ð2ä�fœcÔ"Ø�u‰~ Ò'Ü(Ð)9Ó:Ð:ð (ð �u‰~ VÑ+Ü(Ð)9Ó:Ð:ð ,r$   r   )r    údict[str, Any] | NoneÚreturnÚNone)r•   zdict[str, bool | list[str]])NNNT)r?   údict[str, Any]r@   z(AllowedPrivateKeys | PyJWK | str | bytesrA   ú
str | Noner4   r”   r5   útype[json.JSONEncoder] | Noner6   Úboolr•   rp   )NN)r?   r—   r4   r”   r5   r™   r•   Úbytes)	Ú NNNNNNNr   )r_   ústr | bytesr@   ú'AllowedPublicKeys | PyJWK | str | bytesrP   úSequence[str] | Noner    r”   r`   úbool | NonerQ   úbytes | NonerR   ústr | Iterable[str] | NonerS   ústr | Sequence[str] | NonerU   r˜   rT   úfloat | timedeltara   r   r•   r—   )rb   r—   r•   r   )r_   r�   r@   rž   rP   rŸ   r    r”   r`   r    rQ   r¡   rR   r¢   rU   r˜   rS   r£   rT   r¤   ra   r   r•   r   )NNNr   )
r?   r—   r    r—   rU   r˜   rT   r¤   r•   r–   )r?   r—   r    r—   r•   r–   )r?   r—   r•   r–   )r?   r—   rr   ÚfloatrT   r¥   r•   r–   )r?   r—   rR   r¢   rn   rš   r•   r–   )r?   r—   rS   r   r•   r–   )Ú__name__Ú
__module__Ú__qualname__r#   Ústaticmethodr   r>   r=   r\   r]   ri   r^   rq   rz   r{   ru   rv   rw   ry   rx   r/   r$   r"   r   r      s)  „ ôRð
 ò
ó ð
ð" !%Ø)-Ø6:Ø!ð$
àð$
ð 6ð$
ð ð	$
ð
 'ð$
ð 4ð$
ð ð$
ð 
ó$
ðR *.Ø6:ð	àðð 'ðð 4ð	ð
 
óð* 8:Ø+/Ø)-à"à)-ð 04Ø-1Ø"Ø$%ðHàðHð 5ðHð )ð	Hð
 'ðHð ðHð 'ðHð -ðHð +ðHð ðHð "ðHð" ð#Hð$ 
ó%HóTð& 8:Ø+/Ø)-à"à)-ð 04Ø"Ø-1Ø$%ð'"àð'"ð 5ð'"ð )ð	'"ð
 'ð'"ð ð'"ð 'ð'"ð -ð'"ð ð'"ð +ð'"ð "ð'"ð" ð#'"ð$ 
ó%'"ðZ ØØ"Ø$%ð((àð((ð  ð((ð ð((ð "ð((ð 
ó((ðT7àð7ð  ð7ð 
ó	7ô=ó&=ðMàðMð ðMð ð	Mð
 
óMðMàðMð ðMð ð	Mð
 
óMðAàðAð ðAð ð	Að
 
óAð* ñ0Aàð0Að -ð0Að
 ð0Að 
ó0Aôd;r$   r   )&Ú
__future__r   rI   rV   Úcalendarr   Úcollections.abcr   r   r   r   r	   Útypingr
   r   rœ   r   Ú
exceptionsr   r   r   r   r   r   r   r   r   r   rP   r   r   Úapi_jwkr   r   Ú_jwt_global_objr>   r\   ri   r/   r$   r"   ú<module>r±      st   ðÝ "ã Û Ý ß .ß 2Ñ 2ß %å ÷
÷ 
õ 
õ -áßAÝ÷N;ñ N;ñb “'€Ø	×	Ñ	€Ø!×1Ñ1€Ø	×	Ñ	�r$   