public class DiffieHellmanGroupExchange extends SshKeyExchangeClient implements com.sshtools.synergy.ssh.components.jce.AbstractKeyExchange
clientId, clientKexInit, exchangeHash, firstPacketFollows, hostKey, key, secret, serverId, serverKexInit, signature, transport, useFirstPacket
Constructor and Description |
---|
DiffieHellmanGroupExchange(java.lang.String kexAlgorithm,
java.lang.String hashAlgorithm,
com.sshtools.common.ssh.SecurityLevel securityLevel,
int priority)
Construct an uninitialized instance.
|
Modifier and Type | Method and Description |
---|---|
protected void |
calculateExchangeHash()
Calculates the exchange hash as an SHA1 hash of the following data.
|
boolean |
exchangeGroup(com.sshtools.common.util.ByteArrayReader msg) |
java.lang.String |
getAlgorithm()
Get the algorithm name for this key exchange
|
java.lang.String |
getProvider() |
void |
init(com.sshtools.synergy.ssh.SshTransport<SshClientContext> transport,
java.lang.String clientIdentification,
java.lang.String serverIdentification,
byte[] clientKexInit,
byte[] serverKexInit,
boolean firstPacketFollows,
boolean useFirstPacket) |
void |
init(com.sshtools.synergy.ssh.SshTransport<SshClientContext> transport,
java.lang.String clientId,
java.lang.String serverId,
byte[] clientKexInit,
byte[] serverKexInit,
com.sshtools.common.ssh.components.SshPrivateKey prvkey,
com.sshtools.common.ssh.components.SshPublicKey pubkey,
boolean firstPacketFollows,
boolean useFirstPacket) |
boolean |
isKeyExchangeMessage(int messageid) |
boolean |
processMessage(byte[] m)
Process a key exchange message
|
void |
test() |
getExchangeHash, getHashAlgorithm, getHostKey, getPriority, getSecret, getSecurityLevel, getSignature, hasReceivedNewKeys, hasSentNewKeys, isComplete, reset, setReceivedNewKeys, setSentNewKeys
public DiffieHellmanGroupExchange(java.lang.String kexAlgorithm, java.lang.String hashAlgorithm, com.sshtools.common.ssh.SecurityLevel securityLevel, int priority)
public java.lang.String getAlgorithm()
getAlgorithm
in interface com.sshtools.common.ssh.components.SshComponent
getAlgorithm
in interface com.sshtools.common.ssh.SecureComponent
getAlgorithm
in interface com.sshtools.synergy.ssh.components.SshKeyExchange<SshClientContext>
public void init(com.sshtools.synergy.ssh.SshTransport<SshClientContext> transport, java.lang.String clientIdentification, java.lang.String serverIdentification, byte[] clientKexInit, byte[] serverKexInit, boolean firstPacketFollows, boolean useFirstPacket) throws java.io.IOException
java.io.IOException
public java.lang.String getProvider()
getProvider
in interface com.sshtools.synergy.ssh.components.jce.AbstractKeyExchange
getProvider
in interface com.sshtools.synergy.ssh.components.SshKeyExchange<SshClientContext>
public boolean exchangeGroup(com.sshtools.common.util.ByteArrayReader msg) throws com.sshtools.common.ssh.SshException, java.io.IOException
com.sshtools.common.ssh.SshException
java.io.IOException
public boolean processMessage(byte[] m) throws com.sshtools.common.ssh.SshException, java.io.IOException
SshKeyExchangeClient
processMessage
in interface com.sshtools.synergy.ssh.components.SshKeyExchange<SshClientContext>
processMessage
in class SshKeyExchangeClient
com.sshtools.common.ssh.SshException
java.io.IOException
protected void calculateExchangeHash() throws com.sshtools.common.ssh.SshException
Calculates the exchange hash as an SHA1 hash of the following data.
String the client's version string (CR and NL excluded) String the server's version string (CR and NL excluded) String the payload of the client's SSH_MSG_KEXINIT String the payload of the server's SSH_MSG_KEXINIT String the host key UnsignedInteger32 min UnsignedInteger32 n UnsignedInteger32 max BigInteger p BigInteger g BigInteger e, exchange value sent by the client BigInteger f, exchange value sent by the server BigInteger K, the shared secret
calculateExchangeHash
in class SshKeyExchangeClient
java.io.IOException
com.sshtools.common.ssh.SshException
public boolean isKeyExchangeMessage(int messageid)
public void init(com.sshtools.synergy.ssh.SshTransport<SshClientContext> transport, java.lang.String clientId, java.lang.String serverId, byte[] clientKexInit, byte[] serverKexInit, com.sshtools.common.ssh.components.SshPrivateKey prvkey, com.sshtools.common.ssh.components.SshPublicKey pubkey, boolean firstPacketFollows, boolean useFirstPacket) throws java.io.IOException, com.sshtools.common.ssh.SshException
init
in interface com.sshtools.synergy.ssh.components.SshKeyExchange<SshClientContext>
java.io.IOException
com.sshtools.common.ssh.SshException
public void test() throws java.io.IOException, com.sshtools.common.ssh.SshException
test
in interface com.sshtools.synergy.ssh.components.SshKeyExchange<SshClientContext>
java.io.IOException
com.sshtools.common.ssh.SshException
Copyright © 2021. All rights reserved.