com.sshtools.j2ssh.agent
Class SshAgentClient

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

public class SshAgentClient
extends java.lang.Object

Provides a client connection to the ssh agent.

Version:
$Revision: 1.17 $
Author:
$author$

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


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


Copyright © 2002-2003 Lee David Painter & Contributors. All Rights Reserved.