File: //usr/local/CyberCP/lib/python3.10/site-packages/jwt/__pycache__/utils.cpython-310.pyc
o
�h8 � @ s� d dl Z d dlZd dlZd dlmZmZ zd dlmZ d dlm Z m
Z
W n ey- Y nw deee
f defdd�Zd eee
f defd
d�Zd edefdd
�Zdd�dedee defdd�Zdeee
f defdd�Zdededefdd�Zdedefdd�Zdd�dedee defdd�Zdedd defd!d"�Zd#edd defd$d%�Zh d&�Ze�d'd(�e� d) ej�Zd*edefd+d,�Zd-Z d*edefd.d/�Z!dS )0� N)�Optional�Union)�
EllipticCurve)�decode_dss_signature�encode_dss_signature�value�returnc C s* t | t�r
| �d�S t | t�r| S td��)Nzutf-8zExpected a string value)�
isinstance�str�encode�bytes� TypeError)r � r �</usr/local/CyberCP/lib/python3.10/site-packages/jwt/utils.py�force_bytes s
r �inputc C s6 t | �}t|�d }|dkr|dd| 7 }t�|�S )N� r � =)r �len�base64�urlsafe_b64decode)r �input_bytes�remr r r �base64url_decode s
r c C s t �| ��dd�S )Nr � )r �urlsafe_b64encode�replace)r r r r �base64url_encode$ s r ��
bit_length�valr c C s4 | dk rt d��t| |d�}t|�dkrd}t|�S )Nr zMust be a positive integerr � )�
ValueError�bytes_from_intr r )r r � int_bytesr r r �to_base64url_uint( s r% c C s t t| ��}tj|dd�S )N�big)� byteorder)r r �int�
from_bytes)r �datar r r �from_base64url_uint4 s r+ �num� num_bytesc C s dd| | f }t �|�d��S )Nz%0*x� �ascii)�binascii�a2b_hexr )r, r- �
padded_hexr r r �number_to_bytes9 s r3 �stringc C s t t�| �d�S )N� )r( r0 �b2a_hex)r4 r r r �bytes_to_number>