Class SshAgentClient


  • public class SshAgentClient
    extends java.lang.Object
    Provides a client connection to the ssh agent.
    Version:
    $Revision: 1.17 $
    Author:
    $author$
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String HASH_AND_SIGN
      The hash and sign private key operation
    • Field Detail

      • HASH_AND_SIGN

        public static final java.lang.String HASH_AND_SIGN
        The hash and sign private key operation
        See Also:
        Constant Field Values
    • Method Detail

      • connectLocalAgent

        public static SshAgentClient connectLocalAgent​(java.lang.String application,
                                                       java.lang.String location)
                                                throws AgentNotAvailableException,
                                                       java.io.IOException
        Connect to the local agent.
        Parameters:
        application - the application connecting
        location - the location of the agent, in the form "localhost:port"
        Returns:
        a connected agent client
        Throws:
        AgentNotAvailableException - if the agent is not available at the location specified
        java.io.IOException - if an IO error occurs
      • connectAgentSocket

        public static java.net.Socket connectAgentSocket​(java.lang.String location)
                                                  throws AgentNotAvailableException,
                                                         java.io.IOException
        Connect a socket to the agent at the location specified.
        Parameters:
        location - the location of the agent, in the form "localhost:port"
        Returns:
        the connected socket
        Throws:
        AgentNotAvailableException - if an agent is not available at the location specified
        java.io.IOException - if an IO error occurs
      • close

        public void close()
        Close the agent
      • registerMessages

        protected void registerMessages()
        Register the subsystem messages
      • sendVersionRequest

        protected void sendVersionRequest​(java.lang.String application)
                                   throws java.io.IOException
        Request the agent version.
        Parameters:
        application - the application connecting
        Throws:
        java.io.IOException - if an IO error occurs
      • addKey

        public void addKey​(SshPrivateKey prvkey,
                           SshPublicKey pubkey,
                           java.lang.String description,
                           KeyConstraints constraints)
                    throws java.io.IOException
        Add a key to the agent
        Parameters:
        prvkey - the private key to add
        pubkey - the private keys public key
        description - a description of the key
        constraints - a set of contraints for key use
        Throws:
        java.io.IOException - if an IO error occurs
      • hashAndSign

        public byte[] hashAndSign​(SshPublicKey key,
                                  byte[] data)
                           throws java.io.IOException
        Request a hash and sign operation be performed for a given public key.
        Parameters:
        key - the public key of the required private key
        data - the data to has and sign
        Returns:
        the hashed and signed data
        Throws:
        java.io.IOException - if an IO error occurs
      • listKeys

        public java.util.Map listKeys()
                               throws java.io.IOException
        List all the keys on the agent.
        Returns:
        a map of public keys and descriptions
        Throws:
        java.io.IOException - if an IO error occurs
      • lockAgent

        public boolean lockAgent​(java.lang.String password)
                          throws java.io.IOException
        Lock the agent
        Parameters:
        password - password that will be required to unlock
        Returns:
        true if the agent was locked, otherwise false
        Throws:
        java.io.IOException - if an IO error occurs
      • unlockAgent

        public boolean unlockAgent​(java.lang.String password)
                            throws java.io.IOException
        Unlock the agent
        Parameters:
        password - the password to unlock
        Returns:
        true if the agent was unlocked, otherwise false
        Throws:
        java.io.IOException - if an IO error occurs
      • getRandomData

        public byte[] getRandomData​(int count)
                             throws java.io.IOException
        Request some random data from the remote side
        Parameters:
        count - the number of bytes needed
        Returns:
        the random data received
        Throws:
        java.io.IOException - if an IO error occurs
      • ping

        public void ping​(byte[] padding)
                  throws java.io.IOException
        Ping the remote side with some random padding data
        Parameters:
        padding - the padding data
        Throws:
        java.io.IOException - if an IO error occurs
      • deleteKey

        public void deleteKey​(SshPublicKey key,
                              java.lang.String description)
                       throws java.io.IOException
        Delete a key held by the agent
        Parameters:
        key - the public key of the private key to delete
        description - the description of the key
        Throws:
        java.io.IOException - if an IO error occurs
      • deleteAllKeys

        public void deleteAllKeys()
                           throws java.io.IOException
        Delete all the keys held by the agent.
        Throws:
        java.io.IOException - if an IO error occurs
      • sendForwardingNotice

        protected void sendForwardingNotice()
                                     throws java.io.IOException
        Send a forwarding notice.
        Throws:
        java.io.IOException - if an IO error occurs
      • sendMessage

        protected void sendMessage​(SubsystemMessage msg)
                            throws java.io.IOException
        Send a subsystem message
        Parameters:
        msg - the message to send
        Throws:
        java.io.IOException - if an IO error occurs