BBS:      TELESC.NET.BR
Assunto:  src/ssh/README.md src/ssh/comp/none.c src/ssh/kex/curve25519-sha256.c
De:       Deuc¨
Data:     Sun, 22 Mar 2026 10:47:22 -0700
-----------------------------------------------------------
https://gitlab.synchro.net/main/sbbs/-/commit/2080be53f439dce31f032b92
Modified Files:
	src/ssh/README.md src/ssh/comp/none.c src/ssh/kex/curve25519-sha256.c dh-gex-sha256.c src/ssh/key_algo/rsa-sha2-256.c rsa-sha2-256.h ssh-ed25519.c ssh-ed25519.h src/ssh/server.c ssh-auth.c ssh-auth.h ssh-trans.c ssh-trans.h
Log Message:
DeuceSSH: per-algorithm key contexts, key management API, security hardening

Key management:
- Move key_algo_ctx from per-session to per-algorithm registration
  entry, enabling multiple host keys simultaneously
- Server KEXINIT only advertises algorithms with loaded keys (haskey
  filtering with EVP_PKEY type validation)
- Key load/save functions no longer take a session parameter
- Add passphrase support via pem_password_cb (AES-256-CBC encryption)
- Add save_key_file, save_pub_file (OpenSSH format), get_pub_str
  (size-query pattern) for both ed25519 and rsa-sha2-256
- auth_publickey() no longer takes explicit ctx parameter

Security hardening (from systematic audit of all built-in modules):
- OPENSSL_cleanse on X25519 shared secrets before free
- BN_clear_free for DH private exponents (x, y) and shared secret K
- Cleanse serialize_bn_mpint temp buffers and exchange hash mpbuf
- Validate algorithm names in verify() for both ed25519 and RSA
  (was skipping over without checking)
- Reject trailing data in key/sig blobs in both verify() functions
- Check EVP_PKEY_get_raw_public_key and EVP_PKEY_derive returns
- Bump sig_buf 256->1024 and k_s_buf 512->1024 for RSA-4096
- Fix compression interface: uint8_t *bufsz -> size_t *bufsz
- Check fprintf/fclose returns in save_key_file/save_pub_file
- Initialize ka->ctx = NULL in both register functions

Tested: DeuceSSH<->DeuceSSH, OpenSSH 9.9 client/server,
Synchronet/cryptlib (DH-GEX + RSA + AES-256-CTR + HMAC-SHA-256).

Co-Authored-By: Claude Opus 4.6 (1M context) 
n
---
  mSynchronetn  hgVertrauen n hHome of Synchronet n gh[vert/cvs/bbs].synchro.net

-----------------------------------------------------------
[Voltar]