%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /snap/core/17212/usr/lib/python3/dist-packages/cryptography/__pycache__/
Upload File :
Create Path :
Current File : //snap/core/17212/usr/lib/python3/dist-packages/cryptography/__pycache__/fernet.cpython-35.pyc



�K�V��@sddlmZmZmZddlZddlZddlZddlZddlZddl	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@seZdZdS)�InvalidTokenN)�__name__�
__module__�__qualname__�rr�5/usr/lib/python3/dist-packages/cryptography/fernet.pyr
sr
�<c@sXeZdZddd�Zedd��Zdd�Zdd	�Zdd
d�ZdS)�FernetNcCsu|dkrt�}tj|�}t|�dkrBtd��|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__cCstjtjd��S)Nr)r�urlsafe_b64encode�os�urandom)�clsrrr�generate_key,szFernet.generate_keycCs4ttj��}tjd�}|j|||�S)Nr)�int�timer#r$�_encrypt_from_parts)r�data�current_time�ivrrr�encrypt0szFernet.encryptcCst|t�std��tjtjj�j�}|j	|�|j
�}ttj|j�t
j|�|j�j�}|j	|�|j
�}dtjd|�||}t|jtj�d|j�}	|	j	|�|	j
�}
tj||
�S)Nzdata must be bytes.s�z>Qr )�
isinstance�bytes�	TypeErrorr�PKCS7r
�AES�
block_size�padder�update�finalizer	rr�CBCr�	encryptor�structZpackrrr�SHA256rr")rr*r+r,r4Zpadded_datar8�
ciphertextZbasic_parts�hZhmacrrrr)5s-!
zFernet._encrypt_from_partsc
+Cs[t|t�std��ttj��}ytj|�}Wn!ttjfk
rct	�YnX|s�t
j|d�dkr�t	�y#tj
d|dd��\}Wntjk
r�t	�YnX|dk	r�|||kr�t	�|t|krt	�t|jtj�d|j�}|j|dd
��y|j|dd��Wntk
rot	�YnX|dd	�}|d	d�}ttj|j�tj|�|j�j�}	|	j|�}
y|
|	j�7}
Wnt k
r�t	�YnXt!j"tjj#�j$�}|j|
�}y||j�7}Wnt k
rVt	�YnX|S)
Nztoken must be bytes.r�z>Q��	r r�i��i��i��)%r.r/r0r'r(rr�binascii�Errorr
�sixZ
indexbytesr9Zunpack�error�_MAX_CLOCK_SKEWrrrr:rr5Zverifyrr	r
r2rrr7�	decryptorr6rrr1r3�unpadder)
r�token�ttlr+r*Z	timestampr<r,r;rFZplaintext_paddedrGZunpaddedrrr�decryptIsP#!
-

zFernet.decrypt)	rrrr!�classmethodr&r-r)rJrrrrrs
rc@s7eZdZdd�Zdd�Zddd�ZdS)�MultiFernetcCs+t|�}|std��||_dS)Nz1MultiFernet requires at least one Fernet instance)�listr�_fernets)rZfernetsrrrr!|s
	zMultiFernet.__init__cCs|jdj|�S)Nr)rNr-)r�msgrrrr-�szMultiFernet.encryptNcCsGx:|jD]/}y|j||�SWq
tk
r8Yq
Xq
Wt�dS)N)rNrJr
)rrOrI�frrrrJ�s
	zMultiFernet.decrypt)rrrr!r-rJrrrrrL{srL)Z
__future__rrrrrAr#r9r(rCZcryptography.exceptionsrZcryptography.hazmat.backendsrZcryptography.hazmat.primitivesrrZ&cryptography.hazmat.primitives.ciphersr	r
rZ#cryptography.hazmat.primitives.hmacr�	Exceptionr
rE�objectrrLrrrr�<module>s^

Zerion Mini Shell 1.0