com.sshtools.j2ssh.transport
Class TransportProtocolClient

java.lang.Object
  extended bycom.sshtools.j2ssh.transport.TransportProtocolCommon
      extended bycom.sshtools.j2ssh.transport.TransportProtocolClient
All Implemented Interfaces:
java.lang.Runnable, TransportProtocol

public class TransportProtocolClient
extends TransportProtocolCommon

DOCUMENT ME!


Field Summary
protected  SshPublicKey pk
          DOCUMENT ME!
 
Fields inherited from class com.sshtools.j2ssh.transport.TransportProtocolCommon
algorithmsIn, algorithmsOut, clientIdent, clientKexInit, completeOnNewKeys, EOL_CRLF, EOL_LF, hostKey, k, kexs, log, messageStore, properties, PROTOCOL_VERSION, serverIdent, serverKexInit, sessionIdentifier, signature, SOFTWARE_VERSION_COMMENTS, sshIn, sshOut, state
 
Constructor Summary
TransportProtocolClient(HostKeyVerification hosts)
          Creates a new TransportProtocolClient object.
 
Method Summary
protected  java.lang.String getDecryptionAlgorithm()
          DOCUMENT ME!
protected  java.lang.String getEncryptionAlgorithm()
          DOCUMENT ME!
protected  java.lang.String getInputStreamCompAlgortihm()
          DOCUMENT ME!
protected  java.lang.String getInputStreamMacAlgorithm()
          DOCUMENT ME!
 java.lang.String getLocalId()
          DOCUMENT ME!
protected  SshMsgKexInit getLocalKexInit()
          DOCUMENT ME!
protected  java.lang.String getOutputStreamCompAlgorithm()
          DOCUMENT ME!
protected  java.lang.String getOutputStreamMacAlgorithm()
          DOCUMENT ME!
 java.lang.String getRemoteId()
          DOCUMENT ME!
protected  SshMsgKexInit getRemoteKexInit()
          DOCUMENT ME!
 SshPublicKey getServerHostKey()
          DOCUMENT ME!
protected  void onDisconnect()
          DOCUMENT ME!
 void onMessageReceived(SshMessage msg)
          DOCUMENT ME!
protected  void onStartTransportProtocol()
          DOCUMENT ME!
protected  void performKeyExchange(SshKeyExchange kex)
          DOCUMENT ME!
 void registerTransportMessages()
          DOCUMENT ME!
 void requestService(Service service)
          DOCUMENT ME!
protected  void setLocalIdent()
          DOCUMENT ME!
protected  void setLocalKexInit(SshMsgKexInit msg)
          DOCUMENT ME!
protected  void setRemoteIdent(java.lang.String ident)
          DOCUMENT ME!
protected  void setRemoteKexInit(SshMsgKexInit msg)
          DOCUMENT ME!
protected  void setupNewKeys(byte[] encryptCSKey, byte[] encryptCSIV, byte[] encryptSCKey, byte[] encryptSCIV, byte[] macCSKey, byte[] macSCKey)
          DOCUMENT ME!
protected  boolean verifyHostKey(byte[] key, byte[] sig, byte[] sigdata)
          DOCUMENT ME!
 
Methods inherited from class com.sshtools.j2ssh.transport.TransportProtocolCommon
addEventHandler, addMessageStore, beginKeyExchange, completeKeyExchange, createLocalKexInit, determineAlgorithm, disconnect, getConnectionId, getEventHandlers, getIncomingByteCount, getKexAlgorithm, getOutgoingByteCount, getProperties, getRemoteEOL, getSessionIdentifier, getState, getUnderlyingProviderDetail, onCorruptMac, processMessages, readMessage, removeMessageStore, run, sendDisconnect, sendDisconnect, sendKeyExchangeInit, sendMessage, sendNewKeys, setKexTimeout, setKexTransferLimit, setSendIgnore, startBinaryPacketProtocol, startTransportProtocol, stop, unregisterMessage
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

pk

protected SshPublicKey pk
DOCUMENT ME!

Constructor Detail

TransportProtocolClient

public TransportProtocolClient(HostKeyVerification hosts)
                        throws TransportProtocolException
Creates a new TransportProtocolClient object.

Parameters:
hosts - DOCUMENT ME!
Throws:
TransportProtocolException - DOCUMENT ME!
Method Detail

onMessageReceived

public void onMessageReceived(SshMessage msg)
                       throws java.io.IOException
DOCUMENT ME!

Specified by:
onMessageReceived in class TransportProtocolCommon
Parameters:
msg - DOCUMENT ME!
Throws:
java.io.IOException - DOCUMENT ME!

registerTransportMessages

public void registerTransportMessages()
                               throws MessageAlreadyRegisteredException
DOCUMENT ME!

Specified by:
registerTransportMessages in class TransportProtocolCommon
Throws:
MessageAlreadyRegisteredException - DOCUMENT ME!

requestService

public void requestService(Service service)
                    throws java.io.IOException
DOCUMENT ME!

Parameters:
service - DOCUMENT ME!
Throws:
java.io.IOException - DOCUMENT ME!
SshException - DOCUMENT ME!

onDisconnect

protected void onDisconnect()
DOCUMENT ME!

Specified by:
onDisconnect in class TransportProtocolCommon

getDecryptionAlgorithm

protected java.lang.String getDecryptionAlgorithm()
                                           throws AlgorithmNotAgreedException
DOCUMENT ME!

Specified by:
getDecryptionAlgorithm in class TransportProtocolCommon
Returns:
DOCUMENT ME!
Throws:
AlgorithmNotAgreedException - DOCUMENT ME!

getEncryptionAlgorithm

