Package com.sshtools.j2ssh.transport
Class TransportProtocolClient
- java.lang.Object
-
- com.sshtools.j2ssh.transport.TransportProtocolCommon
-
- com.sshtools.j2ssh.transport.TransportProtocolClient
-
- All Implemented Interfaces:
TransportProtocol,java.lang.Runnable
public class TransportProtocolClient extends TransportProtocolCommon
- Version:
- $Revision: 1.49 $
- Author:
- $author$
-
-
Field Summary
Fields Modifier and Type Field Description protected SshPublicKeypk-
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
Constructors Constructor Description TransportProtocolClient(HostKeyVerification hosts)Creates a new TransportProtocolClient object.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.StringgetDecryptionAlgorithm()protected java.lang.StringgetEncryptionAlgorithm()protected java.lang.StringgetInputStreamCompAlgortihm()protected java.lang.StringgetInputStreamMacAlgorithm()java.lang.StringgetLocalId()protected SshMsgKexInitgetLocalKexInit()protected java.lang.StringgetOutputStreamCompAlgorithm()protected java.lang.StringgetOutputStreamMacAlgorithm()java.lang.StringgetRemoteId()protected SshMsgKexInitgetRemoteKexInit()SshPublicKeygetServerHostKey()protected voidonDisconnect()voidonMessageReceived(SshMessage msg)protected voidonStartTransportProtocol()protected voidperformKeyExchange(SshKeyExchange kex)voidregisterTransportMessages()voidrequestService(Service service)protected voidsetLocalIdent()protected voidsetLocalKexInit(SshMsgKexInit msg)protected voidsetRemoteIdent(java.lang.String ident)protected voidsetRemoteKexInit(SshMsgKexInit msg)protected voidsetupNewKeys(byte[] encryptCSKey, byte[] encryptCSIV, byte[] encryptSCKey, byte[] encryptSCIV, byte[] macCSKey, byte[] macSCKey)protected booleanverifyHostKey(byte[] key, byte[] sig, byte[] sigdata)-
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, isConnected, onCorruptMac, processMessages, readMessage, removeMessageStore, run, sendDisconnect, sendDisconnect, sendKeyExchangeInit, sendMessage, sendNewKeys, setKexTimeout, setKexTransferLimit, setSendIgnore, startBinaryPacketProtocol, startTransportProtocol, stop, unregisterMessage
-
-
-
-
Field Detail
-
pk
protected SshPublicKey pk
-
-
Constructor Detail
-
TransportProtocolClient
public TransportProtocolClient(HostKeyVerification hosts) throws TransportProtocolException
Creates a new TransportProtocolClient object.- Parameters:
hosts-- Throws:
TransportProtocolException
-
-
Method Detail
-
onMessageReceived
public void onMessageReceived(SshMessage msg) throws java.io.IOException
- Specified by:
onMessageReceivedin classTransportProtocolCommon- Parameters:
msg-- Throws:
java.io.IOException
-
registerTransportMessages
public void registerTransportMessages() throws MessageAlreadyRegisteredException- Specified by:
registerTransportMessagesin classTransportProtocolCommon- Throws:
MessageAlreadyRegisteredException
-
requestService
public void requestService(Service service) throws java.io.IOException
- Parameters:
service-- Throws:
java.io.IOExceptionSshException
-
onDisconnect
protected void onDisconnect()
- Specified by:
onDisconnectin classTransportProtocolCommon
-
getDecryptionAlgorithm
protected java.lang.String getDecryptionAlgorithm() throws AlgorithmNotAgreedException- Specified by:
getDecryptionAlgorithmin classTransportProtocolCommon- Returns:
- Throws:
AlgorithmNotAgreedException
-
getEncryptionAlgorithm
protected java.lang.String getEncryptionAlgorithm() throws AlgorithmNotAgreedException- Specified by:
getEncryptionAlgorithmin classTransportProtocolCommon- Returns:
- Throws:
AlgorithmNotAgreedException
-
getInputStreamCompAlgortihm
protected java.lang.String getInputStreamCompAlgortihm() throws AlgorithmNotAgreedException- Specified by:
getInputStreamCompAlgortihmin classTransportProtocolCommon- Returns:
- Throws:
AlgorithmNotAgreedException
-
getInputStreamMacAlgorithm
protected java.lang.String getInputStreamMacAlgorithm() throws AlgorithmNotAgreedException- Specified by:
getInputStreamMacAlgorithmin classTransportProtocolCommon- Returns:
- Throws:
AlgorithmNotAgreedException
-
setLocalIdent
protected void setLocalIdent()
- Specified by:
setLocalIdentin classTransportProtocolCommon
-
getLocalId
public java.lang.String getLocalId()
- Specified by:
getLocalIdin classTransportProtocolCommon- Returns:
-
setLocalKexInit
protected void setLocalKexInit(SshMsgKexInit msg)
- Specified by:
setLocalKexInitin classTransportProtocolCommon- Parameters:
msg-
-
getLocalKexInit
protected SshMsgKexInit getLocalKexInit()
- Specified by:
getLocalKexInitin classTransportProtocolCommon- Returns:
-
getOutputStreamCompAlgorithm
protected java.lang.String getOutputStreamCompAlgorithm() throws AlgorithmNotAgreedException- Specified by:
getOutputStreamCompAlgorithmin classTransportProtocolCommon- Returns:
- Throws:
AlgorithmNotAgreedException
-
getOutputStreamMacAlgorithm
protected java.lang.String getOutputStreamMacAlgorithm() throws AlgorithmNotAgreedException- Specified by:
getOutputStreamMacAlgorithmin classTransportProtocolCommon- Returns:
- Throws:
AlgorithmNotAgreedException
-
setRemoteIdent
protected void setRemoteIdent(java.lang.String ident)
- Specified by:
setRemoteIdentin classTransportProtocolCommon- Parameters:
ident-
-
getRemoteId
public java.lang.String getRemoteId()
- Specified by:
getRemoteIdin classTransportProtocolCommon- Returns:
-
setRemoteKexInit
protected void setRemoteKexInit(SshMsgKexInit msg)
- Specified by:
setRemoteKexInitin classTransportProtocolCommon- Parameters:
msg-
-
getRemoteKexInit
protected SshMsgKexInit getRemoteKexInit()
- Specified by:
getRemoteKexInitin classTransportProtocolCommon- Returns:
-
getServerHostKey
public SshPublicKey getServerHostKey()
- Returns:
-
onStartTransportProtocol
protected void onStartTransportProtocol() throws java.io.IOException- Specified by:
onStartTransportProtocolin classTransportProtocolCommon- Throws:
java.io.IOExceptionTransportProtocolException
-
performKeyExchange
protected void performKeyExchange(SshKeyExchange kex) throws java.io.IOException
- Specified by:
performKeyExchangein classTransportProtocolCommon- Parameters:
kex-- Throws:
java.io.IOExceptionKeyExchangeException
-
setupNewKeys
protected void setupNewKeys(byte[] encryptCSKey, byte[] encryptCSIV, byte[] encryptSCKey, byte[] encryptSCIV, byte[] macCSKey, byte[] macSCKey) throws AlgorithmNotAgreedException, AlgorithmOperationException, AlgorithmNotSupportedException, AlgorithmInitializationException- Specified by:
setupNewKeysin classTransportProtocolCommon- Parameters:
encryptCSKey-encryptCSIV-encryptSCKey-encryptSCIV-macCSKey-macSCKey-- Throws:
AlgorithmNotAgreedExceptionAlgorithmOperationExceptionAlgorithmNotSupportedExceptionAlgorithmInitializationException
-
verifyHostKey
protected boolean verifyHostKey(byte[] key, byte[] sig, byte[] sigdata) throws TransportProtocolException- Parameters:
key-sig-sigdata-- Returns:
- Throws:
TransportProtocolException
-
-