File: //lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/dh.cpython-38.pyc
U
�)%a� � @ s� d dl Z d dlZd dlmZ d dlmZ d dlmZ dZddd�dd �Z G d
d� de
�ZG dd
� d
e
�ZG dd� de
�Z
G dd� de jd�ZeZG dd� de jd�ZeZG dd� de jd�ZeZdS )� N)�utils)�_get_backend)�
serializationi �DHParameters��returnc C s t |�}|�| |�S �N)r �generate_dh_parameters)� generator�key_size�backend� r
�N/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/dh.py�generate_parameters s r c @ s^ e Zd Zdeeeje d�dd�Zdd� Zdd� Zdd d
�Z e
�d�Ze
�d�Z
e
�d
�ZdS )�DHParameterNumbersN)�p�g�qc C sv t |t�rt |t�std��|d k r6t |t�s6td��|dk rFtd��|�� tk r`td�t���|| _|| _|| _ d S )Nzp and g must be integerszq must be integer or None� z!DH generator must be 2 or greaterz#p (modulus) must be at least {}-bit)
�
isinstance�int� TypeError�
ValueError�
bit_length�_MIN_MODULUS_SIZE�format�_p�_g�_q)�selfr r r r
r
r �__init__ s �zDHParameterNumbers.__init__c C s2 t |t�stS | j|jko0| j|jko0| j|jkS r )r r �NotImplementedr r r �r �otherr
r
r �__eq__) s
"�zDHParameterNumbers.__eq__c C s
| |k S r r
r"