
    h                         S r SSKrSSKJrJrJr  SSKJrJr  SSK	J
r
   " S S\R                  5      r " S S	\R                  5      r " S
 S\R                  5      rg)zJ
Accesses the key agent for user authentication.

Maintainer: Paul Swartz
    N)agentchannelkeys)protocolreactor)Loggerc                   :    \ rS rSr\" 5       rS rS rS rS r	Sr
g)SSHAgentClient   c                 P    [         R                  R                  U 5        / U l        g N)r   r
   __init__blobsselfs    a/root/1688_scrapy/alibaba-scraper/venv/lib/python3.13/site-packages/twisted/conch/client/agent.pyr   SSHAgentClient.__init__   s    %%d+
    c                 T    U R                  5       R                  U R                  5      $ r   )requestIdentitiesaddCallback_cbPublicKeysr   s    r   getPublicKeysSSHAgentClient.getPublicKeys   s"    %%'33D4F4FGGr   c                     U R                   R                  S[        U5      S9  U Vs/ s H  o"S   PM	     snU l        g s  snf )Nzgot {num_keys} public keys)num_keysr   )_logdebuglenr   )r   blobcommxs      r   r   SSHAgentClient._cbPublicKeys   s6    		4s8}M$,-HqdH-
-s   ?c                     U R                   (       a8  [        R                  R                  U R                   R	                  S5      5      $ g)zR
Return a L{Key} from the first blob in C{self.blobs}, if any, or
return L{None}.
r   N)r   r   Key
fromStringpopr   s    r   getPublicKeySSHAgentClient.getPublicKey    s0    
 ::88&&tzz~~a'899r   )r   N)__name__
__module____qualname____firstlineno__r   r   r   r   r   r'   __static_attributes__ r   r   r
   r
      s    8DH.r   r
   c                   ,    \ rS rSrS rS rS rS rSrg)SSHAgentForwardingChannel*   c                    ^  [         R                  " [        [        5      nUR	                  [
        R                  S   5      nUR                  T R                  5        UR                  U 4S j5        ST l
        g )NSSH_AUTH_SOCKc                 $   > TR                  5       $ r   )loseConnection)r!   r   s    r   <lambda>7SSHAgentForwardingChannel.channelOpen.<locals>.<lambda>/   s    t224r    )r   ClientCreatorr   SSHAgentForwardingLocalconnectUNIXosenvironr   _cbGotLocal
addErrbackbuf)r   specificDataccds   `   r   channelOpen%SSHAgentForwardingChannel.channelOpen+   sS    ##G-DENN2::o67	d&&'	45r   c                     Xl         U R                   R                  R                  U l        U R                  U R                   l        g r   )local	transportwritedataReceived)r   rG   s     r   r>   %SSHAgentForwardingChannel._cbGotLocal2   s/    
 JJ0066"&**

r   c                 .    U =R                   U-  sl         g r   )r@   )r   datas     r   rJ   &SSHAgentForwardingChannel.dataReceived7   s    Dr   c                 j    U R                   (       a"  U R                   R                  5         S U l         g g r   )rG   r5   r   s    r   closed SSHAgentForwardingChannel.closed:   s%    ::JJ%%'DJ r   )r@   rJ   rG   N)	r)   r*   r+   r,   rD   r>   rJ   rP   r-   r.   r   r   r0   r0   *   s    -
r   r0   c                       \ rS rSrSrg)r:   @   r.   N)r)   r*   r+   r,   r-   r.   r   r   r:   r:   @   s    r   r:   )__doc__r<   twisted.conch.sshr   r   r   twisted.internetr   r   twisted.loggerr   r
   
SSHChannelr0   Protocolr:   r.   r   r   <module>rZ      sQ   
 
 2 2 . !U)) 0 2 2 ,	h// 	r   