Lines Matching refs:kbdintctxt

103 	KbdintAuthctxt *kbdintctxt;  in kbdint_alloc()  local
112 kbdintctxt = xcalloc(1, sizeof(KbdintAuthctxt)); in kbdint_alloc()
121 if ((kbdintctxt->devices = sshbuf_dup_string(b)) == NULL) in kbdint_alloc()
125 kbdintctxt->devices = xstrdup(devs); in kbdint_alloc()
127 debug("kbdint_alloc: devices '%s'", kbdintctxt->devices); in kbdint_alloc()
128 kbdintctxt->ctxt = NULL; in kbdint_alloc()
129 kbdintctxt->device = NULL; in kbdint_alloc()
130 kbdintctxt->nreq = 0; in kbdint_alloc()
132 return kbdintctxt; in kbdint_alloc()
135 kbdint_reset_device(KbdintAuthctxt *kbdintctxt) in kbdint_reset_device() argument
137 if (kbdintctxt->ctxt) { in kbdint_reset_device()
138 kbdintctxt->device->free_ctx(kbdintctxt->ctxt); in kbdint_reset_device()
139 kbdintctxt->ctxt = NULL; in kbdint_reset_device()
141 kbdintctxt->device = NULL; in kbdint_reset_device()
144 kbdint_free(KbdintAuthctxt *kbdintctxt) in kbdint_free() argument
146 if (kbdintctxt->device) in kbdint_free()
147 kbdint_reset_device(kbdintctxt); in kbdint_free()
148 free(kbdintctxt->devices); in kbdint_free()
149 freezero(kbdintctxt, sizeof(*kbdintctxt)); in kbdint_free()
153 kbdint_next_device(Authctxt *authctxt, KbdintAuthctxt *kbdintctxt) in kbdint_next_device() argument
159 if (kbdintctxt->device) in kbdint_next_device()
160 kbdint_reset_device(kbdintctxt); in kbdint_next_device()
162 len = kbdintctxt->devices ? in kbdint_next_device()
163 strcspn(kbdintctxt->devices, ",") : 0; in kbdint_next_device()
168 if ((kbdintctxt->devices_done & (1 << i)) != 0 || in kbdint_next_device()
172 if (strncmp(kbdintctxt->devices, devices[i]->name, in kbdint_next_device()
174 kbdintctxt->device = devices[i]; in kbdint_next_device()
175 kbdintctxt->devices_done |= 1 << i; in kbdint_next_device()
178 t = kbdintctxt->devices; in kbdint_next_device()
179 kbdintctxt->devices = t[len] ? xstrdup(t+len+1) : NULL; in kbdint_next_device()
181 debug2("kbdint_next_device: devices %s", kbdintctxt->devices ? in kbdint_next_device()
182 kbdintctxt->devices : "<empty>"); in kbdint_next_device()
183 } while (kbdintctxt->devices && !kbdintctxt->device); in kbdint_next_device()
185 return kbdintctxt->device ? 1 : 0; in kbdint_next_device()
202 if (authctxt->kbdintctxt == NULL) in auth2_challenge()
203 authctxt->kbdintctxt = kbdint_alloc(devs); in auth2_challenge()
214 if (authctxt->kbdintctxt != NULL) { in auth2_challenge_stop()
215 kbdint_free(authctxt->kbdintctxt); in auth2_challenge_stop()
216 authctxt->kbdintctxt = NULL; in auth2_challenge_stop()
225 KbdintAuthctxt *kbdintctxt = authctxt->kbdintctxt; in auth2_challenge_start() local
228 kbdintctxt->devices ? kbdintctxt->devices : "<empty>"); in auth2_challenge_start()
230 if (kbdint_next_device(authctxt, kbdintctxt) == 0) { in auth2_challenge_start()
235 kbdintctxt->device->name); in auth2_challenge_start()
237 if ((kbdintctxt->ctxt = kbdintctxt->device->init_ctx(authctxt)) == NULL) { in auth2_challenge_start()
256 KbdintAuthctxt *kbdintctxt; in send_userauth_info_request() local
260 kbdintctxt = authctxt->kbdintctxt; in send_userauth_info_request()
261 if (kbdintctxt->device->query(kbdintctxt->ctxt, in send_userauth_info_request()
262 &name, &instr, &kbdintctxt->nreq, &prompts, &echo_on)) in send_userauth_info_request()
269 (r = sshpkt_put_u32(ssh, kbdintctxt->nreq)) != 0) in send_userauth_info_request()
271 for (i = 0; i < kbdintctxt->nreq; i++) { in send_userauth_info_request()
280 for (i = 0; i < kbdintctxt->nreq; i++) in send_userauth_info_request()
293 KbdintAuthctxt *kbdintctxt; in input_userauth_info_response() local
302 kbdintctxt = authctxt->kbdintctxt; in input_userauth_info_response()
303 if (kbdintctxt == NULL || kbdintctxt->ctxt == NULL) in input_userauth_info_response()
305 if (kbdintctxt->device == NULL) in input_userauth_info_response()
311 if (nresp != kbdintctxt->nreq) in input_userauth_info_response()
325 res = kbdintctxt->device->respond(kbdintctxt->ctxt, nresp, response); in input_userauth_info_response()
347 devicename = kbdintctxt->device->name; in input_userauth_info_response()