
    k7i                     B    S SK Jr  SSKJr  SSKJr   " S S5      rS rg)	    )
json_loads   )load_pem_key)KeySetc                   P    \ rS rSr0 r\SS j5       r\SS j5       r\S 5       rSr	g)	
JsonWebKey   Nc                 D    U R                   U   nUR                  X#U5      $ )a   Generate a Key with the given key type, curve name or bit size.

:param kty: string of ``oct``, ``RSA``, ``EC``, ``OKP``
:param crv_or_size: curve name or bit size
:param options: a dict of other options for Key
:param is_private: create a private key or public key
:return: Key instance
)JWK_KEY_CLSgenerate_key)clsktycrv_or_sizeoptions
is_privatekey_clss         R/home/james-whalen/.local/lib/python3.13/site-packages/authlib/jose/rfc7517/jwk.pyr   JsonWebKey.generate_key
   s%     //#&##K*EE    c                 r   SnUb  UR                  S5      nUc&  [        U[        5      (       a  UR                  S5      nUcV  [        U5      nU R                   H;  nU R                  U   nUR                  U5      (       d  M*  UR                  XB5      s  $    U R                  U   nUR                  X5      $ )zEImport a Key from bytes, string, PEM or dict.

:return: Key instance
Nr   )get
isinstancedictr   r   validate_raw_key
import_key)r   rawr   r   raw_key_ktyr   s          r   r   JsonWebKey.import_key   s     ++e$C;:c400''%.C;"3'G//$/++G44"--g?? (
 //#&!!#//r   c                     [        U5      n[        U[        5      (       aA  SU;   a;  UR                  S5      n[	        U Vs/ s H  o0R                  U5      PM     sn5      $ [        S5      es  snf )zMImport KeySet from string, dict or a list of keys.

:return: KeySet instance
keyszInvalid key set format)_transform_raw_keyr   r   r   r   r   
ValueError)r   r   r!   ks       r   import_key_setJsonWebKey.import_key_set.   s`     !%c4  Vs]776?Dd;d>>!,d;<<122 <s   A- )NF)N)
__name__
__module____qualname____firstlineno__r   classmethodr   r   r%   __static_attributes__r'   r   r   r   r      sC    K
F 
F 0 0, 	3 	3r   r   c                     [        U [        5      (       a7  U R                  S5      (       a!  U R                  S5      (       a  [	        U 5      $ [        U [
        [        45      (       a  SU 0$ U $ )N{}r!   )r   str
startswithendswithr   tuplelist)r   s    r   r"   r"   ;   sU    #ss 3 3S8I8I#	C%	'	'}Jr   N)authlib.common.encodingr   _cryptography_keyr   key_setr   r   r"   r'   r   r   <module>r9      s    . + 13 13hr   