HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/twisted/conch/__pycache__/tap.cpython-310.pyc
o

�bv�@sjdZddlmZddlmZmZddlmZddl	m
Z
mZddlm
Z
Gdd�de
jej�Zd	d
�ZdS)z4
Support module for making SSH servers with twistd.
�)�strports)�checkers�unix)�factory)�portal�strcred)�usagecsteZdZdZdZgd�gd�gd�gd�gZejejdd�ejd	d�e�	�d
�d�Z
�fdd
�Z�fdd�Z�Z
S)�Optionsz([-i <interface>] [-p <port>] [-d <dir>] z�Makes a Conch SSH server.  If no authentication methods are specified, the default authentication methods are UNIX passwords and SSH public keys.  If --auth options are passed, only the measures specified will be used.)�	interface�i�z"local interface to which we listen)�port�pztcp:22zPort on which to listen)�data�dz/etcz"directory to look for host keys in)�modulirNz:directory to look for moduli in (if different from --data)zdata directory)�descrzmoduli directory)rrr
)�
optActionscsJtjj|g|�Ri|��t��t���t��t�t����d|_	dS)NT)
rr	�__init__�super�
addChecker�conch_checkers�UNIXPasswordDatabase�SSHPublicKeyChecker�UNIXAuthorizedKeysFiles�_usingDefaultAuth)�self�a�kw��	__class__��3/usr/lib/python3/dist-packages/twisted/conch/tap.pyr+s�
zOptions.__init__cs,|jrg|d<i|d<d|_t��|�dS)z�
        Add the checker specified.  If any checkers are added, the default
        checkers are automatically cleared and the only checkers will be the
        specified one(s).
        �credCheckers�credInterfacesFN)rrr)r�checkerrr!r"r8s
zOptions.addChecker)�__name__�
__module__�__qualname__�synopsis�longdesc�
optParametersr�Completions�CompleteDirs�CompleteNetInterfaces�compDatarr�
__classcell__r!r!rr"r	s"��

��
r	cCsnt��}t��}t�||�dg��|_|d|_|dp|d|_|d}|dr1|d|d7}t	�
||�S)aH
    Construct a service for operating a SSH server.

    @param config: An L{Options} instance specifying server options, including
        where server keys are stored and what authentication methods to use.

    @return: A L{twisted.application.service.IService} provider which contains
        the requested SSH server.
    r#rrr
r
z:interface=)r�OpenSSHFactoryr�UnixSSHRealmr�Portal�get�dataRoot�
moduliRootr�service)�config�t�rr
r!r!r"�makeServiceEs
r;N)�__doc__�twisted.applicationr�
twisted.conchrrr�twisted.conch.openssh_compatr�twisted.credrr�twisted.pythonrr	�AuthOptionMixinr;r!r!r!r"�<module>s5