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 TypeMethodDescriptionvoidaddKey(SshPrivateKey prvkey, SshPublicKey pubkey, String description, KeyConstraints constraints) Add a key to the agentvoidclose()Close the agentstatic SocketconnectAgentSocket(String location) Connect a socket to the agent at the location specified.static SshAgentClientconnectLocalAgent(String application, String location) Connect to the local agent.voidDelete all the keys held by the agent.voiddeleteKey(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.booleanLock the agentvoidping(byte[] padding) Ping the remote side with some random padding dataprotected SubsystemMessageRead a single message from the inputstream and convert into a valid subsystem messageprotected voidRegister the subsystem messagesprotected voidSend a forwarding notice.protected voidSend a subsystem messageprotected voidsendVersionRequest(String application) Request the agent version.booleanunlockAgent(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
-