Your IP : 52.14.7.103


Current Path : /opt/alt/python37/lib/python3.7/site-packages/jwt/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib/python3.7/site-packages/jwt/__pycache__/utils.cpython-37.opt-1.pyc

B

���_�	�@sddlZddlZddlmZmZy ddlmZddlmZm	Z	Wne
k
rXeZYnXeeefed�dd�Z
eeefed�d	d
�Zeed�dd�Zeed
�dd�Zeeefed
�dd�Zeeed�dd�Zeed�dd�Zeed
�dd�Zeeed�dd�Zeeed�dd�ZdS) �N)�Any�Union)�
EllipticCurve)�decode_dss_signature�encode_dss_signature)�value�returncCs.t|t�r|�d�St|t�r"|Std��dS)Nzutf-8zExpected a string value)�
isinstance�str�encode�bytes�	TypeError)r�r�:/opt/alt/python37/lib/python3.7/site-packages/jwt/utils.py�force_bytess



r)�inputrcCsBt|t�r|�d�}t|�d}|dkr8|dd|7}t�|�S)N�ascii�r�=)r	r
r�len�base64Zurlsafe_b64decode)rZremrrr�base64url_decodes

rcCst�|��dd�S)Nr�)rZurlsafe_b64encode�replace)rrrr�base64url_encode$sr)�valrcCs0|dkrtd��t|�}t|�dkr(d}t|�S)NrzMust be a positive integer�)�
ValueError�bytes_from_intrr)r�	int_bytesrrr�to_base64url_uint(sr cCs*t|t�r|�d�}t|�}tj|dd�S)Nr�big)�	byteorder)r	r
rr�int�
from_bytes)r�datarrr�from_base64url_uint4s

r&)�num�	num_bytesrcCs$dd||f}t�|�d��}|S)Nz%0*x�r)�binasciiZa2b_hexr)r'r(Z
padded_hexZ
big_endianrrr�number_to_bytes<sr+)�stringrcCstt�|�d�S)N�)r#r*Zb2a_hex)r,rrr�bytes_to_numberBsr.cCs6|}d}x|dkr$|d?}|d7}q
W|j|ddd�S)Nr��r!F)�signed)�to_bytes)r�	remainingZbyte_lengthrrrrFs
r)�der_sig�curvercCs2|j}|dd}t|�\}}t||�t||�S)N�r/)�key_sizerr+)r4r5�num_bitsr(�r�srrr�der_to_raw_signatureQsr;)�raw_sigr5rcCsT|j}|dd}t|�d|kr*td��t|d|��}t||d��}t||�S)Nr6r/r)zInvalid signature)r7rrr.r)r<r5r8r(r9r:rrr�raw_to_der_signatureZsr=)rr*�typingrrZ,cryptography.hazmat.primitives.asymmetric.ecrZ/cryptography.hazmat.primitives.asymmetric.utilsrr�ModuleNotFoundErrorr
rrrrr#r r&r+r.rr;r=rrrr�<module>s"
		

?>