• src/ssh/CMakeLists.txt sr

    From Deuc¿@VERT to Git commit to main/sbbs/m on Sun Mar 22 10:47:00 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
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Mon Mar 23 20:49:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/30feea027d05d936299b6747
    Modified Files:
    src/ssh/CMakeLists.txt src/ssh/test/test_dhgex_provider.h
    Log Message:
    Cache test host keys to avoid repeated RSA keygen

    test_generate_host_key() now checks DSSH_TEST_ED25519_KEY and
    DSSH_TEST_RSA_KEY environment variables. If set to a file path:
    - Load the key from that file if it exists
    - Otherwise generate and save it for next time

    If the env var is not set, generates a fresh key every time
    (preserving original behavior for manual runs).

    CMakeLists.txt sets both env vars to build-directory paths for all
    CTest configurations, so keys are generated once and reused across
    the 23 test runs.

    Test suite time: ~130s -> ~42s (3x speedup).

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

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