+
    Ii
                        ^ RI Ht ^ RIt^ RIt^ RIH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)Iterator)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   "tC:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO CLAUDE\MAESTRO\maestro-backend\venv\Lib\site-packages\jwt/api_jwk.py__annotate__PyJWK.__annotate__   s!     >; >; >;Z >;4 >;    c                   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         \        4       V,          V n
        T P                  P                  T P                   4      T n        R#   \         d    \        RT P                    24      Rhi ; i)aS  A class that represents a `JSON Web Key <https://www.rfc-editor.org/rfc/rfc7517>`_.

:param jwk_data: The decoded JWK data.
:type jwk_data: dict[str, typing.Any]
:param algorithm: The key algorithm. If not specified, the key's ``alg`` will be used.
:type algorithm: str or None
:raises InvalidKeyError: If the key type (``kty``) is not found or unsupported, or if the curve (``crv``) is not found or unsupported.
:raises MissingCryptographyError: If the algorithm requires ``cryptography`` to be installed and it is not available.
:raises PyJWKError: If unable to find an algorithm for the key.
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: )	_jwk_datagetr	   
isinstancedictr   r   r
   algorithm_namer   	AlgorithmKeyErrorr   from_jwkkey)selfr   r   r   r!   s   &&&  r   __init__PyJWK.__init__   s    "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  (	35i@DN >>**4>>:  	77GH	s   =F? ?%G$c               $    V ^8  d   QhRRRRRR/# )r   objr   r   r   r   r   r   )r   s   "r   r   r   U   s!     	% 	%w 	%: 	% 	%r   c                    \        W4      # )a  Creates a :class:`PyJWK` object from a JSON-like dictionary.

:param obj: The JWK data, as a dictionary
:type obj: dict[str, typing.Any]
:param algorithm: The key algorithm. If not specified, the key's ``alg`` will be used.
:type algorithm: str or None
:rtype: PyJWK
)r   )r<   r   s   &&r   	from_dictPyJWK.from_dictT   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   a   s!     / / / / /r   c                X    \         P                  ! V 4      p\        P                  W!4      # )a  Create a :class:`PyJWK` object from a JSON string.
Implicitly calls :meth:`PyJWK.from_dict()`.

:param str data: The JWK data, as a JSON string.
:param algorithm:  The key algorithm.  If not specific, the key's ``alg`` will be used.
:type algorithm: str or None

:rtype: PyJWK
)jsonloadsr   r>   )rA   r   r<   s   && r   	from_jsonPyJWK.from_json`   s!     jjs..r   c                   V ^8  d   QhRR/# r   r   r   r   )r   s   "r   r   r   o   s     / /* /r   c                :    V P                   P                  RR4      # )z6The `kty` property from the JWK.

:rtype: str or None
r   Nr/   r0   r8   s   &r   key_typePyJWK.key_typen        ~~!!%..r   c                   V ^8  d   QhRR/# rI   r   )r   s   "r   r   r   w   s     / /
 /r   c                :    V P                   P                  RR4      # )z6The `kid` property from the JWK.

:rtype: str or None
kidNrK   rL   s   &r   key_idPyJWK.key_idv   rO   r   c                   V ^8  d   QhRR/# rI   r   )r   s   "r   r   r      s     / /
 /r   c                :    V P                   P                  RR4      # )z6The `use` property from the JWK.

:rtype: str or None
useNrK   rL   s   &r   public_key_usePyJWK.public_key_use~   rO   r   )r4   r/   r3   r7   N)__name__
__module____qualname____firstlineno__r9   staticmethodr>   rF   propertyrM   rS   rX   __static_attributes__r   r   r   r   r      sl    >;@ 	% 	% / / / / / / / /r   r   c                  f    ] tR t^tR R lt]R R l4       t]R R l4       tR R l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?)	re   r   r1   listappendr   r   r
   len)r8   re   r7   errors   &&  r   r9   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   rc   r   )r   s   "r   r   rf      s      ~ ( r   c                	<    V P                  R . 4      p\        V4      # re   )r0   rc   )r<   re   s   & r   r>   PyJWKSet.from_dict   s    wwvr"~r   c                    V ^8  d   QhRRRR/# )r   rA   rB   r   rc   r   )r   s   "r   r   rf      s     ' ' ' 'r   c                	X    \         P                  ! V 4      p\        P                  V4      # rZ   )rD   rE   rc   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   rf      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: )re   rS   r5   )r8   rR   r7   s   && r   __getitem__PyJWKSet.__getitem__   s6    99CzzS 
  4SE:;;r   c                   V ^8  d   QhRR/# )r   r   zIterator[PyJWK]r   )r   s   "r   r   rf      s      / r   c                	,    \        V P                  4      # rZ   )iterre   rL   s   &r   __iter__PyJWKSet.__iter__   s    DIIr   ro   N)r[   r\   r]   r^   r9   r_   r>   rF   rv   r{   ra   r   r   r   rc   rc      s>    .   ' '< r   rc   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_setrc   r   )r   s   "r   r   "PyJWTSetWithTimestamp.__annotate__   s     * * *r   c                	F    Wn         \        P                  ! 4       V n        R # rZ   )r   time	monotonic	timestamp)r8   r   s   &&r   r9   PyJWTSetWithTimestamp.__init__   s    )r   c                   V ^8  d   QhRR/# )r   r   rc   r   )r   s   "r   r   r      s      X r   c                	    V P                   # rZ   )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                   # rZ   )r   rL   s   &r   get_timestamp#PyJWTSetWithTimestamp.get_timestamp   s    ~~r   )r   r   N)r[   r\   r]   r^   r9   r   r   ra   r   r   r   r~   r~      s    * r   r~   )
__future__r   rD   r   collections.abcr   typingr   
algorithmsr   r   r   
exceptionsr	   r
   r   r   r   typesr   r   rc   r~   r   r   r   <module>r      sK    "   $  Q Q  q/ q/h) )X	 	r   