Lines Matching refs:kbdintctxt
105 KbdintAuthctxt *kbdintctxt;
114 kbdintctxt = xmalloc(sizeof(KbdintAuthctxt));
124 kbdintctxt->devices = xstrdup(buffer_ptr(&b));
127 kbdintctxt->devices = xstrdup(devs);
129 debug("kbdint_alloc: devices '%s'", kbdintctxt->devices);
130 kbdintctxt->ctxt = NULL;
131 kbdintctxt->device = NULL;
132 kbdintctxt->nreq = 0;
134 return kbdintctxt;
137 kbdint_reset_device(KbdintAuthctxt *kbdintctxt)
139 if (kbdintctxt->ctxt) {
140 kbdintctxt->device->free_ctx(kbdintctxt->ctxt);
141 kbdintctxt->ctxt = NULL;
143 kbdintctxt->device = NULL;
146 kbdint_free(KbdintAuthctxt *kbdintctxt)
148 if (kbdintctxt->device)
149 kbdint_reset_device(kbdintctxt);
150 if (kbdintctxt->devices) {
151 xfree(kbdintctxt->devices);
152 kbdintctxt->devices = NULL;
154 xfree(kbdintctxt);
158 kbdint_next_device(KbdintAuthctxt *kbdintctxt)
164 if (kbdintctxt->device)
165 kbdint_reset_device(kbdintctxt);
167 len = kbdintctxt->devices ?
168 strcspn(kbdintctxt->devices, ",") : 0;
173 if (strncmp(kbdintctxt->devices, devices[i]->name, len) == 0)
174 kbdintctxt->device = devices[i];
175 t = kbdintctxt->devices;
176 kbdintctxt->devices = t[len] ? xstrdup(t+len+1) : NULL;
178 debug2("kbdint_next_device: devices %s", kbdintctxt->devices ?
179 kbdintctxt->devices : "<empty>");
180 } while (kbdintctxt->devices && !kbdintctxt->device);
182 return kbdintctxt->device ? 1 : 0;
198 if (authctxt->kbdintctxt == NULL)
199 authctxt->kbdintctxt = kbdint_alloc(devs);
209 if (authctxt->kbdintctxt != NULL) {
210 kbdint_free(authctxt->kbdintctxt);
211 authctxt->kbdintctxt = NULL;
219 KbdintAuthctxt *kbdintctxt = authctxt->kbdintctxt;
222 kbdintctxt->devices ? kbdintctxt->devices : "<empty>");
224 if (kbdint_next_device(kbdintctxt) == 0) {
229 kbdintctxt->device->name);
231 if ((kbdintctxt->ctxt = kbdintctxt->device->init_ctx(authctxt)) == NULL) {
249 KbdintAuthctxt *kbdintctxt;
253 kbdintctxt = authctxt->kbdintctxt;
254 if (kbdintctxt->device->query(kbdintctxt->ctxt,
255 &name, &instr, &kbdintctxt->nreq, &prompts, &echo_on))
262 packet_put_int(kbdintctxt->nreq);
263 for (i = 0; i < kbdintctxt->nreq; i++) {
270 for (i = 0; i < kbdintctxt->nreq; i++)
283 KbdintAuthctxt *kbdintctxt;
290 kbdintctxt = authctxt->kbdintctxt;
291 if (kbdintctxt == NULL || kbdintctxt->ctxt == NULL)
292 fatal("input_userauth_info_response: no kbdintctxt");
293 if (kbdintctxt->device == NULL)
298 if (nresp != kbdintctxt->nreq)
309 res = kbdintctxt->device->respond(kbdintctxt->ctxt, nresp, response);
333 xasprintf(&method, "keyboard-interactive/%s", kbdintctxt->device->name);