+
    ic                        ^ RI Ht ^ RIt^ RIt^ RIHt ^RIHtHtH	t	 ^RI
HtHtHtHtHt ^RIHt  ! R R4      t ! R	 R
4      t ! R R4      tR# )    )annotationsN)Any)get_default_algorithms
has_cryptorequires_cryptography)InvalidKeyErrorMissingCryptographyError
PyJWKErrorPyJWKSetError
PyJWTError)JWKDictc                      ] tR t^tRR R llt]RR R ll4       t]RR R ll4       t]R R	 l4       t	]R
 R l4       t
]R R l4       tRtR# )PyJWKNc               $    V ^8  d   QhRRRRRR/# )   jwk_datar   	algorithm
str | NonereturnNone )formats   "-/usr/lib/python3/dist-packages/jwt/api_jwk.py__annotate__PyJWK.__annotate__   s!     3; 3; 3;Z 3;4 3;    c                	   \        4       V n        Wn        V P                  P                  R R4      pV'       g   \	        RV P                   24      hV'       g=   \        V P                  \        4      '       d   V P                  P                  RR4      pV'       g   V P                  P                  RR4      pVR8X  d?   VR8X  g	   V'       g   RpMVR8X  d   R	pMVR
8X  d   RpMyVR8X  d   RpMo\	        RV 24      hVR8X  d   RpMWVR8X  d   RpMMVR8X  d9   V'       g   \	        RV P                   24      hVR8X  d   RpM\	        RV 24      h\	        RV 24      h\        '       g   V\        9   d   \        V R24      hW n
        W P                  9   d   V P                  V,          V n        M\        RV P                   24      hV P                  P                  V P                  4      V n        R# )ktyNz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)selfr   r   r   r    s   &&&  r   __init__PyJWK.__init__   s   13!nn  -!$6t~~6F"GHHZ==**5$7I..$$UD1Cd{'> 'IG^ 'IG^ 'IK' (I),=cU*CDD#	#	),>t~~>N*OPP)# 'I),=cU*CDD%(9#&?@@zi+@@*+FG  ((((!--i8DNDT^^DTUVV>>**4>>:r   c               $    V ^8  d   QhRRRRRR/# )r   objr   r   r   r   r   r   )r   s   "r   r   r   I   s!     % %w %: % %r   c                	    \        W4      # N)r   )r;   r   s   &&r   	from_dictPyJWK.from_dictH   s    S$$r   c               $    V ^8  d   QhRRRRRR/# )r   datastrr   r   r   r   r   )r   s   "r   r   r   M   s!     / / / / /r   c                	X    \         P                  ! V 4      p\        P                  W!4      # r=   )jsonloadsr   r>   )rA   r   r;   s   && r   	from_jsonPyJWK.from_jsonL   s    jjs..r   c                   V ^8  d   QhRR/# r   r   r   r   )r   s   "r   r   r   R   s     / /* /r   c                	:    V P                   P                  R R4      # )r   Nr/   r0   r7   s   &r   key_typePyJWK.key_typeQ       ~~!!%..r   c                   V ^8  d   QhRR/# rI   r   )r   s   "r   r   r   V   s     / /
 /r   c                	:    V P                   P                  R R4      # )kidNrK   rL   s   &r   key_idPyJWK.key_idU   rO   r   c                   V ^8  d   QhRR/# rI   r   )r   s   "r   r   r   Z   s     / /
 /r   c                	:    V P                   P                  R R4      # )useNrK   rL   s   &r   public_key_usePyJWK.public_key_useY   rO   r   )r4   r.   r/   r3   r6   r=   )__name__
__module____qualname____firstlineno__r8   staticmethodr>   rF   propertyrM   rS   rX   __static_attributes__r   r   r   r   r      sl    3;j % % / / / / / / / /r   r   c                  Z    ] tR t^^tR R lt]R R l4       t]R R l4       tR R ltR	t	R
# )PyJWKSetc                    V ^8  d   QhRRRR/# )r   keyszlist[JWKDict]r   r   r   )r   s   "r   r   PyJWKSet.__annotate___   s      ] t r   c                	   . V n         V'       g   \        R 4      h\        V\        4      '       g   \        R4      hV F(  p V P                   P	                  \        V4      4       K*  	  \        V P                   4      ^ 8X  d   \        R4      hR#   \         d$   p\        T\        4      '       d   Th Rp?K|  Rp?ii ; i)z$The JWK Set did not contain any keyszInvalid JWK Set valueNzUThe JWK Set did not contain any usable keys. Perhaps 'cryptography' is not installed?)	rd   r   r1   listappendr   r   r	   len)r7   rd   r6   errors   &&  r   r8   PyJWKSet.__init___   s    	 FGG$%% 788C		  s,  tyy>Qg    e%=>>K	s   $BB?B::B?c                    V ^8  d   QhRRRR/# )r   r;   zdict[str, Any]r   rb   r   )r   s   "r   r   re   w   s      ~ ( r   c                	<    V P                  R . 4      p\        V4      # rd   )r0   rb   )r;   rd   s   & r   r>   PyJWKSet.from_dictv   s    wwvr"~r   c                    V ^8  d   QhRRRR/# )r   rA   rB   r   rb   r   )r   s   "r   r   re   |   s     ' ' ' 'r   c                	X    \         P                  ! V 4      p\        P                  V4      # r=   )rD   rE   rb   r>   )rA   r;   s   & r   rF   PyJWKSet.from_json{   s!    jj!!#&&r   c                    V ^8  d   QhRRRR/# )r   rR   rB   r   r   r   )r   s   "r   r   re      s     < <s <u <r   c                	n    V P                    F  pVP                  V8X  g   K  Vu # 	  \        R V 24      h)zkeyset has no key for kid: )rd   rS   KeyError)r7   rR   r6   s   && r   __getitem__PyJWKSet.__getitem__   s6    99CzzS 
  4SE:;;r   rn   N)
rZ   r[   r\   r]   r8   r^   r>   rF   rv   r`   r   r   r   rb   rb   ^   s9    .   ' '< <r   rb   c                  :    ] tR t^tR R ltR R ltR R ltRtR# )	PyJWTSetWithTimestampc                   V ^8  d   QhRR/# )r   jwk_setrb   r   )r   s   "r   r   "PyJWTSetWithTimestamp.__annotate__   s     * * *r   c                	F    Wn         \        P                  ! 4       V n        R # r=   )r{   time	monotonic	timestamp)r7   r{   s   &&r   r8   PyJWTSetWithTimestamp.__init__   s    )r   c                   V ^8  d   QhRR/# )r   r   rb   r   )r   s   "r   r   r|      s      X r   c                	    V P                   # r=   )r{   rL   s   &r   get_jwk_set!PyJWTSetWithTimestamp.get_jwk_set   s    ||r   c                   V ^8  d   QhRR/# )r   r   floatr   )r   s   "r   r   r|      s      u r   c                	    V P                   # r=   )r   rL   s   &r   get_timestamp#PyJWTSetWithTimestamp.get_timestamp   s    ~~r   )r{   r   N)rZ   r[   r\   r]   r8   r   r   r`   r   r   r   ry   ry      s    * r   ry   )
__future__r   rD   r~   typingr   
algorithmsr   r   r   
exceptionsr   r	   r
   r   r   typesr   r   rb   ry   r   r   r   <module>r      sH    "    Q Q  I/ I/X&< &<R	 	r   