Ë
    ”Âiu  ã                   ó^   — d dl mZ ddlmZ ddlmZ ddlmZ  G d„ d«      Z G d„ d	e«      Zy
)é    )Úadd_params_to_qsé   )Úclient_secret_jwt_sign)Úprivate_key_jwt_sign)ÚASSERTION_TYPEc                   ó,   — e Zd ZdZdZdZdd„Zd„ Zd„ Zy)	ÚClientSecretJWTa|  Authentication method for OAuth 2.0 Client. This authentication
    method is called ``client_secret_jwt``, which is using ``client_id``
    and ``client_secret`` constructed with JWT to identify a client.

    Here is an example of use ``client_secret_jwt`` with Requests Session::

        from authlib.integrations.requests_client import OAuth2Session

        token_endpoint = "https://example.com/oauth/token"
        session = OAuth2Session(
            "your-client-id",
            "your-client-secret",
            token_endpoint_auth_method="client_secret_jwt",
        )
        session.register_client_auth_method(ClientSecretJWT(token_endpoint))
        session.fetch_token(token_endpoint)

    :param token_endpoint: A string URL of the token endpoint
    :param claims: Extra JWT claims
    :param headers: Extra JWT headers
    :param alg: ``alg`` value, default is HS256
    Úclient_secret_jwtÚHS256Nc                 óB   — || _         || _        || _        |�|| _        y y )N)Útoken_endpointÚclaimsÚheadersÚalg)Úselfr   r   r   r   s        úS/var/www/timesheet/venv/lib/python3.12/site-packages/authlib/oauth2/rfc7523/auth.pyÚ__init__zClientSecretJWT.__init__#   s)   € Ø,ˆÔØˆŒØˆŒØˆ?ØˆD�Hð ó    c                 óˆ   — t        |j                  |j                  || j                  | j                  | j
                  ¬«      S ©N)Ú	client_idr   r   Úheaderr   )r   Úclient_secretr   r   r   r   ©r   Úauthr   s      r   ÚsignzClientSecretJWT.sign*   s7   € Ü%Ø×ÑØ—n‘nØ)Ø—;‘;Ø—<‘<Ø—‘ô
ð 	
r   c                 ó„   — | j                   }|s|}| j                  ||«      }t        |xs ddt        fd|fg«      }|||fS )NÚ Úclient_assertion_typeÚclient_assertion)r   r   r   r   )r   r   ÚmethodÚurir   Úbodyr   r    s           r   Ú__call__zClientSecretJWT.__call__4   s\   € Ø×,Ñ,ˆÙØ ˆNàŸ9™9 T¨>Ó:ÐÜØŠJ�Bà(¬.Ð9Ø#Ð%5Ð6ðó
ˆð �G˜TÐ!Ð!r   )NNNN)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__Únamer   r   r   r$   © r   r   r	   r	      s"   „ ñð. €DØ
€Cóò
ó"r   r	   c                   ó   — e Zd ZdZdZdZd„ Zy)ÚPrivateKeyJWTaw  Authentication method for OAuth 2.0 Client. This authentication
    method is called ``private_key_jwt``, which is using ``client_id``
    and ``private_key`` constructed with JWT to identify a client.

    Here is an example of use ``private_key_jwt`` with Requests Session::

        from authlib.integrations.requests_client import OAuth2Session

        token_endpoint = "https://example.com/oauth/token"
        session = OAuth2Session(
            "your-client-id",
            "your-client-private-key",
            token_endpoint_auth_method="private_key_jwt",
        )
        session.register_client_auth_method(PrivateKeyJWT(token_endpoint))
        session.fetch_token(token_endpoint)

    :param token_endpoint: A string URL of the token endpoint
    :param claims: Extra JWT claims
    :param headers: Extra JWT headers
    :param alg: ``alg`` value, default is RS256
    Úprivate_key_jwtÚRS256c                 óˆ   — t        |j                  |j                  || j                  | j                  | j
                  ¬«      S r   )r   r   r   r   r   r   r   s      r   r   zPrivateKeyJWT.sign_   s7   € Ü#Ø×ÑØ—n‘nØ)Ø—;‘;Ø—<‘<Ø—‘ô
ð 	
r   N)r%   r&   r'   r(   r)   r   r   r*   r   r   r,   r,   D   s   „ ñð. €DØ
€Có
r   r,   N)	Úauthlib.common.urlsr   Ú	assertionr   r   Úclientr   r	   r,   r*   r   r   ú<module>r3      s(   ðÝ 0å -Ý +Ý "÷9"ñ 9"ôx#
�Oõ #
r   