MOON
Server: Apache
System: Linux server30c.hostingraja.org 3.10.0-962.3.2.lve1.5.63.el7.x86_64 #1 SMP Fri Oct 8 12:03:35 UTC 2021 x86_64
User: jibhires (1887)
PHP: 8.1.30
Disabled: show_source, system, shell_exec, passthru, exec, popen, proc_open, allow_url_fopen, symlink, escapeshellcmd, pcntl_exec
Upload Files
File: //opt/alt/python37/lib/python3.7/site-packages/jwt/__pycache__/api_jws.cpython-37.pyc
B

�b�[��@s�ddlZddlZddlZy ddlmZmZmZmZmZWne	k
rLYnXddl
mZmZm
Z
mZddlmZmZmZmZddlmZmZmZmZddlmZmZmZmZGdd	�d	e�Ze�Z e j!Z!e j"Z"e j#Z#e j$Z$e j%Z%dS)
�N)�Callable�Dict�List�Optional�Union�)�	Algorithm�get_default_algorithms�
has_crypto�requires_cryptography)�Mapping�binary_type�string_types�	text_type)�DecodeError�InvalidAlgorithmError�InvalidSignatureError�InvalidTokenError)�base64url_decode�base64url_encode�force_bytes�
merge_dictc@s|eZdZdZddd�Zedd��Zdd�Zd	d
�Zdd�Z	ddd�Z
d dd�Zdd�Zdd�Z
d!dd�Zdd�Zdd�ZdS)"�PyJWSZJWTNcCsjt�|_|dk	rt|�nt|j�|_x(t|j���D]}||jkr4|j|=q4W|sVi}t|��|�|_dS)N)	r	�_algorithms�set�_valid_algs�list�keysr�_get_default_options�options)�self�
algorithmsr�key�r#�</opt/alt/python37/lib/python3.7/site-packages/jwt/api_jws.py�__init__s
zPyJWS.__init__cCsddiS)N�verify_signatureTr#r#r#r#r$r'szPyJWS._get_default_optionscCs>||jkrtd��t|t�s$td��||j|<|j�|�dS)zW
        Registers a new Algorithm for use when creating and verifying tokens.
        z Algorithm already has a handler.z!Object is not of type `Algorithm`N)r�
ValueError�
isinstancer�	TypeErrorr�add)r �alg_id�alg_objr#r#r$�register_algorithm-s


zPyJWS.register_algorithmcCs*||jkrtd��|j|=|j�|�dS)z�
        Unregisters an Algorithm for use when creating and verifying tokens
        Throws KeyError if algorithm is not registered.
        zJThe specified algorithm could not be removed because it is not registered.N)r�KeyErrorr�remove)r r+r#r#r$�unregister_algorithm:s
zPyJWS.unregister_algorithmcCs
t|j�S)zM
        Returns a list of supported values for the 'alg' parameter.
        )rr)r r#r#r$�get_algorithmsFszPyJWS.get_algorithms�HS256cCs�g}|dkrd}||jkr|j|d�}|r>|�|�|�|�ttj|d|d��}|�t|��|�t|��d�	|�}	y$|j
|}
|
�|�}|
�|	|�}Wn6t
k
r�ts�|tkr�td|��ntd��YnX|�t|��d�	|�S)NZnone)�typ�alg)�,�:)Z
separators�cls�.zFAlgorithm '%s' could not be found. Do you have cryptography installed?zAlgorithm not supported)r�
header_typ�_validate_headers�updater�json�dumps�appendr�joinr�prepare_keyZsignr.r
r�NotImplementedError)r �payloadr"�	algorithm�headersZjson_encoderZsegments�headerZjson_header�
signing_inputr,�	signaturer#r#r$�encodeLs8







zPyJWS.encode�Tc
Kslt|j|�}|d}|r(|s(t�dt�|�|�\}	}
}}|sPtjdtdd�n|rh|�|	|
||||�|	S)Nr&z�It is strongly recommended that you pass in a value for the "algorithms" argument when calling decode(). This argument will be mandatory in a future version.zSThe verify parameter is deprecated. Please use verify_signature in options instead.�)�
stacklevel)rr�warnings�warn�DeprecationWarning�_load�_verify_signature)
r �jwtr"�verifyr!r�kwargsZmerged_optionsr&rBrFrErGr#r#r$�decode�szPyJWS.decodecCs|�|�d}|�|�|S)z�Returns back the JWT header parameters as a dict()

        Note: The signature is not verified so the header parameters
        should not be fully trusted until signature verification is complete
        rJ)rOr:)r rQrDr#r#r$�get_unverified_header�s
zPyJWS.get_unverified_headerc
Csht|t�r|�d�}tt|�t�s0td�t���y$|�dd�\}}|�	dd�\}}Wnt
k
rptd��YnXyt|�}Wn"tt
jfk
r�td��YnXyt�|�d��}Wn.t
k
r�}ztd|��Wdd}~XYnXt|t�s�td��yt|�}	Wn$tt
jfk
�r(td	��YnXyt|�}
Wn$tt
jfk
�rZtd
��YnX|	|||
fS)Nzutf-8z'Invalid token type. Token must be a {0}r8rzNot enough segmentszInvalid header paddingzInvalid header string: %sz,Invalid header string: must be a json objectzInvalid payload paddingzInvalid crypto padding)r(rrH�
issubclass�typer
r�format�rsplit�splitr'rr)�binascii�Errorr<�loadsrTr)r rQrFZcrypto_segmentZheader_segmentZpayload_segmentZheader_datarE�erBrGr#r#r$rO�s:


zPyJWS._loadc	Csr|�d�}|dk	r"||kr"td��y.|j|}|�|�}|�|||�sNtd��Wntk
rltd��YnXdS)Nr4z&The specified alg value is not allowedzSignature verification failedzAlgorithm not supported)�getrrr@rRrr.)	r rBrFrErGr"r!r4r,r#r#r$rP�s


zPyJWS._verify_signaturecCsd|kr|�|d�dS)N�kid)�
_validate_kid)r rDr#r#r$r:�szPyJWS._validate_headerscCst|t�std��dS)Nz(Key ID header parameter must be a string)r(rr)r r`r#r#r$ra�s
zPyJWS._validate_kid)NN)r2NN)rITNN)rIN)�__name__�
__module__�__qualname__r9r%�staticmethodrr-r0r1rHrTrUrOrPr:rar#r#r#r$rs$

	
2
(
r)&r[r<rL�typingrrrrr�ImportErrorr!rr	r
r�compatrr
rr�
exceptionsrrrrZutilsrrrr�objectrZ_jws_global_objrHrTr-r0rUr#r#r#r$�<module>s$ Y