o
    b                     @   sN   d dl Z d dlmZmZmZ d dlmZmZ d dlm	Z	 G dd de	j
ZdS )    N)ListOptionalUnion)
SSHCiphersSSHClientTransport)usagec                   @   sN  e Zd ZU g dg dg dg dg dg dg dg dg d	g d
g
Zeeeeeef    e	d< g dg dg dg dg dg dg dgZ
ejdge ejdd ej D ddejdd ej D ddejdd ejD ddde ejddejddd gd!Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Zd.S )/ConchOptions)userlNzLog in using this user name.)identityiN)cipherscN)macsmN)portpNz7Connect to this port.  Server must be on the same port.)optionoNzIgnored OpenSSH options)host-key-algorithms N)zknown-hostsr   NzFile to check for host keys)user-authenticationsr   Nz%Types of user authentications to use.)logfiler   NzFile to log to, or - for stdoutoptParameters)versionVzDisplay version number only.)compressCzEnable compression.)logvz#Enable logging (defaults to stderr))nox11xz+Disable X11 connection forwarding (default))agentAz&Enable authentication agent forwarding)noagentaz1Disable authentication agent forwarding (default))	reconnectrz2Reconnect to the server if the connection is lost.)r"   r$   c                 C      g | ]}|  qS  decode.0r   r)   r)   >/usr/lib/python3/dist-packages/twisted/conch/client/options.py
<listcomp>*       zConchOptions.<listcomp>zciphers to choose from)descrc                 C   r(   r)   r*   r,   r)   r)   r.   r/   .   r0   zmacs to choose fromc                 C   r(   r)   r*   r,   r)   r)   r.   r/   2   r0   z"host key algorithms to choose from)r	   r   r   r   commandargumentT)r1   repeat)mutuallyExclusive
optActionsextraActionsc                 O   s*   t jj| g|R i | g | _d | _d S )N)r   Options__init__	identitysconns)selfargskwr)   r)   r.   r9   ?   s   
zConchOptions.__init__c                 C   s   | j | dS )z&Identity for public-key authenticationN)r:   append)r<   r   r)   r)   r.   opt_identityD   s   zConchOptions.opt_identityc                 C   s8   | d}|D ]}|tjvrtd|  q|| d< dS )zSelect encryption algorithms,zUnknown cipher type '%s'r   N)splitr   	cipherMapsysexit)r<   r   cipherr)   r)   r.   opt_ciphersH   s   

zConchOptions.opt_ciphersc                 C   L   t |tr
|d}|d}|D ]}|tjvrtd|  q|| d< dS )zSpecify MAC algorithmsutf-8   ,zUnknown mac type '%r'r   N)
isinstancestrencoderB   r   macMaprD   rE   )r<   r   macr)   r)   r.   opt_macsP      



zConchOptions.opt_macsc                 C   rH   )zSelect host key algorithmsrI   rJ   zUnknown host key type '%r'r   N)rK   rL   rM   rB   r   supportedPublicKeysrD   rE   )r<   hkashkar)   r)   r.   opt_host_key_algorithmsZ   rQ   z$ConchOptions.opt_host_key_algorithmsc                 C   s&   t |tr
|d}|d| d< dS )z/Choose how to authenticate to the remote serverrI   rJ   r   N)rK   rL   rM   rB   )r<   uasr)   r)   r.   opt_user_authenticationsd   s   

z%ConchOptions.opt_user_authenticationsN)__name__
__module____qualname__r   r   r   r   rL   int__annotations__optFlagsr   CompletionsCompleteUsernamesCompleteMultiListr   rC   keysrN   r   rR   CompleteUserAtHost	CompletercompDatar9   r@   rG   rP   rU   rW   r)   r)   r)   r.   r      s^   
  



r   )rD   typingr   r   r   twisted.conch.ssh.transportr   r   twisted.pythonr   r8   r   r)   r)   r)   r.   <module>   s
   