• src/ssh/CMakeLists.txt src/ssh/comp/none.c none.h src/ssh/deucessh.h s

    From Deucе@VERT to Git commit to main/sbbs/master on Sun Mar 22 10:47:22 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/1f815b90e196c943f87b9fd7
    Modified Files:
    src/ssh/CMakeLists.txt 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/portable.h ssh-auth.c ssh-auth.h ssh-chan.c ssh-chan.h ssh-conn.c ssh-conn.h ssh-trans.c ssh-trans.h ssh.c
    Log Message:
    DeuceSSH: ELF symbol visibility and separate static/shared builds

    portable.h: add DEUCE_SSH_PUBLIC and DEUCE_SSH_PRIVATE macros.
    - GCC/Clang: visibility("default") and visibility("hidden")
    - MSVC: __declspec(dllexport/dllimport)
    - Static builds: no-ops

    CMakeLists.txt: split OBJECT library into separate static and
    shared library targets compiled from the same sources. Shared
    library builds with -DDEUCE_SSH_SHARED and -fvisibility=hidden.

    All public API functions decorated with DEUCE_SSH_PUBLIC (70 symbols
    exported from libdeuce-ssh.so). All internal cross-file functions
    decorated with DEUCE_SSH_PRIVATE (ssh-chan.c buffer primitives).
    Algorithm module callbacks (sign, verify, handler, cleanup, etc.)
    made static where they were missing it.

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

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