Submit
Path:
~
/
/
opt
/
alt
/
python37
/
lib64
/
python3.7
/
site-packages
/
cryptography
/
hazmat
/
backends
/
openssl
/
__pycache__
/
File Content:
backend.cpython-37.opt-1.pyc
B \��`�' � @ s d dl mZmZmZ d dlZd dlZd dlZd dlZd dlZd dlm Z d dl Z d dlmZm Z d dlmZmZ d dlmZmZmZmZmZmZmZmZmZmZmZmZmZ d dlm Z d dl!m"Z" d d l#m$Z$ d d l%m&Z& d dl'm(Z(m)Z)m*Z*m+Z+ d dl,m-Z-m.Z.m/Z/ d d l0m1Z1m2Z2 d dl3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z: d dl;m<Z< d dl=m>Z> d dl?m@Z@mAZA d dlBmCZCmDZD d dlEmFZFmGZGmHZHmIZI d dlJmKZK d dlLmMZMmNZN d dlOmPZPmQZQmRZR d dlSmTZTmUZUmVZVmWZW d dlXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZa d dlbmcZcmdZdmeZemfZfmgZgmhZhmiZimjZj d dlkmlZl e�mdddg�Zne�oe�e�oe�e�oe�e�oe�e�oe�e�oe�e�oe�e�oe�e�oe�e�oe�e�oe�e�oe�e�peK�q� jrjse�G dd� det��������������ZuG d d!� d!et�Zvd"d#� Zweu� ZxdS )$� )�absolute_import�division�print_functionN)�contextmanager)�utils�x509)�UnsupportedAlgorithm�_Reasons) �CMACBackend� CipherBackend�DERSerializationBackend� DHBackend� DSABackend�EllipticCurveBackend�HMACBackend�HashBackend�PBKDF2HMACBackend�PEMSerializationBackend� RSABackend� ScryptBackend�X509Backend)�aead)�_CipherContext)�_CMACContext)� _Integers)� _DHParameters� _DHPrivateKey�_DHPublicKey�_dh_params_dup)�_DSAParameters�_DSAPrivateKey� _DSAPublicKey)�_EllipticCurvePrivateKey�_EllipticCurvePublicKey)�$_CRL_ENTRY_EXTENSION_ENCODE_HANDLERS�_CRL_EXTENSION_ENCODE_HANDLERS�_EXTENSION_ENCODE_HANDLERS�_encode_asn1_int_gc�_encode_asn1_str_gc�_encode_name_gc�_txt2obj_gc)�_HashContext)�_HMACContext)�_RSAPrivateKey� _RSAPublicKey)�_X25519PrivateKey�_X25519PublicKey)�_Certificate�_CertificateRevocationList�_CertificateSigningRequest�_RevokedCertificate)�binding)�hashes� serialization)�dsa�ec�rsa)�MGF1�OAEP�PKCS1v15�PSS) �AES�ARC4�Blowfish�CAST5�Camellia�ChaCha20�IDEA�SEED� TripleDES)�CBC�CFB�CFB8�CTR�ECB�GCM�OFB�XTS)�scrypt� _MemoryBIO�bioZchar_ptrc @ sb e Zd ZdZdZdd� Zdd� Zdd� Zej d d � �Z dd� Zd d� Zdd� Z dd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd � Zd!d"� Zd#d$� Zd%d&� Zd'd(� Zd)d*� Zd+d,� Zd-d.� Zd�d0d1�Zd2d3� Zd4d5� Zd6d7� Z d8d9� Z!d:d;� Z"d<d=� Z#d>d?� Z$d@dA� Z%dBdC� Z&dDdE� Z'dFdG� Z(dHdI� Z)dJdK� Z*dLdM� Z+dNdO� Z,dPdQ� Z-dRdS� Z.dTdU� Z/dVdW� Z0dXdY� Z1dZd[� Z2d\d]� Z3d^d_� Z4d`da� Z5dbdc� Z6ddde� Z7dfdg� Z8dhdi� Z9djdk� Z:dldm� Z;dndo� Z<dpdq� Z=drds� Z>dtdu� Z?dvdw� Z@dxdy� ZAdzd{� ZBd|d}� ZCd~d� ZDd�d�� ZEd�d�� ZFd�d�� ZGd�d�� ZHd�d�� ZId�d�� ZJd�d�� ZKd�d�� ZLd�d�� ZMd�d�� ZNd�d�� ZOd�d�� ZPd�d�� ZQd�d�� ZRd�d�� ZSd�d�� ZTd�d�� ZUd�d�� ZVe d�d�� �ZWd�d�� ZXd�d�� ZYd�d�� ZZd�d�� Z[d�d�� Z\d�d�� Z]d�d�� Z^d�d�� Z_d�d�� Z`d�d�� Zad�d�� Zbd�d�� Zcd�d�� Zdd�d�� Zed�d�dÄZfd�dń Zgd�dDŽ Zhd�dɄ Zid�d˄ Zjd�d̈́ Zkd�dτ Zld�dф Zmd�dӄ Znd/S )��Backendz) OpenSSL API binding interfaces. Zopensslc C s\ t �� | _| jj| _| jj| _i | _| �� | � � | jj g| _| jjrX| j� | jj� d S )N)r5 �Binding�_bindingZffi�_ffi�lib�_lib�_cipher_registry�_register_default_ciphers�activate_osrandom_engineZEVP_PKEY_DH� _dh_types�Cryptography_HAS_EVP_PKEY_DHX�appendZEVP_PKEY_DHX)�self� r` �_/opt/alt/python37/lib64/python3.7/site-packages/cryptography/hazmat/backends/openssl/backend.py�__init__\ s zBackend.__init__c C s t �| j|�S )N)r5 Z_openssl_assertrX )r_ �okr` r` ra �openssl_asserth s zBackend.openssl_assertc C sJ | j �� }|| jjkrF| j �|� | j �� | j �|�}| �|dk� d S )N� )rX ZENGINE_get_default_RANDrV �NULLZENGINE_unregister_RAND�RAND_cleanup� ENGINE_finishrd )r_ �e�resr` r` ra �activate_builtin_randomk s zBackend.activate_builtin_randomc c s� | j �| jj�}| �|| jjk� | j �|�}| �|dk� z |V W d | j �|�}| �|dk� | j � |�}| �|dk� X d S )Nre ) rX ZENGINE_by_idrU Z_osrandom_engine_idrd rV rf ZENGINE_initZENGINE_freerh )r_ ri rj r` r` ra �_get_osurandom_enginev s zBackend._get_osurandom_enginec C sD | � � | �� � }| j�|�}| �|dk� W d Q R X | j�� d S )Nre )rk rl rX ZENGINE_set_default_RANDrd rg )r_ ri rj r` r` ra r[ � s z Backend.activate_osrandom_enginec C s` | j �dd�}| �� �2}| j�|dt|�|| j jd�}| �|dk� W d Q R X | j �|�� d�S )Nzchar[]�@ s get_implementationr �ascii) rV �newrl rX ZENGINE_ctrl_cmd�lenrf rd �string�decode)r_ �bufri rj r` r` ra �osrandom_engine_implementation� s z&Backend.osrandom_engine_implementationc C s | j �| j�| jj���d�S )z� Friendly string name of the loaded OpenSSL library. This is not necessarily the same version as it was compiled against. Example: OpenSSL 1.0.1e 11 Feb 2013 rn )rV rq rX ZOpenSSL_versionZOPENSSL_VERSIONrr )r_ r` r` ra �openssl_version_text� s zBackend.openssl_version_textc C s | j �� S )N)rX ZOpenSSL_version_num)r_ r` r` ra �openssl_version_number� s zBackend.openssl_version_numberc C s t | ||�S )N)r, )r_ �key� algorithmr` r` ra �create_hmac_ctx� s zBackend.create_hmac_ctxc C s@ |j dks|j dkr0d�|j |jd ��d�}n|j �d�}|S )NZblake2bZblake2sz{0}{1}� rn )�name�formatZdigest_size�encode)r_ rx Zalgr` r` ra �_build_openssl_digest_name� s z"Backend._build_openssl_digest_namec C s"