_  _    __    ___  __    ___  _____  _  _
 ( \( )  /__\  / __)(  )  / __)(  _  )( \( )
  )  (  /(__)\( (__  )(__( (__  )(_)(  )  (
 (_)\_)(__)(__)\___)(____)\___)(_____)(_)\_)

The History of Hacking  ·  May 31 – June 2, 2026  ·  Carolina Beach, NC

Connect from your terminal: telnet naclconbbs.net 23  |  ssh naclconbbs.net -p 2222

  • src/ssh/TODO.md ssh-trans.c src/ssh/test/dssh_test_internal.h test_tra

    From Deucе@VERT to Git commit to main/sbbs/master on Sat Mar 28 12:55:04 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/bb749b57be1a596b01d60496
    Modified Files:
    src/ssh/TODO.md ssh-trans.c src/ssh/test/dssh_test_internal.h test_transport.c
    Log Message:
    Close items 19, 20, 22: decompose kexinit/newkeys, clean up derive_key

    kexinit() (~330 lines) split into build_kexinit_packet,
    receive_peer_kexinit, dssh_test_parse_peer_kexinit (DSSH_TESTABLE
    pure parser), and negotiate_algorithms. Eliminates KEXINIT_SER_NL
    macro and if(0){kexinit_fail:} goto pattern.

    newkeys() (~280 lines) split into dssh_test_encode_k_wire
    (DSSH_TESTABLE pure K wire encoder) and derive_and_apply_keys.

    derive_key() refactored: chained || OpenSSL calls replaced with
    sequential checks; 3 duplicated cleanup blocks unified via goto.

    11 new unit tests: 6 for parse_peer_kexinit (valid, control char,
    name too long, truncated, too short, first_kex_follows), 5 for
    encode_k_wire (mpint no pad, sign pad, empty, string, string empty). Previously-SKIP kexinit/peer_trunc_namelist now implemented.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net