Ë
    [üàgc  ã                  ó¤   — 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m	Z	 ddl
mZmZmZmZmZ ddlmZ  G d„ d	«      Z G d
„ d«      Z G d„ d«      Zy)é    )ÚannotationsN)ÚAnyé   )Úget_default_algorithmsÚ
has_cryptoÚrequires_cryptography)ÚInvalidKeyErrorÚMissingCryptographyErrorÚ
PyJWKErrorÚPyJWKSetErrorÚ
PyJWTError)ÚJWKDictc                  ót   — e Zd Zdd	d„Zedd
d„«       Zeddd„«       Zedd„«       Zedd„«       Z	edd„«       Z
y)ÚPyJWKNc                óh  — t        «       | _        || _        | j                  j                  dd «      }|st	        d| j                  › �«      ‚|s6t        | j                  t        «      r| j                  j                  dd «      }|s¤| j                  j                  dd «      }|dk(  r0|dk(  s|sd}ny|dk(  rd	}nq|d
k(  rd}ni|dk(  rd}nat	        d|› �«      ‚|dk(  rd}nK|dk(  rd}nC|dk(  r0|st	        d| j                  › �«      ‚|dk(  rd}nt	        d|› �«      ‚t	        d|› �«      ‚t        s|t        v rt        |› d�«      ‚|| _
        || j                  v r| j                  |   | _        nt        d| j                  › �«      ‚| j                  j                  | j                  «      | _        y )NÚktyzkty is not found: ÚalgÚcrvÚECzP-256ÚES256zP-384ÚES384zP-521ÚES512Ú	secp256k1ÚES256KzUnsupported crv: ÚRSAÚRS256ÚoctÚHS256ÚOKPzcrv is not found: ÚEd25519ÚEdDSAzUnsupported kty: z) requires 'cryptography' to be installed.z%Unable to find an algorithm for key: )r   Ú_algorithmsÚ	_jwk_dataÚgetr	   Ú
isinstanceÚdictr   r   r
   Úalgorithm_nameÚ	Algorithmr   Úfrom_jwkÚkey)ÚselfÚjwk_dataÚ	algorithmr   r   s        úI/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/jwt/api_jwk.pyÚ__init__zPyJWK.__init__   s½  € Ü1Ó3ˆÔØ!ˆŒà�n‰n× Ñ  ¨Ó-ˆÙÜ!Ð$6°t·~±~Ð6FÐ"GÓHÐHáœZ¨¯©¼Ô=ØŸ™×*Ñ*¨5°$Ó7ˆIáà—.‘.×$Ñ$ U¨DÓ1ˆCØ�dŠ{Ø˜'’>©Ø '‘IØ˜G’^Ø '‘IØ˜G’^Ø '‘IØ˜KÒ'Ø (‘Iä)Ð,=¸c¸UÐ*CÓDÐDØ˜’Ø#‘	Ø˜’Ø#‘	Ø˜’ÙÜ)Ð,>¸t¿~¹~Ð>NÐ*OÓPÐPØ˜)Ò#Ø '‘Iä)Ð,=¸c¸UÐ*CÓDÐDä%Ð(9¸#¸Ð&?Ó@Ð@å˜iÔ+@Ñ@Ü*Ø�+ÐFÐGóð ð (ˆÔà˜×(Ñ(Ñ(Ø!×-Ñ-¨iÑ8ˆD�NäÐDÀTÇ^Á^ÐDTÐUÓVÐVà—>‘>×*Ñ*¨4¯>©>Ó:ˆ�ó    c                ó   — t        | |«      S ©N)r   )Úobjr-   s     r.   Ú	from_dictzPyJWK.from_dictH   s   € ä�S˜)Ó$Ð$r0   c                óX   — t        j                  | «      }t        j                  ||«      S r2   )ÚjsonÚloadsr   r4   )Údatar-   r3   s      r.   Ú	from_jsonzPyJWK.from_jsonL   s!   € ä�j‰j˜ÓˆÜ�‰˜s IÓ.Ð.r0   c                ó:   — | j                   j                  dd «      S )Nr   ©r#   r$   ©r+   s    r.   Úkey_typezPyJWK.key_typeQ   ó   € à�~‰~×!Ñ! %¨Ó.Ð.r0   c                ó:   — | j                   j                  dd «      S )NÚkidr;   r<   s    r.   Úkey_idzPyJWK.key_idU   r>   r0   c                ó:   — | j                   j                  dd «      S )NÚuser;   r<   s    r.   Úpublic_key_usezPyJWK.public_key_useY   r>   r0   r2   )r,   r   r-   ú
