https://gitlab.synchro.net/main/sbbs/-/commit/2f29f6b1ebb87c6194d5183f
Added Files:
src/ssh/deucessh-algorithms.h deucessh-arch.h deucessh-auth.h deucessh-conn.h deucessh-portable.h ssh-internal.h
Modified Files:
src/ssh/README.md api-design-4254.md audit-4250.md audit-4251.md audit-4252.md audit-4253.md audit-4254.md client.c src/ssh/comp/none.c none.h src/ssh/deucessh.h src/ssh/enc/aes256-ctr.c aes256-ctr.h none.c none.h src/ssh/kex/curve25519-sha256.c curve25519-sha256.h dh-gex-sha256.c dh-gex-sha256.h src/ssh/key_algo/rsa-sha2-256.c rsa-sha2-256.h ssh-ed25519.c ssh-ed25519.h src/ssh/mac/hmac-sha2-256.c hmac-sha2-256.h none.c none.h src/ssh/server.c ssh-arch.c ssh-auth.c ssh-chan.c ssh-chan.h ssh-conn.c ssh-trans.c ssh-trans.h ssh.c
Removed Files:
src/ssh/portable.h ssh-arch.h ssh-conn.h
Log Message:
DeuceSSH: opaque session/channel handles, rename public API to dssh_/DSSH_
Make both dssh_session and dssh_channel opaque pointers — struct
definitions move to ssh-internal.h, invisible to consumers. Public
headers contain no <threads.h>, <stdatomic.h>, or struct internals.
Session API changes:
- dssh_session_init(client, max_packet_size) allocates and returns
an opaque handle (NULL on failure)
- dssh_session_cleanup() frees the session
- dssh_session_is_terminated() replaces direct terminate flag access
- dssh_session_set_cbdata/debug_cb/banner_cb/etc. replace direct
struct member access
- I/O callbacks receive dssh_session handle instead of atomic_bool*
Channel API changes:
- Open/accept functions return dssh_channel (NULL on failure)
- Close functions free the channel
Header consolidation:
- 10 per-algorithm headers consolidated into deucessh-algorithms.h
- All public headers renamed to deucessh-*.h prefix
- Consumer includes just 4 headers: deucessh.h, deucessh-auth.h,
deucessh-conn.h, deucessh-algorithms.h
Symbol prefix shortened: deuce_ssh_/DEUCE_SSH_ -> dssh_/DSSH_
Co-Authored-By: Claude Opus 4.6 (1M context) <
noreply@anthropic.com>
---
■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net