exchange_keys (Net::SSH::Transport::Kex::DiffieHellmanGroup1SHA1)

    # File lib/net/ssh/transport/kex/dh.rb, line 224
              def exchange_keys( session, data )
                data = data.dup
                dh = generate_key( session, data )

                buffer = send_kexinit( dh, session )

                result = parse_kex_reply( dh, buffer, session )

                verify_server_key( result[:server_key], session )

                session_id = verify_signature( dh, data, result )

                confirm_newkeys( session )

                return Struct.new( :session_id,
                  :server_key, :shared_secret, :hashing_algorithm ).new(
                    session_id, result[:server_key], result[:shared_secret],
                    @digester )
              end