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

def generate_key #:nodoc:

:nodoc:
number of bytes.
Generate a DH key with a private key consisting of the given
def generate_key #:nodoc:
  dh = OpenSSL::PKey::DH.new
  if dh.respond_to?(:set_pqg)
    p, g = get_parameters
    dh.set_pqg(p, nil, g)
  else
    dh.p, dh.g = get_parameters
  end
  dh.generate_key!
  until dh.valid? && dh.priv_key.num_bytes == data[:need_bytes]
    if dh.respond_to?(:set_key)
      dh.set_key(nil, OpenSSL::BN.rand(data[:need_bytes] * 8))
    else
      dh.priv_key = OpenSSL::BN.rand(data[:need_bytes] * 8)
    end
    dh.generate_key!
  end
  dh
end