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