Lines Matching refs:kbdintctxt

106 	KbdintAuthctxt *kbdintctxt;
115 kbdintctxt = xcalloc(1, sizeof(KbdintAuthctxt));
125 kbdintctxt->devices = xstrdup(buffer_ptr(&b));
128 kbdintctxt->devices = xstrdup(devs);
130 debug("kbdint_alloc: devices '%s'", kbdintctxt->devices);
131 kbdintctxt->ctxt = NULL;
132 kbdintctxt->device = NULL;
133 kbdintctxt->nreq = 0;
135 return kbdintctxt;
138 kbdint_reset_device(KbdintAuthctxt *kbdintctxt)
140 if (kbdintctxt->ctxt) {
141 kbdintctxt->device->free_ctx(kbdintctxt->ctxt);
142 kbdintctxt->ctxt = NULL;
144 kbdintctxt->device = NULL;
147 kbdint_free(KbdintAuthctxt *kbdintctxt)
149 if (kbdintctxt->device)
150 kbdint_reset_device(kbdintctxt);
151 free(kbdintctxt->devices);
152 explicit_bzero(kbdintctxt, sizeof(*kbdintctxt));
153 free(kbdintctxt);
157 kbdint_next_device(Authctxt *authctxt, KbdintAuthctxt *kbdintctxt)
163 if (kbdintctxt->device)
164 kbdint_reset_device(kbdintctxt);
166 len = kbdintctxt->devices ?
167 strcspn(kbdintctxt->devices, ",") : 0;
172 if ((kbdintctxt->devices_done & (1 << i)) != 0 ||
176 if (strncmp(kbdintctxt->devices, devices[i]->name,
178 kbdintctxt->device = devices[i];
179 kbdintctxt->devices_done |= 1 << i;
182 t = kbdintctxt->devices;
183 kbdintctxt->devices = t[len] ? xstrdup(t+len+1) : NULL;
185 debug2("kbdint_next_device: devices %s", kbdintctxt->devices ?
186 kbdintctxt->devices : "<empty>");
187 } while (kbdintctxt->devices && !kbdintctxt->device);
189 return kbdintctxt->device ? 1 : 0;
205 if (authctxt->kbdintctxt == NULL)
206 authctxt->kbdintctxt = kbdint_alloc(devs);
216 if (authctxt->kbdintctxt != NULL) {
217 kbdint_free(authctxt->kbdintctxt);
218 authctxt->kbdintctxt = NULL;
226 KbdintAuthctxt *kbdintctxt = authctxt->kbdintctxt;
229 kbdintctxt->devices ? kbdintctxt->devices : "<empty>");
231 if (kbdint_next_device(authctxt, kbdintctxt) == 0) {
236 kbdintctxt->device->name);
238 if ((kbdintctxt->ctxt = kbdintctxt->device->init_ctx(authctxt)) == NULL) {
256 KbdintAuthctxt *kbdintctxt;
260 kbdintctxt = authctxt->kbdintctxt;
261 if (kbdintctxt->device->query(kbdintctxt->ctxt,
262 &name, &instr, &kbdintctxt->nreq, &prompts, &echo_on))
269 packet_put_int(kbdintctxt->nreq);
270 for (i = 0; i < kbdintctxt->nreq; i++) {
277 for (i = 0; i < kbdintctxt->nreq; i++)
290 KbdintAuthctxt *kbdintctxt;
298 kbdintctxt = authctxt->kbdintctxt;
299 if (kbdintctxt == NULL || kbdintctxt->ctxt == NULL)
300 fatal("input_userauth_info_response: no kbdintctxt");
301 if (kbdintctxt->device == NULL)
306 if (nresp != kbdintctxt->nreq)
317 res = kbdintctxt->device->respond(kbdintctxt->ctxt, nresp, response);
339 devicename = kbdintctxt->device->name;