
    k7iu                     ^    S SK Jr  SSKJr  SSKJr  SSKJr   " S S5      r " S S	\5      rg
)    )add_params_to_qs   )client_secret_jwt_sign)private_key_jwt_sign)ASSERTION_TYPEc                   6    \ rS rSrSrSrSrS
S jrS rS r	S	r
g)ClientSecretJWT   a8  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                 <    Xl         X l        X0l        Ub  X@l        g g )N)token_endpointclaimsheadersalg)selfr   r   r   r   s        U/home/james-whalen/.local/lib/python3.13/site-packages/authlib/oauth2/rfc7523/auth.py__init__ClientSecretJWT.__init__#   s!    ,?H     c           	          [        UR                  UR                  UU R                  U R                  U R
                  S9$ N)	client_idr   r   headerr   )r   client_secretr   r   r   r   r   authr   s      r   signClientSecretJWT.sign*   s7    %nn);;<<
 	
r   c                     U R                   nU(       d  UnU R                  X5      n[        U=(       d    SS[        4SU4/5      nX4U4$ )N client_assertion_typeclient_assertion)r   r   r   r   )r   r   methodurir   bodyr   r#   s           r   __call__ClientSecretJWT.__call__4   sX    ,, N99T:JB(.9#%56
 T!!r   )r   r   r   r   )NNNN)__name__
__module____qualname____firstlineno____doc__namer   r   r   r'   __static_attributes__ r   r   r	   r	      s"    . D
C
"r   r	   c                   &    \ rS rSrSrSrSrS rSrg)PrivateKeyJWTD   a3  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           	          [        UR                  UR                  UU R                  U R                  U R
                  S9$ r   )r   r   r   r   r   r   r   s      r   r   PrivateKeyJWT.sign_   s7    #nn);;<<
 	
r   r0   N)	r)   r*   r+   r,   r-   r.   r   r   r/   r0   r   r   r2   r2   D   s    . D
C
r   r2   N)	authlib.common.urlsr   	assertionr   r   clientr   r	   r2   r0   r   r   <module>r;      s(    0 - + "9" 9"x#
O #
r   