o
    ÿÑÐb\  ã                   @   sX   d dl Z d dlmZ d dlmZ 		ddd„Z		ddd„Z			dd
d„Zddd„ZdS )é    N)Újwt)Úgenerate_tokenc                 K   s¢   |d u ri }|  dd ¡}	|	d ur|	|d< d|vrtdƒ‚||dœ}
|r'||
d< |s/tt ¡ ƒ}|  dd¡}|s;|| }||
d< ||
d< |rJ|
 |¡ t ||
| ¡S )	NÚalgzMissing "alg" in header)ZissZaudÚsubÚ
expires_ini  ZiatÚexp)ÚpopÚ
ValueErrorÚintÚtimeÚupdater   Úencode)ÚkeyÚissuerÚaudienceÚsubjectZ	issued_atZ
expires_atÚclaimsÚheaderÚkwargsr   Úpayloadr   © r   ú_/var/www/secure340b-portal/env/lib/python3.10/site-packages/authlib/oauth2/rfc7523/assertion.pyÚsign_jwt_bearer_assertion   s(   

r   ÚHS256c                 K   ó   t | |||f||dœ|¤ŽS ©N)r   r   ©Ú_sign)Zclient_secretÚ	client_idÚtoken_endpointr   r   r   r   r   r   r   Úclient_secret_jwt_sign(   ó   ÿÿÿr    ÚRS256c                 K   r   r   r   )Zprivate_keyr   r   r   r   r   r   r   r   r   Úprivate_key_jwt_sign.   r!   r#   c           	   	   K   sH   |}|}|}|d u ri }d|vrt dƒ|d< td| |||||dœ|¤ŽS )NZjtié$   )r   r   r   r   r   r   r   )r   r   )	r   r   r   r   r   r   r   r   r   r   r   r   r   4   s   þþr   )NNNNN)r   NN)r"   NN)N)	r   Zauthlib.joser   Zauthlib.common.securityr   r   r    r#   r   r   r   r   r   Ú<module>   s    
þ"
ÿ
ÿ