Spamworldpro Mini Shell
Spamworldpro


Server : Apache/2.4.52 (Ubuntu)
System : Linux webserver 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 17:42:15 UTC 2 x86_64
User : www-data ( 33)
PHP Version : 8.1.2-1ubuntu2.21
Disable Function : NONE
Directory :  /lib/python3/dist-packages/cryptography/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/cryptography/__pycache__/fernet.cpython-310.pyc
o

�)%a��@s�ddlZddlZddlZddlZddlZddlZddlmZddlm	Z	ddl
mZddlm
Z
mZddlmZmZmZddlmZGdd	�d	e�Zd
ZGdd�de�ZGd
d�de�ZdS)�N)�utils)�InvalidSignature)�_get_backend)�hashes�padding)�Cipher�
algorithms�modes)�HMACc@seZdZdS)�InvalidTokenN)�__name__�
__module__�__qualname__�rr�5/usr/lib/python3/dist-packages/cryptography/fernet.pyrsr�<c	@seZdZd!defdd�Zedefdd��Zdedefd	d
�Zdededefdd
�Z	dedededefdd�Z
d!dedejedefdd�Z
dedededefdd�Zdedefdd�Zededejeeffdd��Zdeddfdd�Zdededejejeefdefdd �ZdS)"�FernetN�keycCsLt|�}t�|�}t|�dkrtd��|dd�|_|dd�|_||_dS)N� z4Fernet key must be 32 url-safe base64-encoded bytes.�)r�base64�urlsafe_b64decode�len�
ValueError�_signing_key�_encryption_key�_backend)�selfr�backendrrr�__init__s
�
zFernet.__init__�returncCst�t�d��S)Nr)r�urlsafe_b64encode�os�urandom)�clsrrr�generate_key*szFernet.generate_key�datacC�|�|tt����S�N��encrypt_at_time�int�time)rr&rrr�encrypt.�zFernet.encrypt�current_timecCst�d�}|�|||�S)Nr)r"r#�_encrypt_from_parts)rr&r/�ivrrrr*1s
zFernet.encrypt_at_timer1cCs�t�d|�t�tjj���}|�|�|�	�}t
t�|j�t�
|�|j���}|�|�|�	�}dt�d|�||}t|jt��|jd�}	|	�|�|	�	�}
t�||
�S)Nr&���>Q�r)r�_check_bytesr�PKCS7r�AES�
block_size�padder�update�finalizerrr	�CBCr�	encryptor�struct�packr
rr�SHA256rr!)rr&r/r1r9�padded_datar=�
ciphertext�basic_parts�h�hmacrrrr05s���
zFernet._encrypt_from_parts�token�ttlcCs:t�|�\}}|durd}n|tt���f}|�|||�Sr()r�_get_unverified_token_datar+r,�
_decrypt_data)rrFrG�	timestampr&�	time_inforrr�decryptJs
zFernet.decryptcCs0|durtd��t�|�\}}|�||||f�S)Nz6decrypt_at_time() can only be used with a non-None ttl)rrrHrI)rrFrGr/rJr&rrr�decrypt_at_timeRs�zFernet.decrypt_at_timecCst�|�\}}|�|�|Sr()rrH�_verify_signature)rrFrJr&rrr�extract_timestamp\s
zFernet.extract_timestampc	Cs~t�d|�zt�|�}Wnttjfyt�w|r"|ddkr$t�zt�	d|dd��\}W||fStj
y>t�w)NrFr�r3��	)rr5rr�	TypeError�binascii�Errorrr>�unpack�error)rFr&rJrrrrHbs���z!Fernet._get_unverified_token_datacCsTt|jt��|jd�}|�|dd��z|�|dd��WdSty)t�w)Nr4���)	r
rrr@rr:�verifyrr)rr&rDrrrrNss�zFernet._verify_signaturerJrKcCs�|dur|\}}|||krt�|t|krt�|�|�|dd�}|dd�}tt�|j�t�|�|j	��
�}|�|�}	z|	|��7}	Wn	t
yOt�wt�tjj���}
|
�|	�}z	||
��7}W|St
ypt�w)NrR�rX)r�_MAX_CLOCK_SKEWrNrrr7rr	r<r�	decryptorr:r;rrr6r8�unpadder)rr&rJrKrGr/r1rBr\�plaintext_paddedr]�unpaddedrrrrI{s8
��
�
��zFernet._decrypt_datar()rr
r�bytesr�classmethodr%r-r+r*r0�typing�OptionalrLrMrO�staticmethod�TuplerHrNrIrrrrrsL
���
����
�
����rc@s�eZdZdejefdd�Zdedefdd�Zdede	defd	d
�Z
dedefdd�Zddedeje	defdd�Z
dede	de	defdd�Zd
S)�MultiFernet�fernetscCst|�}|s
td��||_dS)Nz1MultiFernet requires at least one Fernet instance)�listr�_fernets)rrgrrrr�s�
zMultiFernet.__init__�msgr cCr'r(r))rrjrrrr-�r.zMultiFernet.encryptr/cCs|jd�||�S)Nr)rir*)rrjr/rrrr*�szMultiFernet.encrypt_at_timec	Csbt�|�\}}|jD]}z
|�||d�}WntyYq
wt�t�d�}|jd�|||�S)Nrr)rrHrirIrr"r#r0)rrjrJr&�f�pr1rrr�rotate�s
�
zMultiFernet.rotateNrGc	Cs4|jD]}z	|�||�WStyYqwt�r()rirLr)rrjrGrkrrrrL�s
�zMultiFernet.decryptc	Cs6|jD]}z
|�|||�WStyYqwt�r()rirMr)rrjrGr/rkrrrrM�s
�zMultiFernet.decrypt_at_timer()rr
rrb�Iterablerrr`r-r+r*rmrcrLrMrrrrrf�s����rf)rrTr"r>r,rb�cryptographyr�cryptography.exceptionsr�cryptography.hazmat.backendsr�cryptography.hazmat.primitivesrr�&cryptography.hazmat.primitives.ciphersrrr	�#cryptography.hazmat.primitives.hmacr
�	Exceptionrr[�objectrrfrrrr�<module>s"

Spamworldpro Mini