%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /opt/alt/python37/lib64/python3.7/site-packages/cryptography/__pycache__/
Upload File :
Create Path :
Current File : //opt/alt/python37/lib64/python3.7/site-packages/cryptography/__pycache__/fernet.cpython-37.pyc

B

\��`��@s�ddlmZmZmZddlZddlZddlZddlZddlZddl	Z	ddl
mZddlm
Z
ddlmZmZddlmZmZmZddlmZGdd	�d	e�Zd
ZGdd�de�ZGd
d�de�ZdS)�)�absolute_import�division�print_functionN)�InvalidSignature)�default_backend)�hashes�padding)�Cipher�
algorithms�modes)�HMACc@seZdZdS)�InvalidTokenN)�__name__�
__module__�__qualname__�rr�F/opt/alt/python37/lib64/python3.7/site-packages/cryptography/fernet.pyr
sr
�<c@s`eZdZddd�Zedd��Zdd�Zdd	�Zdd
d�Zdd
�Z	e
dd��Zdd�Zdd�Z
dS)�FernetNcCsR|dkrt�}t�|�}t|�dkr,td��|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)�self�key�backendrrr�__init__s
zFernet.__init__cCst�t�d��S)Nr)r�urlsafe_b64encode�os�urandom)�clsrrr�generate_key,szFernet.generate_keycCs$tt���}t�d�}|�|||�S)Nr)�int�timer#r$�_encrypt_from_parts)r�data�current_time�ivrrr�encrypt0s
zFernet.encryptcCs�t|t�std��t�tjj���}|�	|�|�
�}tt�|j�t
�|�|j���}|�	|�|�
�}dt�d|�||}t|jt��|jd�}	|	�	|�|	�
�}
t�||
�S)Nzdata must be bytes.��z>Q)r )�
isinstance�bytes�	TypeErrorr�PKCS7r
�AES�
block_size�padder�update�finalizer	rr�CBCr�	encryptor�struct�packrrr�SHA256rr")rr*r+r,r5Zpadded_datar9�
ciphertextZbasic_parts�hZhmacrrrr)5s

zFernet._encrypt_from_partscCst�|�\}}|�|||�S)N)r�_get_unverified_token_data�
_decrypt_data)r�token�ttl�	timestampr*rrr�decryptIszFernet.decryptcCst�|�\}}|�|�|S)N)rr?�_verify_signature)rrArCr*rrr�extract_timestampMs
zFernet.extract_timestampc	Cs�t|t�std��yt�|�}Wnttjfk
r>t�YnX|rTt�	|d�dkrXt�yt
�d|dd��\}Wnt
jk
r�t�YnX||fS)Nztoken must be bytes.r�z>Q��	)
r/r0r1rr�binascii�Errorr
�sixZ
indexbytesr:�unpack�error)rAr*rCrrrr?Ss


z!Fernet._get_unverified_token_datacCs\t|jt��|jd�}|�|dd��y|�|dd��Wntk
rVt�YnXdS)N)r i��)	rrrr<rr6Zverifyrr
)rr*r>rrrrEfszFernet._verify_signaturecCs�tt���}|dk	r4|||kr$t�|t|kr4t�|�|�|dd�}|dd�}tt�|j�t	�
|�|j���}|�
|�}y||��7}Wntk
r�t�YnXt�tjj���}	|	�
|�}
y|
|	��7}
Wntk
r�t�YnX|
S)NrI�i��)r'r(r
�_MAX_CLOCK_SKEWrEr	r
r3rrr8r�	decryptorr6r7rrr2r4�unpadder)rr*rCrBr+r,r=rQZplaintext_paddedrRZunpaddedrrrr@ns.




zFernet._decrypt_data)N)N)rrrr!�classmethodr&r-r)rDrF�staticmethodr?rEr@rrrrrs

rc@s.eZdZdd�Zdd�Zdd�Zd
dd	�ZdS)�MultiFernetcCst|�}|std��||_dS)Nz1MultiFernet requires at least one Fernet instance)�listr�_fernets)rZfernetsrrrr!�s
zMultiFernet.__init__cCs|jd�|�S)Nr)rWr-)r�msgrrrr-�szMultiFernet.encryptc	Csjt�|�\}}x<|jD].}y|�||d�}PWqtk
rBYqXqWt�t�d�}|jd�|||�S)Nrr)rr?rWr@r
r#r$r))rrXrCr*�f�pr,rrr�rotate�s

zMultiFernet.rotateNc	Cs:x0|jD]&}y|�||�Stk
r,YqXqWt�dS)N)rWrDr
)rrXrBrYrrrrD�s
zMultiFernet.decrypt)N)rrrr!r-r[rDrrrrrU�srU)Z
__future__rrrrrJr#r:r(rLZcryptography.exceptionsrZcryptography.hazmat.backendsrZcryptography.hazmat.primitivesrrZ&cryptography.hazmat.primitives.ciphersr	r
rZ#cryptography.hazmat.primitives.hmacr�	Exceptionr
rP�objectrrUrrrr�<module>sp

Zerion Mini Shell 1.0