
    ~h\                     *    d dl mZ  G d d      Zd Zy)    )
json_dumpsc                   ,    e Zd ZdZd ZddZddZd Zy)KeySetz)This class represents a JSON Web Key Set.c                     || _         y )N)keys)selfr   s     X/opt/mcp/mcp-sentiment/venv/lib/python3.12/site-packages/authlib/jose/rfc7517/key_set.py__init__zKeySet.__init__   s	    	    c           	      f    d| j                   D cg c]  } |j                  |fi | c}iS c c}w )z5Represent this key as a dict of the JSON Web Key Set.r   )r   as_dict)r   
is_privateparamsks       r	   r   zKeySet.as_dict
   s/    $))LQ:88LMMLs   .c                 >     | j                   |fi |}t        |      S )z(Represent this key set as a JSON string.)r   r   )r   r   r   objs       r	   as_jsonzKeySet.as_json   s!    dll:00#r   c                    |'t        | j                        dk(  r| j                  d   S | j                  D cg c]  }|j                  |k(  s| }}|rt        t	        |fi |      }t        |      dk(  r|d   S t        d      c c}w )zFind the key matches the given kid value.

        :param kid: A string of kid
        :return: Key instance
        :raise: ValueError
           r   zInvalid JSON Web Key Set)lenr   kidlist_filter_keys_by_params
ValueError)r   r   r   keyr   s        r	   find_by_kidzKeySet.find_by_kid   s     ;3tyy>Q.99Q<#yy;CGGsN;;.t>v>?Dt9>7N344 <s   BBN)F)__name__
__module____qualname____doc__r
   r   r   r    r   r	   r   r      s    3N
5r   r   c              +      K   |j                  d      }|j                  d      }| D ]P  }|j                  j                  d      }|r|r||k7  r(|j                  j                  d      }|r|r||k7  rM| R y w)Nusealg)gettokens)r   r   _use_algr   designed_usedesigned_algs          r	   r   r   )   sx     ::eD::eD 	zz~~e,D\T%9zz~~e,D\T%9		s   A9A;N)authlib.common.encodingr   r   r   r!   r   r	   <module>r,      s    ."5 "5Jr   