anchor.diff:  				 partial_success = false}, Ssh)}.
   
   
  -
  -handle_userauth_info_request(
  -  #ssh_msg_userauth_info_request{name = Name,
  -				 instruction = Instr,
  -				 num_prompts = NumPrompts,
  -				 data  = Data}, IoCb, 
  -  #ssh{opts = Opts} = Ssh) ->
  +%%%----------------------------------------------------------------
  +%%% keyboard-interactive client
  +handle_userauth_info_request(#ssh_msg_userauth_info_request{name = Name,
  +							    instruction = Instr,
  +							    num_prompts = NumPrompts,
  +							    data  = Data},
  +			     #ssh{opts = Opts,
  +				  io_cb = IoCb
  +				 } = Ssh) ->
       PromptInfos = decode_keyboard_interactive_prompts(NumPrompts,Data),
  -    Responses = keyboard_interact_get_responses(IoCb, Opts,
  -					    Name, Instr, PromptInfos),
  -    {ok, 
  -     ssh_transport:ssh_packet(
  -       #ssh_msg_userauth_info_response{num_responses = NumPrompts,
  -				       data = Responses}, Ssh)}.
  -
  +    case keyboard_interact_get_responses(IoCb, Opts, Name, Instr, PromptInfos) of
  +	not_ok ->
  +	    not_ok;
  +	Responses ->
  +	    {ok, 
  +	     ssh_transport:ssh_packet(
  +	       #ssh_msg_userauth_info_response{num_responses = NumPrompts,
  +					       data = Responses}, Ssh)}
  +    end.
  +
  +%%%----------------------------------------------------------------
  +%%% keyboard-interactive server
   handle_userauth_info_response(#ssh_msg_userauth_info_response{num_responses = 1,
   							      data = <<?UINT32(Sz), Password:Sz/binary>>},
   			      #ssh{opts = Opts,
  
positive.code: 		       [{"publickey", ?MODULE, publickey_msg, [A]} | Acc]
  	       end, 
  	       [{"password", ?MODULE, password_msg, []},
  		{"keyboard-interactive", ?MODULE, keyboard_interactive_msg, []},
  		{"keyboard-interactive", ?MODULE, keyboard_interactive_msg, []},
  		{"keyboard-interactive", ?MODULE, keyboard_interactive_msg, []},
  		{"keyboard-interactive", ?MODULE, keyboard_interactive_msg, []},
  		{"keyboard-interactive", ?MODULE, keyboard_interactive_msg, []},
  		{"keyboard-interactive", ?MODULE, keyboard_interactive_msg, []}
  	       ],
  	       Algs).
  
negative.code: 				    proplists:get_value(password, Opts, undefined), IoCb, Name,
  				    Instr, PromptInfos, Opts, NumPrompts).
  
  
  keyboard_interact_get_responses(_, _, not_ok, _, _, _, _, _, _) ->
      not_ok;
  keyboard_interact_get_responses(_, undefined, Password, _, _, _, _, _,
  				1) when Password =/= undefined ->
      [Password]; %% Password auth implemented with keyboard-interaction and passwd is known
  