Ë
    ojé  ã                   ó¾   — d Z 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 G d„ d	ej                  «      Z G d
„ dej                  «      Zy)zJ
Accesses the key agent for user authentication.

Maintainer: Paul Swartz
é    N)ÚagentÚchannelÚkeys)ÚprotocolÚreactor)ÚLoggerc                   ó2   — e Zd Z e«       Zd„ Zd„ Zd„ Zd„ Zy)ÚSSHAgentClientc                 óP   — t         j                  j                  | «       g | _        y ©N)r   r
   Ú__init__Úblobs©Úselfs    ú</usr/lib/python3/dist-packages/twisted/conch/client/agent.pyr   zSSHAgentClient.__init__   s   € Ü×Ñ×%Ñ% dÔ+Øˆ�
ó    c                 óT   — | j                  «       j                  | j                  «      S r   )ÚrequestIdentitiesÚaddCallbackÚ_cbPublicKeysr   s    r   ÚgetPublicKeyszSSHAgentClient.getPublicKeys   s"   € Ø×%Ñ%Ó'×3Ñ3°D×4FÑ4FÓGÐGr   c                 óŠ   — | j                   j                  dt        |«      ¬«       |D �cg c]  }|d   ‘Œ	 c}| _        y c c}w )Nzgot {num_keys} public keys)Únum_keysr   )Ú_logÚdebugÚlenr   )r   ÚblobcommÚxs      r   r   zSSHAgentClient._cbPublicKeys   s4   € Ø�	‰	�‰Ð4¼sÀ8»}ˆÔMØ$,Ö-˜q�a˜“dÒ-ˆ�
ùÒ-s   «A c                 óŒ   — | j                   r8t        j                  j                  | j                   j	                  d«      «      S y)zj
        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   ÚgetPublicKeyzSSHAgentClient.getPublicKey    s0   € ð
 �:Š:Ü—8‘8×&Ñ& t§z¡z§~¡~°aÓ'8Ó9Ð9Ør   N)	Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r#   © r   r   r
   r
      s   „ Ù‹8€DòòHò.ór   r
   c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚSSHAgentForwardingChannelc                 óò   ‡ — t        j                  t        t        «      }|j	                  t
        j                  d   «      }|j                  ‰ j                  «       |j                  ˆ fd„«       d‰ _
        y )NÚSSH_AUTH_SOCKc                 ó$   •— ‰j                  «       S r   )ÚloseConnection)r   r   s    €r   ú<lambda>z7SSHAgentForwardingChannel.channelOpen.<locals>.<lambda>/   s   ø€ ˜t×2Ñ2Ó4€ r   Ú )r   ÚClientCreatorr   ÚSSHAgentForwardingLocalÚconnectUNIXÚosÚenvironr   Ú_cbGotLocalÚ
addErrbackÚbuf)r   ÚspecificDataÚccÚds   `   r   ÚchannelOpenz%SSHAgentForwardingChannel.channelOpen+   sS   ø€ Ü×#Ñ#¤GÔ-DÓEˆØ�N‰Nœ2Ÿ:™: oÑ6Ó7ˆØ	�‰�d×&Ñ&Ô'Ø	�‰Ó4Ô5Øˆ�r   c                 ó’   — || _         | j                   j                  j                  | _        | j                  | j                   _        y r   )ÚlocalÚ	transportÚwriteÚdataReceived)r   r=   s     r   r5   z%SSHAgentForwardingChannel._cbGotLocal2   s1   € ØˆŒ
Ø ŸJ™J×0Ñ0×6Ñ6ˆÔØ"&§*¡*ˆ�
‰
Õr   c                 ó.   — | xj                   |z  c_         y r   )r7   )r   Údatas     r   r@   z&SSHAgentForwardingChannel.dataReceived7   s   € Ø�Š�DÑŽr   c                 ó`   — | j                   r"| j                   j                  «        d | _         y y r   )r=   r-   r   s    r   Úclosedz SSHAgentForwardingChannel.closed:   s%   € Ø�:Š:Ø�J‰J×%Ñ%Ô'ØˆD�Jð r   N)r$   r%   r&   r;   r5   r@   rD   r'   r   r   r)   r)   *   s   „ òò-ò
ór   r)   c                   ó   — e Zd Zy)r1   N)r$   r%   r&   r'   r   r   r1   r1   @   s   „ Ør   r1   )Ú__doc__r3   Útwisted.conch.sshr   r   r   Útwisted.internetr   r   Útwisted.loggerr   r
   Ú
SSHChannelr)   ÚProtocolr1   r'   r   r   ú<module>rL      sQ   ðñ
ó 
ç 2Ñ 2ß .Ý !ô�U×)Ñ)ô ô0 × 2Ñ 2ô ô,	˜h×/Ñ/õ 	r   