HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/env/lib/python3.10/site-packages/jwt/__pycache__/utils.cpython-310.pyc
o

we?�@s�ddlZddlZddlZddlmZzddlmZddlmZm	Z	Wn	e
y+Ynwdeeefdefdd�Z
d	eeefdefd
d�Zd	edefdd
�Zdedefdd�Zdeeefdefdd�Zdededefdd�Zdedefdd�Zdedefdd�Zdedddefdd �Zd!edddefd"d#�Zhd$�Ze�d%d&�e�d'ej�Zd(edefd)d*�Zd+Ze�d,�Z gd-�Z!d(edefd.d/�Z"dS)0�N)�Union)�
EllipticCurve)�decode_dss_signature�encode_dss_signature�value�returncCs*t|t�r
|�d�St|t�r|Std��)Nzutf-8zExpected a string value)�
isinstance�str�encode�bytes�	TypeError)r�r
�B/home/arjun/projects/env/lib/python3.10/site-packages/jwt/utils.py�force_bytess



r�inputcCs6t|�}t|�d}|dkr|dd|7}t�|�S)N�r�=)r�len�base64�urlsafe_b64decode)r�input_bytes�remr
r
r�base64url_decodes

rcCst�|��dd�S)Nr�)r�urlsafe_b64encode�replace)rr
r
r�base64url_encode$sr�valcCs0|dkrtd��t|�}t|�dkrd}t|�S)NrzMust be a positive integer�)�
ValueError�bytes_from_intrr)r�	int_bytesr
r
r�to_base64url_uint(sr"cCstt|��}tj|dd�S)N�big)�	byteorder)rr�int�
from_bytes)r�datar
r
r�from_base64url_uint4sr(�num�	num_bytescCs dd||f}t�|�d��S)Nz%0*x��ascii)�binascii�a2b_hexr
)r)r*�
padded_hexr
r
r�number_to_bytes9sr0�stringcCstt�|�d�S)N�)r%r-�b2a_hex)r1r
r
r�bytes_to_number>sr4cCs8|}d}|dkr|dL}|d7}|dks|j|ddd�S)Nr��r#F)�signed)�to_bytes)r�	remaining�byte_lengthr
r
rr Bs�r �der_sig�curvercCs2|j}|dd}t|�\}}t||�t||�S)N�r5)�key_sizerr0)r;r<�num_bitsr*�r�sr
r
r�der_to_raw_signatureMsrB�raw_sigcCsX|j}|dd}t|�d|krtd��t|d|��}t||d��}tt||��S)Nr=r5r+zInvalid signature)r>rrr4rr)rCr<r?r*r@rAr
r
r�raw_to_der_signatureVsrD>�X509 CRL�
PUBLIC KEY�CERTIFICATE�PRIVATE KEY�
DH PARAMETERS�EC PRIVATE KEY�RSA PUBLIC KEY�DSA PRIVATE KEY�RSA PRIVATE KEY�SSH2 PUBLIC KEY�CERTIFICATE REQUEST�OPENSSH PRIVATE KEY�TRUSTED CERTIFICATE�ENCRYPTED PRIVATE KEY�NEW CERTIFICATE REQUEST�SSH2 ENCRYPTED PRIVATE KEYs----[- ]BEGIN (�|s,)[- ]----
?
.+?
?
----[- ]END \1[- ]----
?
?�keycCstt�|��S�N)�bool�_PEM_RE�search�rVr
r
r�
is_pem_format�sr\s-cert-v01@openssh.coms\A(\S+)[ \t]+(\S+))sssh-ed25519sssh-rsasssh-dsssecdsa-sha2-nistp256secdsa-sha2-nistp384secdsa-sha2-nistp521csPt�fdd�tD��r
dSt���}|r&|�d�}t|tt�d�kr&dSdS)Nc3s�|]}|�vVqdSrWr
)�.0�string_valuer[r
r�	<genexpr>�s�zis_ssh_key.<locals>.<genexpr>Tr6F)�any�_SSH_KEY_FORMATS�_SSH_PUBKEY_RC�match�group�_CERT_SUFFIXr)rV�ssh_pubkey_match�key_typer
r[r�
is_ssh_key�s

rh)#rr-�re�typingr�,cryptography.hazmat.primitives.asymmetric.ecr�/cryptography.hazmat.primitives.asymmetric.utilsrr�ModuleNotFoundErrorrr	rrrr%r"r(r0r4r rBrD�_PEMS�compile�join�DOTALLrYrXr\rerbrarhr
r
r
r�<module>sD�		���