Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.sshtools.j2ssh.agent
Class SshAgentClient

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

public class SshAgentClient
extends java.lang.Object

Provides a client connection to the ssh agent.

Field Summary
`static java.lang.String` | `HASH_AND_SIGN` The hash and sign private key operation

Method Summary
`void` | `addKey(SshPrivateKey prvkey, SshPublicKey pubkey, java.lang.String description, KeyConstraints constraints)` Add a key to the agent
`void` | `close()` Close the agent
`static java.net.Socket` | `connectAgentSocket(java.lang.String location)` Connect a socket to the agent at the location specified.
`static SshAgentClient` | `connectLocalAgent(java.lang.String application, java.lang.String location)` Connect to the local agent.
`void` | `deleteAllKeys()` Delete all the keys held by the agent.
`void` | `deleteKey(SshPublicKey key, java.lang.String description)` Delete a key held by the agent
`byte[]` | `getRandomData(int count)` Request some random data from the remote side
`byte[]` | `hashAndSign(SshPublicKey key, byte[] data)` Request a hash and sign operation be performed for a given public key.
`java.util.Map` | `listKeys()` List all the keys on the agent.
`boolean` | `lockAgent(java.lang.String password)` Lock the agent
`void` | `ping(byte[] padding)` Ping the remote side with some random padding data
`protected SubsystemMessage` | `readMessage()` Read a single message from the inputstream and convert into a valid subsystem message
`protected void` | `registerMessages()` Register the subsystem messages
`protected void` | `sendForwardingNotice()` Send a forwarding notice.
`protected void` | `sendMessage(SubsystemMessage msg)` Send a subsystem message
`protected void` | `sendVersionRequest(java.lang.String application)` Request the agent version.
`boolean` | `unlockAgent(java.lang.String password)` Unlock the agent

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

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

  Throws:
    `java.io.IOException` - if an IO error occurs

### 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

### 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

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD