o b@svdZddlZddlmZmZmZddlmZmZddl m Z Gdddej Z Gdd d ej Z Gd d d ejZdS) zJ Accesses the key agent for user authentication. Maintainer: Paul Swartz N)agentchannelkeys)protocolreactor)Loggerc@s2eZdZeZddZddZddZddZd S) SSHAgentClientcCstj|g|_dSN)rr__init__blobsselfrsz0SSHAgentClient._cbPublicKeys..)_logdebuglenr )r blobcommrrrrszSSHAgentClient._cbPublicKeyscCs|jr tj|jdSdS)zj Return a L{Key} from the first blob in C{self.blobs}, if any, or return L{None}. rN)r rKey fromStringpopr rrr getPublicKey szSSHAgentClient.getPublicKeyN) __name__ __module__ __qualname__rrr rrrrrrrrs  rc@s,eZdZddZddZddZddZd S) SSHAgentForwardingChannelcsDttt}|tjd}|j| fddd_ dS)N SSH_AUTH_SOCKcsSr )loseConnection)rr rr/sz7SSHAgentForwardingChannel.channelOpen..) r ClientCreatorrSSHAgentForwardingLocal connectUNIXosenvironr _cbGotLocal addErrbackbuf)r specificDataccdrr r channelOpen+s   z%SSHAgentForwardingChannel.channelOpencCs ||_|jjj|_|j|j_dSr )local transportwrite dataReceived)r r4rrrr-2s z%SSHAgentForwardingChannel._cbGotLocalcCs|j|7_dSr )r/)r datarrrr77sz&SSHAgentForwardingChannel.dataReceivedcCs|jr |jd|_dSdSr )r4r%r rrrclosed:s  z SSHAgentForwardingChannel.closedN)r r!r"r3r-r7r9rrrrr#*s  r#c@s eZdZdS)r)N)r r!r"rrrrr)@sr))__doc__r+twisted.conch.sshrrrtwisted.internetrrtwisted.loggerrr SSHChannelr#Protocolr)rrrrs