https://gitlab.synchro.net/main/sbbs/-/commit/a692e22977edf0a77a2ddca5
Modified Files:
src/ssh/deucessh-auth.h server.c ssh-auth.c
Log Message:
Server-side keyboard-interactive auth (RFC 4256)
New callback: dssh_auth_server_kbi_cb — called in a loop, first
with NULL responses (provide initial prompts), then with client
answers. Returns DSSH_AUTH_KBI_PROMPT to send more prompts, DSSH_AUTH_SUCCESS/FAILURE/PARTIAL to finish. Library handles INFO_REQUEST/INFO_RESPONSE wire protocol and frees prompt arrays.
New constant: DSSH_AUTH_KBI_PROMPT (3) — avoids collision with DSSH_AUTH_SUCCESS (0) that caused immediate auth bypass.
Banner flush added before INFO_REQUEST so KBI callbacks can
set banners that display before the next prompt.
Example server: adventure game authentication via KBI. Four
rooms (Gate, Garden, Tower, Parapet), riddle puzzle, raven
hint, key collection. Solve to authenticate. N/S/E/W/U/D
navigation, look, take, use, read, talk, answer, inventory.
Co-Authored-By: Claude Opus 4.6 (1M context) <
noreply@anthropic.com>
---
■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net