File: //usr/lib/python3/dist-packages/twisted/conch/client/__pycache__/agent.cpython-310.pyc
o
�b� � @ sv d Z ddlZddlmZmZmZ ddlmZmZ ddl m
Z
G dd� dej�ZG dd � d ej�Z
G d
d� dej�ZdS )zJ
Accesses the key agent for user authentication.
Maintainer: Paul Swartz
� N)�agent�channel�keys)�protocol�reactor)�Loggerc @ s2 e Zd Ze� Zdd� Zdd� Zdd� Zdd� Zd S )
�SSHAgentClientc C s t j�| � g | _d S �N)r r �__init__�blobs��self� r �</usr/lib/python3/dist-packages/twisted/conch/client/agent.pyr
s
zSSHAgentClient.__init__c C s | � � �| j�S r )�requestIdentities�addCallback�
_cbPublicKeysr r r r �
getPublicKeys s zSSHAgentClient.getPublicKeysc C s( | j jdt|�d� dd� |D �| _d S )Nzgot {num_keys} public keys)�num_keysc S s g | ]}|d �qS )r r )�.0�xr r r �
<listcomp> s z0SSHAgentClient._cbPublicKeys.<locals>.<listcomp>)�_log�debug�lenr )r
�blobcommr r r r s zSSHAgentClient._cbPublicKeysc C s | j r
tj�| j �d��S dS )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 r r r �getPublicKey s zSSHAgentClient.getPublicKeyN) �__name__�
__module__�__qualname__r r r
r r r r r r r r s r c @ s, e Zd Zdd� Zdd� Zdd� Zdd� Zd S )
�SSHAgentForwardingChannelc sD t �tt�}|�tjd �}|�� j� |� � fdd�� d� _
d S )N�
SSH_AUTH_SOCKc s � � � S r )�loseConnection)r r r r �<lambda>/ s z7SSHAgentForwardingChannel.channelOpen.<locals>.<lambda>� )r �
ClientCreatorr �SSHAgentForwardingLocal�connectUNIX�os�environr �_cbGotLocal�
addErrback�buf)r
�specificData�cc�dr r r �channelOpen+ s
z%SSHAgentForwardingChannel.channelOpenc C s || _ | j jj| _| j| j _d S r )�local� transport�write�dataReceived)r
r4 r r r r- 2 s z%SSHAgentForwardingChannel._cbGotLocalc C s | j |7 _ d S r )r/ )r
�datar r r r7 7 s z&SSHAgentForwardingChannel.dataReceivedc C s | j r
| j �� d | _ d S d S r )r4 r% r r r r �closed: s
�z SSHAgentForwardingChannel.closedN)r r! r"