File: //usr/lib/python3/dist-packages/twisted/conch/test/__pycache__/test_knownhosts.cpython-38.pyc
U
W[�� � @ s8 d Z ddlmZmZ ddlZddlmZmZm Z ddl
mZ ddlm
Z
ddlmZ ddlmZ dd lmZ dd
lmZ ddlmZ ddlmZmZmZ dd
lmZ ed�r�ed�r�ddlmZm Z ddl!m"Z"m#Z#m$Z$m%Z%m&Z& ddl'm(Z( ddl)m*Z* ndZ+dZ,dZ-dZ.dZ/e e,�Z0e e-�Z1e e.�Z2e e/�Z3de, d Z4de- d Z5de, d Z6de, d Z7G dd� d�Z8G d d!� d!e8e�Z9G d"d#� d#e9�Z:G d$d%� d%e8ee�Z;G d&d'� d'e;�Z<G d(d)� d)ee8�Z=G d*d+� d+e�Z>G d,d-� d-e�Z?G d.d/� d/e@�ZAG d0d1� d1e�ZBG d2d3� d3e@�ZCG d4d5� d5e@�ZDG d6d7� d7e�ZEdS )8z/
Tests for L{twisted.conch.client.knownhosts}.
� )�absolute_import�divisionN)�Error�
b2a_base64�
a2b_base64)�verifyObject)�
networkString)�
requireModule)�FilePath)�TestCase)�Deferred)�IKnownHostEntry)�HostKeyChanged�UserRejectedKey�InvalidEntry)�ComparisonTestsMixinZcryptographyZpyasn1)�Key�BadKeyError)�
PlainEntry�HashedEntry�KnownHostsFile�
UnparsedEntry� ConsoleUI)�default)�keydataz>cryptography and PyASN1 required for twisted.conch.knownhosts.st AAAAB3NzaC1yc2EAAAABIwAAAQEAsV0VMRbGmzhqxxayLRHmvnFvtyNqgbNKV46dU1bVFB+3ytNvue4Riqv/SVkPRNwMb7eWH29SviXaBxUhYyzKkDoNUq3rTNnH1Vnif6d6X4JCrUb5d3W+DmYClyJrZ5HgD/hUpdSkTRqdbQ2TrvSAxRacj+vHHT4F4dm1bJSewm3B2D8HVOoi/CbVh3dsIiCdp8VltdZx4qYVfYe2LwVINCbAa3d3tj9ma7RVfw3OH2Mfb+toLd1N5tBQFb7oqTt2nC6I/6Bd4JwPUld+IEitw/suElq/AIJVQXXujeyiZlea90HE65U2mF1ytr17HTAIT2ySokJWyuBANGACk6iIaw==s� AAAAB3NzaC1yc2EAAAABIwAAAIEAwaeCZd3UCuPXhX39+/p9qO028jTF76DMVd9mPvYVDVXufWckKZauF7+0b7qm+ChT7kan6BzRVo4++gCVNfAlMzLysSt3ylmOR48tFpAfygg9UCX3DjHz0ElOOUKh3iifc9aUShD0OPaK3pR5JJ8jfiBfzSYWt/hDi/iZ4igsSs8=st AAAAB3NzaC1yc2EAAAABIwAAAQEAl/TQakPkePlnwCBRPitIVUTg6Z8VzN1en+DGkyo/evkmLw7o4NWR5qbysk9A9jXW332nxnEuAnbcCam9SHe1su1liVfyIK0+3bdn0YRB0sXIbNEtMs2LtCho/aV3cXPS+Cf1yut3wvIpaRnAzXxuKPCTXQ7/y0IXa8TwkRBH58OJa3RqfQ/NsSp5SAfdsrHyH2aitiVKm2jfbTKzSEqOQG/zq4J9GXTkq61gZugory/Tvl5/yPgSnOR6C9jVOMHf27ZPoRtyj9SY343Hd2QHiIE0KPZJEgCynKeWoKz8v6eTSK8n4rBnaqWdp8MnGZK1WGy05MguXbyCDuTC8AmJXQ==s� AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIFwh3/zBANyPPIE60SMMfdKMYo3OvfvzGLZphzuKrzSt0q4uF+/iYqtYiHhryAwU/fDWlUQ9kck9f+IlpsNtY4=s www.twistedmatrix.com ssh-rsa �
s divmod.com ssh-rsa s- www.twistedmatrix.com,198.49.126.131 ssh-rsa sE |1|gJbSEPBG9ZSBoZpHNtZBD1bHKBA=|bQv+0Xa0dByrwkA1EB0E7Xop/Fo= ssh-rsa c @ s0 e Zd ZdZdd� Zdd� Zdd� Zdd � Zd
S )�EntryTestsMixina<
Tests for implementations of L{IKnownHostEntry}. Subclasses must set the
'entry' attribute to a provider of that interface, the implementation of
that interface under test.
@ivar entry: a provider of L{IKnownHostEntry} with a hostname of
www.twistedmatrix.com and an RSA key of sampleKey.
c C s t t| j� dS )zA
The given entry should provide IKnownHostEntry.
N)r r
�entry��self� r �D/usr/lib/python3/dist-packages/twisted/conch/test/test_knownhosts.py�test_providesInterfaceZ s z&EntryTestsMixin.test_providesInterfacec C s, | j }| �|jt�t�� | �|jd� dS )a�
Constructing a plain text entry from an unhashed known_hosts entry will
result in an L{IKnownHostEntry} provider with 'keyString', 'hostname',
and 'keyType' attributes. While outside the interface in question,
these attributes are held in common by L{PlainEntry} and L{HashedEntry}
implementations; other implementations should override this method in
subclasses.
� ssh-rsaN)r �assertEqual� publicKeyr �
fromString� sampleKey�keyType)r r r r r! �test_fromStringa s zEntryTestsMixin.test_fromStringc C s@ t �t�}t �t�}| �d| j�|�� | �d| j�|�� dS )zj
L{IKnownHostEntry.matchesKey} checks to see if an entry matches a given
SSH key.
TFN)r r&