§
    Ètºfv  ã                   ó†   — d Z ddlmZ ddlmZmZ ddlmZ ddl	m
Z
mZ ddlmZ  G d„ dej        ej        ¦  «        Zd	„ Zd
S )z4
Support module for making SSH servers with twistd.
é    )Ústrports)ÚcheckersÚunix)Úfactory)ÚportalÚstrcred)Úusagec                   óÌ   ‡ — e Zd ZdZdZg d¢g d¢g d¢g d¢gZ ej         ej        d¬¦  «         ej        d	¬¦  «         ej	        ¦   «         d
œ¬¦  «        Z
ˆ fd„Zˆ fd„Zˆ x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Úpztcp:22zPort 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)zdata directory)Údescrzmoduli directory)r   r   r   )Ú
optActionsc                 ó6  •— t          j        j        | g|¢R i |¤Ž t          ¦   «                              t          j        ¦   «         ¦  «         t          ¦   «                              t          j        t          j        ¦   «         ¦  «        ¦  «         d| _	        d S )NT)
r	   r   Ú__init__ÚsuperÚ
addCheckerÚconch_checkersÚUNIXPasswordDatabaseÚSSHPublicKeyCheckerÚUNIXAuthorizedKeysFilesÚ_usingDefaultAuth)ÚselfÚaÚkwÚ	__class__s      €úP/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/conch/tap.pyr   zOptions.__init__+   sŒ   ø€ ÝŒÔ˜tÐ. aÐ.Ð.Ð.¨2Ð.Ð.Ð.õ 	‰Œ×Ò�>Ô>Ñ@Ô@ÑAÔAÐAÝ‰Œ×ÒÝÔ.­~Ô/UÑ/WÔ/WÑXÔXñ	
ô 	
ð 	
ð "&ˆÔÐÐó    c                 óz   •— | j         rg | d<   i | d<   d| _         t          ¦   «                              |¦  «         dS )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)r   r   r   )r   Úcheckerr"   s     €r#   r   zOptions.addChecker8   sK   ø€ ð Ô!ð 	+Ø#%ˆD�Ñ Ø%'ˆDÐ!Ñ"Ø%*ˆDÔ"Ý‰Œ×Ò˜7Ñ#Ô#Ð#Ð#Ð#r$   )Ú__name__Ú
__module__Ú__qualname__ÚsynopsisÚlongdescÚoptParametersr	   ÚCompletionsÚCompleteDirsÚCompleteNetInterfacesÚcompDatar   r   Ú__classcell__)r"   s   @r#   r   r      sï   ø€ € € € € Ø9€Hð	<ð ð 	EÐDÐDØ:Ð:Ð:ØCÐCÐCð	
ð 	
ð 	
ð	
€Mð !ˆuÔ à&�EÔ&Ð-=Ð>Ñ>Ô>Ø(�eÔ(Ð/AÐBÑBÔBØ4˜Ô4Ñ6Ô6ð
ð 
ðñ ô €Hð&ð &ð &ð &ð &ð
$ð 
$ð 
$ð 
$ð 
$ð 
$ð 
$ð 
$ð 
$r$   r   c                 óT  — t          j        ¦   «         }t          j        ¦   «         }t	          j        ||                      dg ¦  «        ¦  «        |_        | d         |_        | d         p| d         |_        | d         }| d         r|d| d         z   z  }t          j
        ||¦  «        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&   r   r   r   r   z:interface=)r   ÚOpenSSHFactoryr   ÚUnixSSHRealmr   ÚPortalÚgetÚdataRootÚ
moduliRootr   Úservice)ÚconfigÚtÚrr   s       r#   ÚmakeServicer?   E   sž   € õ 	ÔÑ Ô €AåÔÑÔ€AÝŒ}˜Q §
¢
¨>¸2Ñ >Ô >Ñ?Ô?€A„HØ˜”€A„JØ˜(Ô#Ð5 v¨f¤~€A„Là�&Œ>€DØˆkÔð 4à�  {Ô 3Ñ3Ñ3ˆÝÔ˜D !Ñ$Ô$Ð$r$   N)Ú__doc__Útwisted.applicationr   Útwisted.conchr   r   r   Útwisted.conch.openssh_compatr   Útwisted.credr   r   Útwisted.pythonr	   r   ÚAuthOptionMixinr?   © r$   r#   ú<module>rH      sÂ   ðð
ð ð )Ð (Ð (Ð (Ð (Ð (Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø  Ð  Ð  Ð  Ð  Ð  ð2$ð 2$ð 2$ð 2$ð 2$ˆeŒm˜WÔ4ñ 2$ô 2$ð 2$ðj%ð %ð %ð %ð %r$   