class Net::SSH::Transport::Kex::DiffieHellmanGroup1SHA1

def send_kexinit # :nodoc:

:nodoc:
the extracted values.
Parse the buffer from a KEXDH_REPLY message, returning a hash of

resulting buffer.
Send the KEXDH_INIT message, and expect the KEXDH_REPLY. Return the
def send_kexinit # :nodoc:
  init, reply = get_message_types
  # send the KEXDH_INIT message
  buffer = Net::SSH::Buffer.from(:byte, init, :bignum, dh.pub_key)
  connection.send_message(buffer)
  # expect the KEXDH_REPLY message
  buffer = connection.next_message
  raise Net::SSH::Exception, "expected REPLY" unless buffer.type == reply
  result = Hash.new
  result[:key_blob] = buffer.read_string
  result[:server_key] = Net::SSH::Buffer.new(result[:key_blob]).read_key
  result[:server_dh_pubkey] = buffer.read_bignum
  result[:shared_secret] = OpenSSL::BN.new(dh.compute_key(result[:server_dh_pubkey]), 2)
  sig_buffer = Net::SSH::Buffer.new(buffer.read_string)
  sig_type = sig_buffer.read_string
  if sig_type != algorithms.host_key_format
    raise Net::SSH::Exception,
          "host key algorithm mismatch for signature " +
          "'#{sig_type}' != '#{algorithms.host_key_format}'"
  end
  result[:server_sig] = sig_buffer.read_string
  return result
end