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