str | NoneÚreturnÚNone)r3   r   r-   rE   rF   r   )r8   Ústrr-   rG   rF   r   )rF   rE   )Ú__name__Ú
__module__Ú__qualname__r/   Ústaticmethodr4   r9   Úpropertyr=   rA   rD   © r0   r.   r   r      sl   „ ô3;ðj ó%ó ð%ð ó/ó ð/ð ò/ó ð/ð ò/ó ð/ð ò/ó ñ/r0   r   c                  ó@   — e Zd Zdd„Zedd„«       Zedd„«       Zd	d„Zy)
ÚPyJWKSetc                óP  — g | _         |st        d«      ‚t        |t        «      st        d«      ‚|D ]'  }	 | j                   j	                  t        |«      «       Œ) t        | j                   «      dk(  rt        d«      ‚y # t        $ r}t        |t        «      r|‚Y d }~Œnd }~ww xY w)Nz$The JWK Set did not contain any keyszInvalid JWK Set valuer   zUThe JWK Set did not contain any usable keys. Perhaps 'cryptography' is not installed?)	Úkeysr   r%   ÚlistÚappendr   r   r
   Úlen)r+   rR   r*   Úerrors       r.   r/   zPyJWKSet.__init___   s¤   € ØˆŒ	áÜÐ FÓGÐGä˜$¤Ô%ÜÐ 7Ó8Ð8àò 	ˆCðØ—	‘	× Ñ ¤ s£Õ,ð	ô ˆt�y‰y‹>˜QÒÜØgóð ð øô ò Ü˜eÔ%=Ô>Ø�Käûð	ús   ¶$B Â 	B%Â	B Â B%c                ó<   — | j                  dg «      }t        |«      S )NrR   )r$   rP   )r3   rR   s     r.   r4   zPyJWKSet.from_dictv   s   € à�w‰w�v˜rÓ"ˆÜ˜‹~Ðr0   c                óV   — t        j                  | «      }t        j                  |«      S r2   )r6   r7   rP   r4   )r8   r3   s     r.   r9   zPyJWKSet.from_json{   s!   € ä�j‰j˜ÓˆÜ×!Ñ! #Ó&Ð&r0   c                óf   — | j                   D ]  }|j                  |k(  sŒ|c S  t        d|› �«      ‚)Nzkeyset has no key for kid: )rR   rA   ÚKeyError)r+   r@   r*   s      r.   Ú__getitem__zPyJWKSet.__getitem__€   s;   € Ø—9‘9ò 	ˆCØ�z‰z˜SÓ Ø’
ð	ô Ð4°S°EÐ:Ó;Ð;r0   N)rR   zlist[JWKDict]rF   rG   )r3   zdict[str, Any]rF   rP   )r8   rH   rF   rP   )r@   rH   rF   r   )rI   rJ   rK   r/   rL   r4   r9   r[   rN   r0   r.   rP   rP   ^   s4   „ óð. òó ðð ò'ó ð'ô<r0   rP   c                  ó$   — e Zd Zdd„Zdd„Zdd„Zy)ÚPyJWTSetWithTimestampc                óD   — || _         t        j                  «       | _        y r2   )Újwk_setÚtimeÚ	monotonicÚ	timestamp)r+   r_   s     r.   r/   zPyJWTSetWithTimestamp.__init__ˆ   s   € ØˆŒÜŸ™Ó)ˆ�r0   c                ó   — | j                   S r2   )r_   r<   s    r.   Úget_jwk_setz!PyJWTSetWithTimestamp.get_jwk_setŒ   s   € Ø�|‰|Ðr0   c                ó   — | j                   S r2   )rb   r<   s    r.   Úget_timestampz#PyJWTSetWithTimestamp.get_timestamp�   s   € Ø�~‰~Ðr0   N)r_   rP   )rF   rP   )rF   Úfloat)rI   rJ   rK   r/   rd   rf   rN   r0   r.   r]   r]   ‡   s   „ ó*óôr0   r]   )Ú
__future__r   r6   r`   Útypingr   Ú
algorithmsr   r   r   Ú
exceptionsr	   r
   r   r   r   Útypesr   r   rP   r]   rN   r0   r.   ú<module>rm      sH   ðÝ "ã Û Ý ç QÑ Q÷õ õ ÷I/ñ I/÷X&<ñ &<÷R	ò 	r0   