File: //lib/python3/dist-packages/twisted/conch/test/__pycache__/test_ssh.cpython-38.pyc
U
��W[y~ � @ s� d Z ddlmZmZ ddlZddlmZ ed�Zed�Zerfddl m
Z
mZmZm
Z
ddlmZmZ nG d d
� d
�ZddlmZmZ ddlmZmZ dd
lmZ ddlmZ ddlmZmZmZ ddlmZ ddl m!Z!m"Z" ddl#m$Z$ ddl%m&Z& G dd� de'�Z(G dd� dej)�Z*G dd� de'�Z+ddl m,Z, e�rHe,�-e+e*ej.� G dd� dej/�Z0G dd� d�Z1G dd � d �Z2G d!d"� d"�Z3G d#d$� d$�Z4edk �r�edk �r�dd%lm5Z5 dd&l m6Z6m7Z7m8Z8m9Z9 dd'l m:Z:m;Z; G d(d)� d)�Z<G d*d+� d+e5j=�Z>G d,d-� d-e8j?�Z@G d.d/� d/�ZAG d0d1� d1eAe:jB�ZCG d2d3� d3eAe:jD�ZEG d4d5� d5e;jF�ZGG d6d7� d7e7jH�ZIG d8d9� d9e6jJ�ZKd:d;� ZLG d<d=� d=e$jM�ZNG d>d?� d?e$jM�ZOG d@dA� dAe$jM�ZPG dBdC� dCe$jM�ZQdS )Dz!
Tests for L{twisted.conch.ssh}.
� )�division�absolute_importN)�
requireModule�cryptography�pyasn1)�common�
forwarding�session�_kex)�avatar�errorc @ s e Zd ZG dd� d�ZdS )r c @ s e Zd ZdS )zavatar.ConchUserN)�__name__�
__module__�__qualname__� r r �=/usr/lib/python3/dist-packages/twisted/conch/test/test_ssh.py� ConchUser s r N)r
r r r r r r r r s r )�publicRSA_openssh�privateRSA_openssh)�publicDSA_openssh�privateDSA_openssh)�portal)�UnauthorizedLogin)�defer�protocol�reactor)�ProcessTerminated)�failure�log)�unittest)�
LoopbackRelayc @ s$ e Zd ZdZdZdd� Zdd� ZdS )�ConchTestRealma"
A realm which expects a particular avatarId to log in once and creates a
L{ConchTestAvatar} for that request.
@ivar expectedAvatarID: The only avatarID that this realm will produce an
avatar for.
@ivar avatar: A reference to the avatar after it is requested.
Nc C s
|| _ d S �N)�expectedAvatarID)�selfr# r r r �__init__1 s zConchTestRealm.__init__c G sN || j kr8| jdk rtd��t� | _|d | j| jjfS td| j |f ��dS )z�
Return a new L{ConchTestAvatar} if the avatarID matches the expected one
and this is the first avatar request.
NzOnly one login allowedr zOnly %r may log in, not %r)r# r r �ConchTestAvatar�logout)r$ ZavatarIDZmindZ
interfacesr r r �
requestAvatar5 s
�zConchTestRealm.requestAvatar)r
r r �__doc__r r% r( r r r r r! % s r! c @ sL e Zd ZdZesdZdZdd� Zdd� Zdd � Z d
d� Z
dd
� Zdd� ZdS )r&