U
    Jë]já  ã                   @   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                   @   s|  e Zd ZU ddddgdddgdddgd	d
dgddddgddddgdddgddddgddddgddddgg
Zeeeeeef    e	d< dddgdddgd d!d"gd#d$d%gd&d'd(gd)d*d+gd,d-d.ggZ
ejd/ge ¡ ejd0d1„ ej ¡ D ƒd2d3�ejd4d1„ ej ¡ D ƒd5d3�ejd6d1„ ejD ƒd7d3�d8œe ¡ ejd9d3�ejd:d;d<�gd=�Zd>d?„ Zd@dA„ ZdBdC„ ZdDdE„ ZdFdG„ ZdHdI„ ZdS )JÚConchOptionsÚuserÚlNzLog in using this user name.ÚidentityÚiÚciphersÚcÚmacsÚmÚportÚpz7Connect to this port.  Server must be on the same port.ÚoptionÚozIgnored OpenSSH optionsúhost-key-algorithmsÚ zknown-hostszFile to check for host keysúuser-authenticationsz%Types of user authentications to use.Úlogfilez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)Znox11Úxz+Disable X11 connection forwarding (default)ÚagentÚAz&Enable authentication agent forwardingÚnoagentÚaz1Disable authentication agent forwarding (default)Z	reconnectÚrz2Reconnect to the server if the connection is lost.)r!   r#   c                 C   s   g | ]}|  ¡ ‘qS © ©Údecode©Ú.0r   r&   r&   úec:\users\psant\downloads\hotstarbackend\school\venv\Lib\site-packages\twisted/conch/client/options.pyÚ
<listcomp>)   s     zConchOptions.<listcomp>zciphers to choose from)Údescrc                 C   s   g | ]}|  ¡ ‘qS r&   r'   r)   r&   r&   r+   r,   -   s     zmacs to choose fromc                 C   s   g | ]}|  ¡ ‘qS r&   r'   r)   r&   r&   r+   r,   1   s     z"host key algorithms to choose from)r	   r   r   r   ÚcommandZargumentT)r-   Úrepeat)ZmutuallyExclusiveZ
optActionsZextraActionsc                 O   s$   t jj| f|ž|Ž g | _d | _d S )N)r   ÚOptionsÚ__init__Ú	identitysZconns)ÚselfÚargsÚkwr&   r&   r+   r1   >   s    zConchOptions.__init__c                 C   s   | j  |¡ dS )z&Identity for public-key authenticationN)r2   Úappend)r3   r   r&   r&   r+   Úopt_identityC   s    zConchOptions.opt_identityc                 C   s8   |  d¡}|D ]}|tjkrt d| ¡ q|| d< dS )zSelect encryption algorithmsú,zUnknown cipher type '%s'r   N)Úsplitr   Ú	cipherMapÚsysÚexit)r3   r   Úcipherr&   r&   r+   Úopt_ciphersG   s
    

zConchOptions.opt_ciphersc                 C   sL   t |tƒr| d¡}| d¡}|D ]}|tjkr"t d| ¡ q"|| d< dS )zSpecify MAC algorithmsúutf-8ó   ,zUnknown mac type '%r'r   N)Ú
isinstanceÚstrÚencoder9   r   ÚmacMapr;   r<   )r3   r   Úmacr&   r&   r+   Úopt_macsO   s    



zConchOptions.opt_macsc                 C   sL   t |tƒr| d¡}| d¡}|D ]}|tjkr"t d| ¡ q"|| d< dS )zSelect host key algorithmsr?   r@   zUnknown host key type '%r'r   N)rA   rB   rC   r9   r   ÚsupportedPublicKeysr;   r<   )r3   ZhkasZhkar&   r&   r+   Úopt_host_key_algorithmsY   s    



z$ConchOptions.opt_host_key_algorithmsc                 C   s&   t |tƒr| d¡}| d¡| d< dS )z/Choose how to authenticate to the remote serverr?   r@   r   N)rA   rB   rC   r9   )r3   Zuasr&   r&   r+   Úopt_user_authenticationsc   s    

z%ConchOptions.opt_user_authentications)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   rB   ÚintÚ__annotations__ZoptFlagsr   ZCompletionsZCompleteUsernamesZCompleteMultiListr   r:   ÚkeysrD   r   rG   ZCompleteUserAtHostZ	CompleterZcompDatar1   r7   r>   rF   rH   rI   r&   r&   r&   r+   r      s\   






ö ù
þþþö
ýí

r   )r;   Útypingr   r   r   Ztwisted.conch.ssh.transportr   r   Ztwisted.pythonr   r0   r   r&   r&   r&   r+   Ú<module>   s   