• src/ssh/deucessh-auth.h server.c ssh-auth.c

    From Deucе@VERT to Git commit to main/sbbs/master on Thu Mar 26 05:47:34 2026
    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