protected java.lang.String getEncryptionAlgorithm()
                                           throws AlgorithmNotAgreedException
DOCUMENT ME!

Specified by:
getEncryptionAlgorithm in class TransportProtocolCommon
Returns:
DOCUMENT ME!
Throws:
AlgorithmNotAgreedException - DOCUMENT ME!

getInputStreamCompAlgortihm

protected java.lang.String getInputStreamCompAlgortihm()
                                                throws AlgorithmNotAgreedException
DOCUMENT ME!

Specified by:
getInputStreamCompAlgortihm in class TransportProtocolCommon
Returns:
DOCUMENT ME!
Throws:
AlgorithmNotAgreedException - DOCUMENT ME!

getInputStreamMacAlgorithm

protected java.lang.String getInputStreamMacAlgorithm()
                                               throws AlgorithmNotAgreedException
DOCUMENT ME!

Specified by:
getInputStreamMacAlgorithm in class TransportProtocolCommon
Returns:
DOCUMENT ME!
Throws:
AlgorithmNotAgreedException - DOCUMENT ME!

setLocalIdent

protected void setLocalIdent()
DOCUMENT ME!

Specified by:
setLocalIdent in class TransportProtocolCommon

getLocalId

public java.lang.String getLocalId()
DOCUMENT ME!

Specified by:
getLocalId in class TransportProtocolCommon
Returns:
DOCUMENT ME!

setLocalKexInit

protected void setLocalKexInit(SshMsgKexInit msg)
DOCUMENT ME!

Specified by:
setLocalKexInit in class TransportProtocolCommon
Parameters:
msg - DOCUMENT ME!

getLocalKexInit

protected SshMsgKexInit getLocalKexInit()
DOCUMENT ME!

Specified by:
getLocalKexInit in class TransportProtocolCommon
Returns:
DOCUMENT ME!

getOutputStreamCompAlgorithm

protected java.lang.String getOutputStreamCompAlgorithm()
                                                 throws AlgorithmNotAgreedException
DOCUMENT ME!

Specified by:
getOutputStreamCompAlgorithm in class TransportProtocolCommon
Returns:
DOCUMENT ME!
Throws:
AlgorithmNotAgreedException - DOCUMENT ME!

getOutputStreamMacAlgorithm

protected java.lang.String getOutputStreamMacAlgorithm()
                                                throws AlgorithmNotAgreedException
DOCUMENT ME!

Specified by:
getOutputStreamMacAlgorithm in class TransportProtocolCommon
Returns:
DOCUMENT ME!
Throws:
AlgorithmNotAgreedException - DOCUMENT ME!

setRemoteIdent

protected void setRemoteIdent(java.lang.String ident)
DOCUMENT ME!

Specified by:
setRemoteIdent in class TransportProtocolCommon
Parameters:
ident - DOCUMENT ME!

getRemoteId

public java.lang.String getRemoteId()
DOCUMENT ME!

Specified by:
getRemoteId in class TransportProtocolCommon
Returns:
DOCUMENT ME!

setRemoteKexInit

protected void setRemoteKexInit(SshMsgKexInit msg)
DOCUMENT ME!

Specified by:
setRemoteKexInit in class TransportProtocolCommon
Parameters:
msg - DOCUMENT ME!

getRemoteKexInit

protected SshMsgKexInit getRemoteKexInit()
DOCUMENT ME!

Specified by:
getRemoteKexInit in class TransportProtocolCommon
Returns:
DOCUMENT ME!

getServerHostKey

public SshPublicKey getServerHostKey()
DOCUMENT ME!

Returns:
DOCUMENT ME!

onStartTransportProtocol

protected void onStartTransportProtocol()
                                 throws java.io.IOException
DOCUMENT ME!

Specified by:
onStartTransportProtocol in class TransportProtocolCommon
Throws:
java.io.IOException - DOCUMENT ME!
TransportProtocolException - DOCUMENT ME!

performKeyExchange

protected void performKeyExchange(SshKeyExchange kex)
                           throws java.io.IOException
DOCUMENT ME!

Specified by:
performKeyExchange in class TransportProtocolCommon
Parameters:
kex - DOCUMENT ME!
Throws:
java.io.IOException - DOCUMENT ME!

setupNewKeys

protected void setupNewKeys(byte[] encryptCSKey,
                            byte[] encryptCSIV,
                            byte[] encryptSCKey,
                            byte[] encryptSCIV,
                            byte[] macCSKey,
                            byte[] macSCKey)
                     throws AlgorithmNotAgreedException,
                            AlgorithmOperationException,
                            AlgorithmNotSupportedException,
                            AlgorithmInitializationException
DOCUMENT ME!

Specified by:
setupNewKeys in class TransportProtocolCommon
Parameters:
encryptCSKey - DOCUMENT ME!
encryptCSIV - DOCUMENT ME!
encryptSCKey - DOCUMENT ME!
encryptSCIV - DOCUMENT ME!
macCSKey - DOCUMENT ME!
macSCKey - DOCUMENT ME!
Throws:
AlgorithmNotAgreedException - DOCUMENT ME!
AlgorithmOperationException - DOCUMENT ME!
AlgorithmNotSupportedException - DOCUMENT ME!
AlgorithmInitializationException - DOCUMENT ME!

verifyHostKey

protected boolean verifyHostKey(byte[] key,
                                byte[] sig,
                                byte[] sigdata)
                         throws TransportProtocolException
DOCUMENT ME!

Parameters:
key - DOCUMENT ME!
sig - DOCUMENT ME!
sigdata - DOCUMENT ME!
Returns:
DOCUMENT ME!
Throws:
TransportProtocolException - DOCUMENT ME!