Diff

Differences From Artifact [4c03135b2a]:

To Artifact [a533321135]:


8018
8019
8020
8021
8022
8023
8024
8025

8026
8027
8028
8029
8030
8031
8032
8018
8019
8020
8021
8022
8023
8024

8025
8026
8027
8028
8029
8030
8031
8032







-
+







		     * time round. Can this be done more subtly? */
		    s->cur_prompt->instruction =
			dupprintf("Using keyboard-interactive authentication.%s%.*s",
				  inst_len ? "\n" : "", inst_len, inst);
		    s->cur_prompt->instr_reqd = TRUE;

		    /*
		     * Get the prompts from the packet.
		     * Get any prompt(s) from the packet.
		     */
		    s->num_prompts = ssh_pkt_getuint32(pktin);
		    for (i = 0; i < s->num_prompts; i++) {
			char *prompt;
			int prompt_len;
			int echo;
			static char noprompt[] =
8040
8041
8042
8043
8044
8045
8046

8047

8048
8049

8050
8051
8052
8053
8054
8055
8056
8040
8041
8042
8043
8044
8045
8046
8047

8048
8049

8050
8051
8052
8053
8054
8055
8056
8057







+
-
+

-
+







			}
			add_prompt(s->cur_prompt,
				   dupprintf("%.*s", prompt_len, prompt),
				   echo, SSH_MAX_PASSWORD_LEN);
		    }

		    /*
                     * Display any instructions, and get the user's
		     * Get the user's responses.
                     * response(s).
		     */
		    if (s->num_prompts) {
		    {
			int ret; /* not live over crReturn */
			ret = get_userpass_input(s->cur_prompt, NULL, 0);
			while (ret < 0) {
			    ssh->send_ok = 1;
			    crWaitUntilV(!pktin);
			    ret = get_userpass_input(s->cur_prompt, in, inlen);
			    ssh->send_ok = 0;
8064
8065
8066
8067
8068
8069
8070
8071

8072
8073
8074
8075
8076
8077
8078
8065
8066
8067
8068
8069
8070
8071

8072
8073
8074
8075
8076
8077
8078
8079







-
+







					   SSH2_DISCONNECT_AUTH_CANCELLED_BY_USER,
					   TRUE);
			    crStopV;
			}
		    }

		    /*
		     * Send the responses to the server.
		     * Send the response(s) to the server.
		     */
		    s->pktout = ssh2_pkt_init(SSH2_MSG_USERAUTH_INFO_RESPONSE);
		    ssh2_pkt_adduint32(s->pktout, s->num_prompts);
		    for (i=0; i < s->num_prompts; i++) {
			dont_log_password(ssh, s->pktout, PKTLOG_BLANK);
			ssh2_pkt_addstring(s->pktout,
					   s->cur_prompt->prompts[i]->result);