
    Vh                     f    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e	j                        Zy)    N)ListOptionalUnion)
SSHCiphersSSHClientTransport)usagec                   <   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j                          ej                  ej                   j#                         D  cg c]  }|j%                          c}} d       ej                  ej&                  j#                         D  cg c]  }|j%                          c}} d       ej                  ej*                  D  cg c]  }|j%                          c}} d      d ej,                          ej.                  d       ej.                  dd      g      Zd Zd Zd  Zd! Zd" Zd# Zy$c c}} w c c}} w c c}} w )%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&   zciphers to choose from)descrzmacs to choose fromz"host key algorithms to choose from)r   r   r   r   commandargumentT)r*   repeat)mutuallyExclusive
optActionsextraActionsc                 f    t        j                  j                  | g|i | g | _        d | _        y )N)r   Options__init__	identitysconns)selfargskws      L/home/dcms/DCMS/lib/python3.12/site-packages/twisted/conch/client/options.pyr3   zConchOptions.__init__>   s,    t1d1b1
    c                 :    | j                   j                  |       y)z&Identity for public-key authenticationN)r4   append)r6   r   s     r9   opt_identityzConchOptions.opt_identityC   s    a r:   c                     |j                  d      }|D ]-  }|t        j                  vst        j                  d|z         / || d<   y)zSelect encryption algorithms,zUnknown cipher type '%s'r   N)splitr   	cipherMapsysexit)r6   r   ciphers      r9   opt_cipherszConchOptions.opt_ciphersG   sJ    --$ 	>FZ1113f<=	> "Yr:   c                     t        |t              r|j                  d      }|j                  d      }|D ]-  }|t        j
                  vst        j                  d|z         / || d<   y)zSpecify MAC algorithmsutf-8   ,zUnknown mac type '%r'r   N)
isinstancestrencoder@   r   macMaprB   rC   )r6   r   macs      r9   opt_macszConchOptions.opt_macsO   sb    dC ;;w'Dzz$ 	8C*+++0367	8 Vr:   c                     t        |t              r|j                  d      }|j                  d      }|D ]-  }|t        j
                  vst        j                  d|z         / || d<   y)zSelect host key algorithmsrG   rH   zUnknown host key type '%r'r   N)rI   rJ   rK   r@   r   supportedPublicKeysrB   rC   )r6   hkashkas      r9   opt_host_key_algorithmsz$ConchOptions.opt_host_key_algorithmsY   se    dC ;;w'Dzz$ 	=C,@@@5;<	= '+"#r:   c                 n    t        |t              r|j                  d      }|j                  d      | d<   y)z/Choose how to authenticate to the remote serverrG   rH   r   N)rI   rJ   rK   r@   )r6   uass     r9   opt_user_authenticationsz%ConchOptions.opt_user_authenticationsc   s-    c3**W%C'*yy#$r:   N)__name__
__module____qualname__r   r   r   r   rJ   int__annotations__optFlagsr   CompletionsCompleteUsernamesCompleteMultiListr   rA   keysdecoderL   r   rP   CompleteUserAtHost	CompletercompDatar3   r=   rE   rN   rS   rV   ).0r!   s   00r9   r
   r
      s   ;V8)@S@<M4XeCHo678  	90;E@MPH !u  /0+E++-.u..%/%9%9%>%>%@AA. ,E++%/%6%6%;%;%=>>+ $;5#:#:%7%K%KLL:$
$ %E$$&EOO),EOO*T:
'H4
!"+7u B ? Ms   F FFr
   )rB   typingr   r   r   twisted.conch.ssh.transportr   r   twisted.pythonr   r2   r
    r:   r9   <module>rj      s+     ( ( G  [75== [7r:   