Class SshAgentClient

java.lang.Object
com.sshtools.j2ssh.agent.SshAgentClient

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

  • Method Details

    • connectLocalAgent

      public static SshAgentClient connectLocalAgent(String application, String location) throws AgentNotAvailableException, 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
      IOException - if an IO error occurs
    • connectAgentSocket

      public static Socket connectAgentSocket(String location) throws AgentNotAvailableException, 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
      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(String application) throws IOException
      Request the agent version.
      Parameters:
      application - the application connecting
      Throws:
      IOException - if an IO error occurs
    • addKey

      public void addKey(SshPrivateKey prvkey, SshPublicKey pubkey, String description, KeyConstraints constraints) throws 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:
      IOException - if an IO error occurs
    • hashAndSign

      public byte[] hashAndSign(SshPublicKey key, byte[] data) throws 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:
      IOException - if an IO error occurs
    • listKeys

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

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

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

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

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

      public void deleteKey(SshPublicKey key, String description) throws 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:
      IOException - if an IO error occurs
    • deleteAllKeys

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

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

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

      protected SubsystemMessage readMessage() throws InvalidMessageException
      Read a single message from the inputstream and convert into a valid subsystem message
      Returns:
      the next available subsystem message
      Throws:
      InvalidMessageException - if the message received is invalid