• src/build/CMakeSubproject.gmake SynchronetCrypto.cmake src/syncterm/in

    From Deuc¿@VERT to Git commit to main/sbbs/master on Mon Aug 3 22:47:12 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/b2488dded6ebee21318c580d
    Added Files:
    src/build/CMakeSubproject.gmake SynchronetCrypto.cmake src/syncterm/ini_crypt_test.c src/xptls/xp_kdf.h xp_kdf_botan3.cpp xp_kdf_none.c xp_kdf_openssl.c
    Modified Files:
    3rdp/build/GNUmakefile docs/superpowers/specs/2026-07-31-hashed-password-storage-design.md 2026-08-03-cryptlib-replacement-design.md src/build/Common.gmake src/syncterm/CMakeLists.txt GNUmakefile Wren.adoc bbslist.c conn_mqtt.c ini_crypt.c ini_crypt.h src/syncterm/legacy_ciphers/idea.c legacy_ciphers.h rc2.c src/syncterm/scripts/menu_settings_ui.wren src/syncterm/syncterm.c telnets.c webget.c wren_bind_menu_settings.c src/xpdev/extdeps.mk src/xptls/CMakeLists.txt test_xp_crypto.c test_xp_crypto_none.c test_xp_tls.cpp xp_cipher.h xp_cipher_botan3.cpp xp_cipher_none.c xp_cipher_openssl.c xp_tls.h xp_tls_botan3.cpp xp_tls_none.c xp_tls_openssl.c
    Removed Files:
    src/syncterm/legacy_ciphers/register.c src/xptls/xp_crypt.h xp_crypt_botan3.cpp xp_crypt_none.c xp_crypt_openssl.c
    Log Message:
    xptls: make crypto APIs an independent library

    SyncTERM still consumed the monolithic xp_crypt compatibility layer and compiled provider sources into its own target. That duplicated provider selection and made stale Botan or OpenSSL build state easy to reuse.

    Split KDFs from cipher contexts, migrate SyncTERM to the typed APIs and
    the config-driven TLS interface, and remove the old xp_crypt and TLS
    wrappers. Preserve legacy encrypted lists with private decoders, bound
    scrypt derivations to 1025 MiB per operation, and cover the migration
    with tests. Fix buffered TLS EOF and chunk handling in webget along the
    way.

    Build xptls as an independent static CMake library while keeping
    xpdev a separate dependency. Resolve Botan or OpenSSL once in the
    parent CMake or GNUmake configuration, share subproject toolchain
    arguments with DeuceSSH, and keep the two libraries independent.

    Co-Authored-By: OpenAI Codex <noreply@openai.com>

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