Your IP : 18.224.54.118


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.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�base64�urlsafe_b64decode)r�remrrr�base64url_decodes

rcCst�|��dd�S)Nr�)r�urlsafe_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)�binascii�a2b_hexr)r*r+Z
padded_hexZ
big_endianrrr�number_to_bytes<sr/)�stringrcCstt�|�d�S)N�)r&r-�b2a_hex)r0rrr�bytes_to_numberBsr3cCs6|}d}x|dkr$|d?}|d7}q
W|j|ddd�S)Nr��r$F)�signed)�to_bytes)r�	remainingZbyte_lengthrrrr!Fs
r!)�der_sig�curvercCs2|j}|dd}t|�\}}t||�t||�S)N�r4)�key_sizerr/)r9r:�num_bitsr+�r�srrr�der_to_raw_signatureQsr@)�raw_sigr:rcCsT|j}|dd}t|�d|kr*td��t|d|��}t||d��}t||�S)Nr;r4r,zInvalid signature)r<rr r3r)rAr:r=r+r>r?rrr�raw_to_der_signatureZsrB)rr-�typingrrZ,cryptography.hazmat.primitives.asymmetric.ecrZ/cryptography.hazmat.primitives.asymmetric.utilsrr�ModuleNotFoundErrorr
rrrrr&r#r)r/r3r!r@rBrrrr�<module>s"
		

?>