# File lib/net/ssh/transport/kex/dh.rb, line 206 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