com.maverick.sshd.components.jce
Class DiffieHellmanGroupExchangeSha1JCE

java.lang.Object
  extended by com.maverick.sshd.components.SshKeyExchangeServer
      extended by com.maverick.sshd.components.jce.DiffieHellmanGroupExchangeSha1JCE
All Implemented Interfaces:
AbstractKeyExchange

public class DiffieHellmanGroupExchangeSha1JCE
extends SshKeyExchangeServer
implements AbstractKeyExchange


Field Summary
static java.lang.String DIFFIE_HELLMAN_GROUP_EXCHANGE_SHA1
          Constant for the algorithm name "diffie-hellman-group1-sha1".
 
Fields inherited from class com.maverick.sshd.components.SshKeyExchangeServer
clientId, clientKexInit, exchangeHash, firstPacketFollows, hostKey, prvkey, pubkey, secret, serverId, serverKexInit, signature, transport, useFirstPacket
 
Constructor Summary
DiffieHellmanGroupExchangeSha1JCE()
          Construct an uninitialized instance.
 
Method Summary
protected  void calculateExchangeHash()
          Calculates the exchange hash as an SHA1 hash of the following data.
 boolean exchangeGroup(byte[] msg)
           
 java.lang.String getAlgorithm()
          Get the algorithm name for this key exchange
 java.lang.String getProvider()
           
 void init(TransportProtocol transport, java.lang.String clientIdentification, java.lang.String serverIdentification, byte[] clientKexInit, byte[] serverKexInit, SshPrivateKey prvkey, SshPublicKey pubkey, boolean firstPacketFollows, boolean useFirstPacket)
          Initialize the server side key exchange.
 boolean processMessage(byte[] msg)
          Process a key exchange message
 
Methods inherited from class com.maverick.sshd.components.SshKeyExchangeServer
getExchangeHash, getHostKey, getSecret, getSignature, hasReceivedNewKeys, hasSentNewKeys, reset, setReceivedNewKeys, setSentNewKeys
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DIFFIE_HELLMAN_GROUP_EXCHANGE_SHA1

public static final java.lang.String DIFFIE_HELLMAN_GROUP_EXCHANGE_SHA1
Constant for the algorithm name "diffie-hellman-group1-sha1".

See Also:
Constant Field Values
Constructor Detail

DiffieHellmanGroupExchangeSha1JCE

public DiffieHellmanGroupExchangeSha1JCE()
Construct an uninitialized instance.

Method Detail

getAlgorithm

public java.lang.String getAlgorithm()
Get the algorithm name for this key exchange

Specified by:
getAlgorithm in class SshKeyExchangeServer
Returns:
"diffie-hellman-group1-sha1"

init

public void init(TransportProtocol transport,
                 java.lang.String clientIdentification,
                 java.lang.String serverIdentification,
                 byte[] clientKexInit,
                 byte[] serverKexInit,
                 SshPrivateKey prvkey,
                 SshPublicKey pubkey,
                 boolean firstPacketFollows,
                 boolean useFirstPacket)
          throws java.io.IOException
Description copied from class: SshKeyExchangeServer
Initialize the server side key exchange.

Specified by:
init in class SshKeyExchangeServer
Throws:
java.io.IOException

getProvider

public java.lang.String getProvider()
Specified by:
getProvider in interface AbstractKeyExchange

exchangeGroup

public boolean exchangeGroup(byte[] msg)
                      throws SshException,
                             java.io.IOException
Throws:
SshException
java.io.IOException

processMessage

public boolean processMessage(byte[] msg)
                       throws SshException,
                              java.io.IOException
Description copied from class: SshKeyExchangeServer
Process a key exchange message

Specified by:
processMessage in class SshKeyExchangeServer
Returns:
boolean, indicating whether it has processed the message or not
Throws:
java.io.IOException
SshException

calculateExchangeHash

protected void calculateExchangeHash()
                              throws 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
 

Throws:
java.io.IOException
SshException


Copyright © 2003-2008 SSHTools LTD. All Rights Reserved.