Package com.sshtools.j2ssh.agent
Class SshAgentClient
java.lang.Object
com.sshtools.j2ssh.agent.SshAgentClient
Provides a client connection to the ssh agent.
- Version:
- $Revision: 1.17 $
- Author:
- $author$
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionvoid
addKey
(SshPrivateKey prvkey, SshPublicKey pubkey, String description, KeyConstraints constraints) Add a key to the agentvoid
close()
Close the agentstatic Socket
connectAgentSocket
(String location) Connect a socket to the agent at the location specified.static SshAgentClient
connectLocalAgent
(String application, String location) Connect to the local agent.void
Delete all the keys held by the agent.void
deleteKey
(SshPublicKey key, String description) Delete a key held by the agentbyte[]
getRandomData
(int count) Request some random data from the remote sidebyte[]
hashAndSign
(SshPublicKey key, byte[] data) Request a hash and sign operation be performed for a given public key.listKeys()
List all the keys on the agent.boolean
Lock the agentvoid
ping
(byte[] padding) Ping the remote side with some random padding dataprotected SubsystemMessage
Read a single message from the inputstream and convert into a valid subsystem messageprotected void
Register the subsystem messagesprotected void
Send a forwarding notice.protected void
Send a subsystem messageprotected void
sendVersionRequest
(String application) Request the agent version.boolean
unlockAgent
(String password) Unlock the agent
-
Field Details
-
HASH_AND_SIGN
The hash and sign private key operation- See Also:
-
-
Method Details
-
connectLocalAgent
public static SshAgentClient connectLocalAgent(String application, String location) throws AgentNotAvailableException, IOException Connect to the local agent.- Parameters:
application
- the application connectinglocation
- 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 specifiedIOException
- 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 specifiedIOException
- if an IO error occurs
-
close
public void close()Close the agent -
registerMessages
protected void registerMessages()Register the subsystem messages -
sendVersionRequest
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 addpubkey
- the private keys public keydescription
- a description of the keyconstraints
- a set of contraints for key use- Throws:
IOException
- if an IO error occurs
-
hashAndSign
Request a hash and sign operation be performed for a given public key.- Parameters:
key
- the public key of the required private keydata
- the data to has and sign- Returns:
- the hashed and signed data
- Throws:
IOException
- if an IO error occurs
-
listKeys
List all the keys on the agent.- Returns:
- a map of public keys and descriptions
- Throws:
IOException
- if an IO error occurs
-
lockAgent
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
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
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
Ping the remote side with some random padding data- Parameters:
padding
- the padding data- Throws:
IOException
- if an IO error occurs
-
deleteKey
Delete a key held by the agent- Parameters:
key
- the public key of the private key to deletedescription
- the description of the key- Throws:
IOException
- if an IO error occurs
-
deleteAllKeys
Delete all the keys held by the agent.- Throws:
IOException
- if an IO error occurs
-
sendForwardingNotice
Send a forwarding notice.- Throws:
IOException
- if an IO error occurs
-
sendMessage
Send a subsystem message- Parameters:
msg
- the message to send- Throws:
IOException
- if an IO error occurs
-
readMessage
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
-