%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /snap/core18/current/usr/lib/python3/dist-packages/cryptography/__pycache__/
Upload File :
Create Path :
Current File : //snap/core18/current/usr/lib/python3/dist-packages/cryptography/__pycache__/fernet.cpython-36.pyc

3

�dZ��@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�5/usr/lib/python3/dist-packages/cryptography/fernet.pyr
sr
�<c@s<eZdZddd�Zedd��Zdd�Zdd	�Zd
d
d�ZdS)�FernetNcCsR|dkrt�}tj|�}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__cCstjtjd��S)Nr)r�urlsafe_b64encode�os�urandom)�clsrrr�generate_key,szFernet.generate_keycCs$ttj��}tjd�}|j|||�S)Nr)�int�timer#r$�_encrypt_from_parts)r�data�current_time�ivrrr�encrypt0s
zFernet.encryptcCs�t|t�std��tjtjj�j�}|j	|�|j
�}ttj|j�t
j|�|j�j�}|j	|�|j
�}dtjd|�||}t|jtj�|jd�}	|	j	|�|	j
�}
tj||
�S)Nzdata must be bytes.��z>Q)r )�
isinstance�bytes�	TypeErrorr�PKCS7r
�AES�
block_size�padder�update�finalizer	rr�CBCr�	encryptor�structZpackrrr�SHA256rr")rr*r+r,r5Zpadded_datar9�
ciphertextZbasic_parts�hZhmacrrrr)5s

zFernet._encrypt_from_partsc
+Cs�t|t�std��ttj��}ytj|�}Wnttjfk
rJt	�YnX|sbt
j|d�dkrft	�ytj
d|dd��\}Wntjk
r�t	�YnX|dk	r�|||kr�t	�|t|kr�t	�t|jtj�|jd�}|j|dd
��y|j|dd��Wntk
�rt	�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
�r�t	�YnX|S)
Nztoken must be bytes.r�z>Q��	)r r�i��i��i��)%r/r0r1r'r(rr�binascii�Errorr
�sixZ
indexbytesr:Zunpack�error�_MAX_CLOCK_SKEWrrrr;rr6Zverifyrr	r
r3rrr8�	decryptorr7rrr2r4�unpadder)
r�token�ttlr+r*Z	timestampr=r,r<rGZplaintext_paddedrHZunpaddedrrr�decryptIsP







zFernet.decrypt)N)N)	rrrr!�classmethodr&r-r)rKrrrrrs

rc@s&eZdZdd�Zdd�Zddd�ZdS)	�MultiFernetcCst|�}|std��||_dS)Nz1MultiFernet requires at least one Fernet instance)�listr�_fernets)rZfernetsrrrr!~s
zMultiFernet.__init__cCs|jdj|�S)Nr)rOr-)r�msgrrrr-�szMultiFernet.encryptNcCs:x0|jD]&}y|j||�Stk
r,YqXqWt�dS)N)rOrKr
)rrPrJ�frrrrK�s
zMultiFernet.decrypt)N)rrrr!r-rKrrrrrM}srM)Z
__future__rrrrrBr#r:r(rDZcryptography.exceptionsrZcryptography.hazmat.backendsrZcryptography.hazmat.primitivesrrZ&cryptography.hazmat.primitives.ciphersr	r
rZ#cryptography.hazmat.primitives.hmacr�	Exceptionr
rF�objectrrMrrrr�<module>s`

Zerion Mini Shell 1.0