3 l�_�' � @ s� d dl mZmZmZ d dlmZ d dlmZmZ d dl m Z d dlmZ dd� Z dd � Zejej�G d d� de��Zdd � Zejej�G dd� de��Zejej�G dd� de��ZdS )� )�absolute_import�division�print_function)�utils)�UnsupportedAlgorithm�_Reasons)� serialization)�dhc C s� |j }|j}|j| �}|j||jk� |j||j�}|jr�|jd�}|j | |j||j� |j |d �}|j||j||j�}|j|dk� |S )Nz BIGNUM **r � )�_lib�_ffiZDHparams_dup�openssl_assert�NULL�gcZDH_freeZCRYPTOGRAPHY_IS_LIBRESSL�new�DH_get0_pqg�BN_dupZDH_set0_pqg)�dh_cdata�backend�libZffi�param_cdata�qZq_dup�res� r �/usr/lib64/python3.6/dh.py�_dh_params_dup s r c C s t | |�}t||�S )N)r � _DHParameters)r r r r r r �_dh_cdata_to_parameters s r c @ s, e Zd Zdd� Zdd� Zdd� Zdd� Zd S ) r c C s || _ || _d S )N)�_backend� _dh_cdata)�selfr r r r r �__init__&