File: //lib/python3/dist-packages/twisted/conch/ssh/__pycache__/_kex.cpython-38.pyc
U
W[� � @ sz d Z ddlmZmZ ddlmZmZmZmZ ddl m
Z
mZmZ ddl
mZ ddlmZ G dd� de�ZG d d
� d
e�ZG dd� de�ZG d
d� de�Zee�G dd� de��Zee�G dd� de��Zee�G dd� de��Zee�G dd� de��Zee�G dd� de��Zee�G dd� de��Ze� e� e� e� e� e� d�Zdd� Zdd� Zd d!� Zd"d#� Z d$d%� Z!d&d'� Z"d(S ))z
SSH key exchange handling.
� )�absolute_import�division)�sha1�sha256�sha384�sha512)� Attribute�implementer� Interface)�error)�longc @ s e Zd ZdZed�Zed�ZdS )�_IKexAlgorithmzB
An L{_IKexAlgorithm} describes a key exchange algorithm.
z�An L{int} giving the preference of the algorithm when negotiating key exchange. Algorithms with lower precedence values are more preferred.zqA callable hash algorithm constructor (e.g. C{hashlib.sha256}) suitable for use with this key exchange algorithm.N)�__name__�
__module__�__qualname__�__doc__r �
preference�
hashProcessor� r r �8/usr/lib/python3/dist-packages/twisted/conch/ssh/_kex.pyr
s ��r
c @ s e Zd ZdZed�Zed�ZdS )�_IFixedGroupKexAlgorithmzu
An L{_IFixedGroupKexAlgorithm} describes a key exchange algorithm with a
fixed prime / generator group.
zdA L{long} giving the prime number used in Diffie-Hellman key exchange, or L{None} if not applicable.z�A L{long} giving the generator number used in Diffie-Hellman key exchange, or L{None} if not applicable. (This is not related to Python generator functions.)N)r r r r r �prime� generatorr r r r r # s ��r c @ s e Zd ZdZdS )�#_IEllipticCurveExchangeKexAlgorithmz�
An L{_IEllipticCurveExchangeKexAlgorithm} describes a key exchange algorithm
that uses an elliptic curve exchange between the client and server.
N�r r r r r r r r r 4 s r c @ s e Zd ZdZdS )�_IGroupExchangeKexAlgorithmz�
An L{_IGroupExchangeKexAlgorithm} describes a key exchange algorithm
that uses group exchange between the client and server.
A prime / generator group should be chosen at run time based on the
requested size. See RFC 4419.
Nr r r r r r <