/
niceSOFT
/
libssh2
Обзор
Документация
Войти
/
niceSOFT
/
libssh2
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
RELEASE-NOTES
999 строк
73 KB
Viktor Szakats
RELEASE-NOTES: sync [ci skip]
05 авг 2026, 00:46
05 авг 2026, 00:46
4aded1b
Код
Авторство
О чём код?
libssh2 1.11.2_DEV Deprecation notices: - This release disables these options by default: - SHA1-based hostkey methods and signatures: `ssh-rsa`, `ssh-rsa-cert-v01@openssh.com` You can enable them with `-DLIBSSH2_RSA_SHA1_ENABLE`. - SHA1-based key-exchange methods: - `diffie-hellman-group1-sha1` - `diffie-hellman-group14-sha1` - `diffie-hellman-group-exchange-sha1` You can enable them with `-DLIBSSH2_KEX_SHA1_ENABLE`. - DSA: `ssh-dss` hostkeys. You can enable it with `-DLIBSSH2_DSA_ENABLE`. - SHA1-based MACs: `hmac-sha1`, `hmac-sha1-etm@openssh.com`, `hmac-sha1-96` You can enable them with `-DLIBSSH2_HMAC_SHA1_ENABLE`. - MD5-based MACs and hashes: `hmac-md5`, `hmac-md5-96`, `LIBSSH2_HOSTKEY_HASH_MD5` You can enable it with `-DLIBSSH2_MD5_ENABLE`. - old-style, MD5-based encrypted private keys: You can enable it with `-DLIBSSH2_MD5_PEM_ENABLE`. - 3DES cipher: `3des-cbc` You can enable it with `-DLIBSSH2_3DES_ENABLE`. - RIPEMD-160 MACs: `hmac-ripemd160`, `hmac-ripemd160@openssh.com` You can enable it with `-DLIBSSH2_HMAC_RIPEMD_ENABLE`. - Blowfish cipher: `blowfish-cbc` You can enable it with `-DLIBSSH2_BLOWFISH_ENABLE`. - RC4 ciphers: `arcfour`, `arcfour128` You can enable it with `-DLIBSSH2_RC4_ENABLE`. - CAST cipher: `cast128-cbc` You can enable it with `-DLIBSSH2_CAST_ENABLE`. - The next release drops support for the above options. - This release drops support for OpenSSL <1.1.1, LibreSSL <3.7, mbedTLS 2.x, wolfSSL <5.4.0, zlib <1.2.5.2, old/classic mingw, mingw-w64 <3.0. - This release drops support for Visual Studio 2008 and older. Requiring 2010 or newer (`_MSC_VER` >= 1600). - This release drops support for Windows XP and older. Requiring Windows Vista / Server 2008 or newer. - This release always enables large file support on Windows. This release includes the following enhancements and bugfixes: - agent: fix unused macro compiler warnings in UWP non-unity builds (0e2bc3d6 #2325 #2313) - agent: fix to replace `TEXT()` with `_TEXT()` in CRT calls (8e9f1ca1 #2320 #2313) - agent: add Unicode support, use secure `getenv()` on Windows (49abb5e5 #2313) - agent: list supported backends in `libssh2_build_options()` (09073098 #2312 #2285 #2178) - agent: move similar backends next to each other (tidy up) (80323ce4 #2311) - agent: stop repurposing system symbol as an internal guard (dfaa11ee #2310) - agent: cap number of identities, pubkey and comment sizes (1a45da5a #2151 #2148) - agent: fix bounds checks, and potential OOB access on 32-bit `agent_list_identities()` (15ae3030 #2148 #2046) - agent: tidy up and sync up allocation error messages (cb6b9461) - agent: fix potential wrap in 32-bit `agent_transact_pageant()` (5e020418 #2145) - agent: add response caps to Windows OpenSSH and Unix backends (db180247 #2145) - agent: fix NULL deref on OOM in `libssh2_agent_set_identity_path()` (1b9d0560 #2066) - agent: return error on OOM in `libssh2_agent_sign()` (4433bcc2 #2059) - agent: simplify `agent_disconnect_unix()` (25229c2c #2061) - agent: replace literals with `LIBSSH2_ERROR_*` constants (d14279d4 #2060) - agent: fix bounds checks, and potential OOB access on 32-bit platforms in `agent_sign()` (a6e07bc5 #2046 #2021) - agent: avoid reserved namespace for two static functions (1d8cfa73 #1978) - agent: avoid reusing a macro name (213335f3 #1849) - agent: do not store stack pointer in transaction context (4aa1720b #1845) - agent: replace `strncpy()` with `memcpy()` (179dbafb #1785) - agent: do not truncate socket path; reject (c10cb244 #1709) - agent: pageant backend, bound reply copy, handle missing reply (8ddf3b31 #1711) - agent: fix error code on agent recv error (42669040 #1710) - agent: fix byte amount copied for method in libssh2_agent_sign (9136cc76 #1603) - agent: merge `agent_win.c` into the main source (ddc4cf34 #941 follow: 4f0f4bff) - appveyor: build tests again with old MSVC and related tidy-ups (a09dcbb6 #2330) - appveyor: test debug-logging enabled build with <VS2015 (3544f757 #2328) - appveyor: silence cmake warning (4deba99c #2129) - appveyor: drop three more CI jobs (a9ac2137 #2070 #2055 #2051) - appveyor: show OpenSSL 3 minor version in job names (0a6b89c7) - appveyor: really disable building tests for no-test jobs (7537c3e7 #2055 #2051) - appveyor: bump clang-cl job to VS2026, add native VS2026 job (e8c58d87 #2005) - appveyor: rename/shorten out-of-tree directory (a62f3158 #1976) - appveyor: bump to OpenSSL 3.6.x (db37e381 #1897) - appveyor: test tidy-ups (1f0d0626 #1892 #997 #1894 #1857 #1856 #1768 #1461 follow: b5e68bdc follow: f36edf94) - appveyor: replace choco with pinned/hashed direct download for docker (c71ff14f #1894) - appveyor: fix `if` expression (f33207cf) - appveyor: rework, simplify, use more bash and modern CMake (6d516af7 #1841) - appveyor: disable last Windows test job, now completely broken (c321b324 #1768) - appveyor: enable WinCrypt ECDSA in tests, move to Windows 2016 (0f584387 #1721 #1720 #1461) - appveyor: fix PowerShell warning (df2b206c #1514) - appveyor: use `-A` option with all MSVC versions (25d3a092 #1513) - AUTHORS: update (4ea1cc6d #1874) - autotools: assume `select()` on Windows (fcc86f84 #2461) - autotools: fix `memset_s()` detection (48340150 #2457 #2456 #2455) - badwords: add checker script, fix issues found (9538c99f #1959) - blowfish: drop unused macro guards (635dd1d4 #1937) - build: assume POSIX `gettimeofday()` in fallback codepath, stop detecting it (8563c383 #2485 #2494 #2493 #2491 #2490 #2489 #2341) - build: assume `sys/socket.h` on non-Windows (a78e2c0c #2467) - build: assume `sys/time.h` on non-Windows and mingw-w64 (24d40141 #2466) - build: assume POSIX `select()` is available (f7cdcd72 #2464 follow: 9d55db65) - build: improve/extend clear memory API detection (6f0dcc3e #2455) - build: drop `CLEAR_MEMORY=NO` and `--disable-clear-memory` options (5b74ac4b #2454 #810 follow: a0e424a5) - build: set `LIBSSH2_TESTS` macro for all tests (76d30e5d #2417 #2408) - build: assume standard `snprintf()` (be18d596 #2326) - build: add option to enable Unicode mode (Windows) (49738e7e #2321) - build: make examples a separate target, add quick-build for cmake (6bf392f6 #2276) - build: stop redefining system symbol `snprintf` (dcd0dbab #2103) - build: update picky warning options, fix fallouts (04ecdb22 #1972) - build: improve in-source `inline` detection, drop from `./configure` (e6625c54 #1990) - build: fix two issues when generating `libssh2.pc` (22683576 #1946) - build: enable `-Wlogical-op` for GCC 4.4+ (57e4316b #1941) - build: fix to omit `libcrypto.pc` from `libssh2.pc` for BoringSSL (cbf39eeb #1915) - build: improve building in ISO and C89 modes, test in CI (e8e6bc2c #1688 #999 #1674 follow: a683133d) - build: quote a cmake variable, drop redundant step in Cygwin CI jobs (bb7b68de #1730) - build: fix/extend Apple clang and mainline llvm version translations (664d7654 #1658) - build: tidy up comments on `Makefile.inc` variables (723b7017 #1615) - build: sync up picky warnings with curl, fix fallouts (72982d15 #1588 #1525 #1524) - build: drop `crypto.c` umbrella source (e0681cdb #941 follow: 4f0f4bff) - build: add support for clang-cl, add CI job (784446b6 #1484) - build: enable `-Wcast-qual`, fix fallouts (606c102e #1527) - build: prepare builds for clang-cl, add cmake ossfuzz support (854cfa82 #1524) - build: disable warning `-Wunreachable-code-break` (4844e368 #1481 #1224 follow: 7ecc309c) - cd2nroff: move to scripts directory, sync with curl (e4c2b18f #1958) - chacha: silence `-Wuninitialized` with gcc-16+ (8dc705a8 #2107) - channel: fix refund bytes for DATA packets in `ssh2_channel_flush()` (15621fa9 #2158 #2020 follow: 4b8db8c1) - channel: fix state machine in `ssh2_channel_extended_data()` (f6a3f774 #2146) - channel: fix 3 error messages (16c3c22e #2141) - channel: Check open_data length before accessing reason_code (9ffbe62b #2140) - channel: add window size bounds checking (a0057aef #1848) - channel: fix comment about handling of trailing zero byte (785cafa5 #1781) - channel: in channel_free, find all members in session structure with the channelpointer and free and clear those entries (80981c76 #1753 #1432) - checksrc: extend to ossfuzz, reduce scope of exceptions (509eac8b #1998) - checksrc: stop disabling TYPEDEFSTRUCT globally (a73aa23c #1912 #1910 #1909 #1908 #1907) - checksrc: add missing semicolon, fix `IFDEFSINGLE` capture group (001571c1) - checksrc: add missing items to warnings hash, alpha-sort (96df6f2f) - checksrc: fix code quality findings (d9631cfc) - checksrc: delete stray commas (bda85e20 #1879) - checksrc: update, fix new issues found (cbf2f074 #1850) - checksrc: replace bash starter with `checksrc-all.pl` (14de8476 #1778 #1775) - checksrc: update, fix fallouts (71804d9f #1772) - checksrc: update, update local config, fix toctou in examples (557611f9 #1719) - checksrc: sync with curl (7e1c6be1 #1474) - checksrc-all.pl: limit checks to repo files only (3da7e627 #1900) - CI: minor fixes and improvements (Windows) (111a6d17 #2314 #2276) - CI: pass `--proto-redir =https` alongside `--location` (d58a25a0 #2117) - CI: drop redundant AppVeyor build jobs, limit building tests and examples (39cd3a82 #2051) - CI: dump `libssh2_config.h` to log (7e5b263b #1975) - CI: set `DO_NOT_TRACK=1` (c615272e #1872) - clang-tidy: fix two NOLINTs and drop obsolete ones (d5965d12 #2382) - clang-tidy: extend checks, fix fallouts (6e47049c #1844) - clang-tidy: fix and/or silence issues found, and more (a1a28ac9 #1561) - cmake: drop `gettimeofday()` detection for Windows, non-mingw-w64 (03223a02 #2468) - cmake: add CMake Config-based dependency detection for mbedTLS, wolfSSL (86dcc0ae #2264 #2262) - cmake: add `MBEDTLS_USE_STATIC_LIBS` option (d462f158 #2263) - cmake: fix building with `CMAKE_FIND_PACKAGE_PREFER_CONFIG=ON` (dd5f3fff #2262) - cmake: drop auto-copying runtime DLLs next to targets (3b730f2e #2101 #899 #818 #2093 #2091 #2090 #2078 #1638 #1610 follow: 19884e50 follow: 6bf89833 follow: 97417ad3) - cmake: fix to collect libssh2 runtime lib with install disabled (a95a02c8 #2093 #2091 #1638) - cmake: fix adding libssh2 shared lib to the global runtime dependency list (97d8e8d4 #2091 #2090 #1610 follow: 6bf89833) - cmake: simplify and fixup varname for runtime dependencies list (d652ba02 #2090 #1610 follow: 6bf89833) - cmake: fix to really disable picky warning for clang-tidy combined with gcc (e5a4a6c3 #2088 #1844) - cmake: limit CPack generator to TGZ (c528dfdf #1996 #1972) - cmake: drop support for CMake 3.17 and lower (ac7b9b21 #1839) - cmake: tidy up line order (e900f4a2 #1836) - cmake: avoid setting custom property on built-in interface targets (bd1d00a4 #1789 #1535) - cmake: rename `libssh2-config.cmake.in` to `libssh2-config.in.cmake` (35e1c653 #1765) - cmake: verify minimum CMake version in `libssh2-config.cmake` (96e21c2e #1754) - cmake: namespace all local variables in `libssh2-config.cmake` (78cd32aa #1752) - cmake: save and restore `CMAKE_MODULE_PATH` in `libssh2-config.cmake` (7fd89a58 #1750 #1322 follow: 82b09f9b) - cmake: small tidy-ups (3969991b #1732) - cmake: link wolfSSL macOS/Unix system lib dependencies (f2838c76 #1722) - cmake: tidy up passing compiler and linker options (61d51cb4 #1690 #939 #1686 #1524 follow: 80175921) - cmake: enable picky warnings for `MSC_VERSION=1944` (549d90b8 #1687) - cmake: pass picky C options to C targets only (and not to C++ ossfuzz) (14a709a7 #1686) - cmake: use modern alternative for `get_filename_component()` (af679ecc #1673) - cmake: initialize `__runtime_dependencies` variable (fdd6aa2c #1661 #1610) - cmake: use C compiler version (not C++), fix a fallout (09eb59e3 #1648 follow: 09f0ffd9) - cmake: make `clean-coverage` target portable (25ed4d74 #1647) - cmake: add `LIBSSH2_DISABLE_INSTALL` option (dd50a411 #1638) - cmake: make the ExternalProject test work (714fa876 #1637 #1589) - cmake: fixup `Libs.private` lib order (ad8e9245 #1623 #1535 #1466 follow: c87f1296) - cmake: de-duplicate `LIBSSH2_PC_LIBS_PRIVATE` more carefully (e1da7b2c #1621 #1131 follow: 64643018) - cmake: tidy up `add_feature_info()` formatting (4e08dac7 #1622) - cmake: pre-fill more, simplify control flow (300da4e2 #1620) - cmake: drop redundant `-lws2_32` meant for `libssh2.pc` (22784a56 #1619 #827 #811 #1535 #1128) - cmake: add linter, fix issues (694b9d96 #1610) - cmake: test integration with old cmake (v3.11.4 2018-03-28) (f522f10c #1591) - cmake: honor individual picky option overrides found in `CMAKE_C_FLAGS` (62ad6a84 #1590) - cmake: fix copy-paste typo in integration tests for old cmake (4e78006c #1592 #1589) - cmake: extend integration tests (77df7677 #1589) - cmake: `IMPORTED` target improvements and fixes (ac800418 #1581 #1571 #1535) - cmake: avoid 'target is imported but not globally visible' when consuming libcurl with old cmake (a8dd5090 #1587 #1581) - cmake: fix `libssh2-config.cmake` for cmake <3.15 (117b02b4 #1586 #1322 follow: 82b09f9b) - cmake: whitespace in Find modules (3ae5ae32) - cmake: use `CMAKE_COMPILE_WARNING_AS_ERROR` if available (6af8a7ca #1583) - cmake: fix declspec for MSVC consuming static libssh2 (7b4f821e #1579 #1578) - cmake: tidy-up `ENABLE_WERROR` logic (8a871d0b #1576) - cmake: avoid passing options via `CMAKE_*_FLAGS` (a8e4456b #1575) - cmake: fix target interfaces for old CMake versions (a0d8529b #1571 #1535) - cmake: use `VERSION_GREATER_EQUAL` (71179930 #1573) - cmake: add clang-tidy support via `LIBSSH2_CLANG_TIDY=ON` (66358804) - cmake: replace deprecated `CMAKE_COMPILER_IS_GNUCC` (902fc957 #1564) - cmake: make Find modules use `INTERFACE` (df0563a8 #1535 #1534) - cmake: add comment to integration test (8ea6ae72 #1529) - cmake: use `GREATER_EQUAL` (837ccb2d #1559) - cmake: replace `add_definitions()` with directory props (94a099bc #1558) - cmake: prefer `CMAKE_INSTALL_PREFIX` over `--prefix` (in tests) (669b51a0 #1542) - cmake: add missing quotes (9642a96e #1540) - cmake: exclude `CMAKE_C_IMPLICIT_LINK_DIRECTORIES` from `libssh2.pc` (3de8731e) - cmake: initialize variables where missing (d92de595 #1539) - cmake: normalize before matching paths with syspaths (9da0ca3c #1538) - cmake: ZLIB linkage tidy-ups (eea97dbf #1534) - cmake: extend, not overwrite, `CMAKE_REQUIRED_*` values (d07d12ae) - cmake: avoid dupe `target_link_libraries()` commands in tests (1a9f7b4c) - cmake: make `libssh2-config` work with all TLS-backends (96d7f404 #1534 #1525 #1460 #1322 follow: 82b09f9b follow: d9c2e550) - cmake: tidy up string append and list prepend syntax (d033c1ea #1533 #1524) - cmake: split integration tests into steps (7d5a4c76 #1529) - cmake: misc improvements, add `LIBSSH2_USE_PKGCONFIG` option (a3aa6b4c #1525) - cmake: make integration tests generator-agnostic, use `GIT_SHALLOW` (1612807b #1523) - cmake: bump policy_max, add `FATAL_ERROR` for old cmake versions (717c0836 #1510) - cmake: fix cmake warnings (47258265 #1511) - cmake: tidy up `-j` make option in integration tests (389d70bf #1509) - cmake: build but do not install static lib in certain conditions (5d03b4f9 #1469 #1450) - cmake: add clang-cl support to PickyWarnings.cmake (bf9bb045 #1480) - cmake: tidy up variables names in PickyWarnings.cmake (ac00f6c4 #1478) - cmake: decorate comments in Find modules (efad5f90 #1477) - cmake/Find*: clear package version after `pkg-config` detection (d4e43c7b #1479) - cmakelint: also lint CMake `.in` files (fixup), fix a long line (69bed46a #1751) - cmakelint: also lint CMake `.in` files (9e4d307e #1751) - comp: check and avoid overflow in `comp_method_zlib_alloc()` (e8f815d3 #1924) - comp: add defensive code if src buffer is empty/null (7bcb223b #1813) - comp: use `z_const` when zlib supports it (c03eb8d3 #1555) - configure: drop remaining code dependent on `config.rpath` (8d4bd82c #2150 #2149 #1920) - configure: detect OpenSSL via a header the code actually uses (7071b768 #1994) - configure: drop redundant gcc-specific `-isystem` logic (a981d10c #1993 #1972) - configure: drop unused feature checks (a1665da6 #1989) - configure: drop old, vendored, `ld` detection code, merge and rename rest (9f4a2708 #1916 #1921 #1920) - configure: drop ancient vendored `config.rpath` (0443145a #1920 follow: 1ac7bd09 follow: 5237177d follow: e1bc0adc) - configure: drop using m4_set to simplify (bcc9292a #1921) - configure: fix `--without-lib*-prefix` when `lib*` is detected anyway (ffd0c982 #1506 #1505 #1384 follow: d19b6190) - configure: drop duplicate `-lmbedcrypto` from `LIBS` (bd8caa19 #1507) - crypt: fix length underflow on short chacha20-poly1305 packets (15257c08 #2389 GHSA-x4g5-mgfc-cxvv) - crypt: fix propagating `get_len()` error code in `ssh2_transport_read()` (12a8bda8 #2393 #2392 #1426 follow: 492bc543) - crypt: fix unused static function warnings when most crypto is disabled (a8dd5a2c #1981) - crypto: constify `ssh2_dh_validate()` args (199a4596 #2436 #2402 #2239) - crypto: rename `ssh2_dh_is_valid()` to `ssh2_dh_validate()` (fe667c60 #2406 #2402 #2239) - crypto: de-duplicate/merge most file/blob codepaths (b560cb4c #2379 #2362 #2359 #2354 #1652) - crypto: sync arg name and order with rest of code in `ssh2_ecdsa_create_key()` (c24cce92 #2273) - crypto: de-duplicate `ssh2_bn_ctx*` macro stubs into `crypto.h` (57f95150 #2272) - crypto: tidy up bignum argument names and order (4d907bec #2271) - crypto: make rsa context the 1st arg in `*_signv()` functions (34c59acb #2269) - crypto: de-dupe `*_supported_key_sign_algs()` into `userauth.c` (1410efad #2249 #2248 #1314) - crypto: sync up `ssh2_supported_key_sign_algs()` implementation nits (82ffc1b8 #2248) - crypto: de-duplicate more declarations into `crypto.h` (93096382 #2246) - crypto: tidy up names, fix compiler warnings in legacy algos (db0d1073 #2195) - crypto: unify hash macros (bef08f38 #2171 #2169 #2166 #2165 #2163) - crypto: simplify/prune single-shot hash functions and macros (b72f1441 #2166) - crypto: make the caller pass the digest buffer size (bae63c33 #2165) - crypto: unify hash context types into one (409cbad6 #2163) - crypto: `ssh2_dh_key_pair()` reject `group_order <= 0`, where missing (74ecd109 #2154 #879 follow: 5a96f494) - crypto: drop intermediate macros for `ssh2_dh_key_pair()`/`ssh2_dh_secret()` (38664f7c #2152 #1971) - crypto: ECDSA build tidy ups (b171deef #2077) - crypto: drop intermediate macros where possible (c75c7a8b #1971 #860 #1961 follow: ec0a51db) - crypto, openssl: drop 4 unused private global functions (b4b005f2 #2260 #698 follow: ed439a29) - DEPENDENCIES.md: require LibreSSL 3.7.0+ and wolfSSL 5.4.0+ (e4834d10 #2073 #2008) - DEPENDENCIES.md: recommend wolfSSL/LibreSSL versions with AES-GCM support (16ef3a27 #2008 #1919 #1918 #1893 #1797 #1718 #1699 #1625 #1550 #1549) - DEPENDENCIES.md: set/bump and document minimum versions (772abc7a #1919 #1893) - docker-bridge.ps1: update AppVeyor CI external IP detection endpoint (c2bae821 #2010 #1947) - docker-bridge.sh: use long-form option, show failure, fail on error (528b0d6d) - Dockerfile: bump debian from trixie-20260623-slim to trixie-20260713-slim (67654c8f #2476) - Dockerfile: bump to debian:trixie-20260623-slim (e75b4bae #2124) - Dockerfile: bump to debian:trixie-20260610-slim (5b91afb2 #2115) - Dockerfile: bump to debian:trixie-20260518-slim (01f101b5 #1962) - Dockerfile: bump to debian:trixie-20260518-slim (aee0b403) - Dockerfile: bump to debian:trixie-20260505-slim (587698cb #1926) - Dockerfile: pin Debian trixie image, enable Dependabot (d2230944 #1724) - Dockerfile: switch to Debian stable (f89406b5 #1595 #1594 #1591) - docs: add missing man page for `libssh2_channel_signal()` (44a66e8f #1966 #991 #672 follow: a4544c01) - docs: move return type inline with the declarations (e85ce25b #1960 #1935) - docs: replace underscore with dash in `INSTALL*.md` filenames (34a292f9 #1876 #1724 #1713 #1617 #1599 #1508) - docs: markdownify (3a895e77 #1875) - docs: convert man page sources to "curldown" format (b889b399 #1660) - docs: improve man page for `libssh2_channel_request_auth_agent` (30203f16 #1503) - example: drop two local macros, merge/simplify header guards (d96bea71 #2498) - example: assume `unistd.h` header on non-Windows (9525a6b0 #2492) - example: drop `HAVE_GETTIMEOFDAY` macro use, fill it in for MSVC (04665fed #2491) - example: check `write()` and `fgets()` results to silence `-Wunused-result` (7f5d5f3c #2122) - example: re-add `sys/time.h` where necessary (d8b219ba #1863 #1792 #1001 follow: e53aae0e) - example/ssh2: replace GCC silencer pragma with a simpler workaround (165a9c3b #2100) - example/x11: rename variable to fix `-Wc++-keyword` (5d8daffa) - example/x11: support custom port (70f02083 #1890) - example/x11: handle `libssh2_channel_write()` errors more (94a018b0 #1889) - example/x11: fix memory leak on an error branch (d0d88123) - example/x11: handle `libssh2_session_init()` error (dd5a54b7) - example/x11: more fixes (8d72d553 #1888) - example/x11: add missing newlines to `fprintf()` strings (b05fa6c5) - example/x11: more fixes and tidy ups (4117824e #1887) - example/x11: fix messages, buffer sizes, error handling (5b734389 #1886 follow: 32080def) - example/x11: fix/simplify node removal (8eaef7c7 #1867 follow: 32080def) - example/x11: free session/cleanup (bb3c6bbf #1762) - GHA: bump GitHub Actions (23483587 #2477) - GHA: bump codespell from 2.4.2 to 2.4.3 (fdbd6ffc #2475) - GHA: set `HOMEBREW_NO_INSTALL_CLEANUP=1` (6097d16b #2462) - GHA: add tests with legacy options enabled (29af30a9 #2439 #1531) - GHA: MSYS2 mingw-w64 UWP build fixes (6d90edf5 #2315) - GHA: try enabling trace output to debug FreeBSD flaky fails (13dcd170 #2227 #2215 #1948) - GHA: fix and re-enable Libgcrypt tests (8be57164 #2174 #26 #2049 #1720) - GHA: bump GitHub Actions (be7e756b #2167) - GHA: replace OpenSSL 1.1 with 4.0 in macOS jobs (701e1f69 #2123) - GHA: bump BSD action, versions and other tidy-ups (b7f4e55c #2120) - GHA: finalize VS2026 runner image name (34a3bb87 #2119 #1996 #1972) - GHA: bump dependencies built from source (2e38c394 #2116) - GHA: disable `VCPKG_APPLOCAL_DEPS` to avoid flaky CI failures (30a0484c #2114 #2101 #2078) - GHA: set `VCPKG_DISABLE_METRICS` for MSVC jobs (de0cf8ee) - GHA: fix debug logging for OpenSSL-3-no-deprecated job (bc77633d #2092 #2083) - GHA: fix enabling trace for the OpenSSL-3-no-deprecated job (a69fb2a4 #2092 #2083) - GHA: enable connect trace for OpenSSL3-no-deprecated job (8e4c14b0 #2083) - GHA: bump runner to ubuntu-26.04 in most jobs, clang-tidy to v22 (fbe71bc6 #2078) - GHA: work around `actionlint` unaware of ubuntu-26.04 runner (0ba2b014) - GHA: delete 3rd-party apt sources, where missing (f09854fa #2076) - GHA: do `apt-get update` before `install` (0a4f8920 #2075 #2074 #1187 follow: 00a3b88c) - GHA: drop Azure Ubuntu mirror, instead of deprioritizing (74da590d #2074) - GHA: bump Cygwin Action and adjust version number (24a222f6 #2043) - GHA: remove concurrency configuration from workflow (90497ad7) - GHA: make macOS build step verbose with cmake (660d9a36) - GHA: bump 4 GitHub Actions (bf5fa5b8 #1963) - GHA: bump OpenBSD from v7.7 to v7.8 (8bceba2d #1950) - GHA: merge BSD into a single matrix, add MidnightBSD, bump and extend FreeBSD (e4f700e9 #1948) - GHA: use shorthand 'AM', 'CM' in job names (06d2b995 #1930) - GHA: bump actions (4e1e02ae #1922) - GHA: alpha-sort Linux matrix jobs (100c0ea2 #1914) - GHA: deprioritize Azure Ubuntu mirror (f477a0b5 #1868) - GHA: delete all apt sources except `ubuntu.sources` (f231ef18) - GHA: minimize Windows cross-build apt-get packages (bd4ddc07) - GHA: bump cross-platform-actions to 1.0.0 (05f804d0 #1862) - GHA: shorten timeouts (8dc6463b #1837) - GHA: bump and pin to hash dependency source tarballs (c6a5c0e8 #1833) - GHA: bump and pin to hash old CMake binaries (c05bf778 #1832) - GHA: bump actions (935617b6 #1827) - GHA: update `codespell` from 2.4.1 to 2.4.2 (3cbda95a #1826) - GHA: fix Cygwin version tag validation error (0615e37a #1805) - GHA: bump actions/checkout from 6.0.1 to 6.0.2 (bf0a4fd0 #1796) - GHA: install gettext on freebsd so CI tests pass (22500946 #1795) - GHA: silence fresh zizmor 1.21.0 warnings (cb252b59 #1791) - GHA: drop FreeBSD arm64 job, it is broken upstream (fb6fcaa2 #1790) - GHA: delete disable-man-db hack, runners doing it by default now (882bd264 #1779) - GHA: bump Actions (eeaf29ba #1776) - GHA: bump pip reuse and 2 GitHub Actions (dd2b04f2 #1756 #1755) - GHA: minor command sync with the curl repo (2b7f8298) - GHA: move config log dumps to their separate steps (78ffc2d4 #1749) - GHA: fix using mbedtls@3 in macOS jobs (c124c6a9 #1748 #1744) - GHA: switch macOS jobs to versioned mbedtls@3 brew package (b098a3c4 #1744) - GHA: add actionlint job, fix reported issues (f61703cc #1740) - GHA: run fuzzer on master commits, bump upload-artifacts (455f0622 #1736) - GHA: replace deprecated `set-output` command with `$GITHUB_OUTPUT` (d4ebb524 #1735) - GHA: set concurrency, zizmor Dependabot, set cooldown (da6dec93 #1734) - GHA: drop `HOMEBREW_NO_AUTO_UPDATE=1` (8dd9da32 #1678) - GHA: bump crypto lib dependencies (7c92792f #1728) - GHA: bump components (45d52d16 #1726 #1725) - GHA: stop running tests with Libgcrypt (51f6259d #1720 #1723 #1721 #1718 #1644) - GHA: bump reuse from 5.1.1 to 6.1.2 (9abb4e78 #1716) - GHA: bump github/codeql-action from 3.30.5 to 4.30.7 (aa334c77 #1715) - GHA: show full versions next to pinned actions (f29de587 #1695) - GHA: pass zizmor a GH token, fix warnings found (ab7dd899 #1694) - GHA: bump actions (af2de52f #1693 #1692) - GHA: use `--enable-option-checking=fatal`, fix fallout (a7b3fdb4 #1689 #1685) - GHA: sync MSVC job names with others (31f23ac0) - GHA: fix Linux autotools jobs to honor their zlib settings (1f79b005 #1685) - GHA: merge cmake/autotools steps, other misc updates (9ce9909d #1684) - GHA: bump github/codeql-action and actions/cache (08f5df3c #1682 #1681) - GHA: enable Dependabot pip updates (cd37b704 #1680) - GHA: drop spaces from `requirements.txt` (e9905622) - GHA: use `reuse` linter tool directly, merge linters into a single workflow (ec5ba062 #1678) - GHA: pin codespell, use venv (d4142923 #1676) - GHA: merge Linux CodeQL jobs into one (a30ea29b #1666 #1657) - GHA: disable `trap-caching` in CodeQL (b200b656) - GHA: fixup comments after actions bump (3389a125) - GHA: bump actions/checkout from 4.2.2 to 5.0.0 (765c102f #1665) - GHA: rename GHA CodeQL configuration (629904e4 #1655) - GHA: test WinCNG with CodeQL (746de2ad #1659) - GHA: extend CodeQL to libgcrypt, mbedTLS, wolfSSL, zlib builds (63ae236f #1657) - GHA: add CodeQL jobs for GHA and C (1ec4e27f #1655) - GHA: document permissions as required by zizmor 1.13.0 (4cb8398f #1653) - GHA: bump actions (a0dafb31 #1651 #1650 #1649) - GHA: enable Dependabot to bump GitHub Actions (60c528be) - GHA: stay on windows-2022 runners (2fcba30a #1645) - GHA: bumps, delete two jobs with fallouts (0ec6b3e8 #1642) - GHA: allow more time for 'CM integration' job (dfe7aca9) - GHA: move CI checks to Linux, other CI tweaks (e62a72b2 #1618) - GHA: fix new zizmor warnings (339ea0f6 #1614) - GHA: fix zizmor and shellcheck warnings, verify in CI (d7cf63bb #1609) - GHA: avoid touching `GITHUB_ENV` (201c368a #1598) - GHA: use more Ninja (09c948c9 #1585) - GHA: skip updating man-db for faster installs (Ubuntu) (01b8d356 #1584) - GHA: move Cygwin to drive `D:` for install speed (1323e17b #1567) - GHA: add clang-tidy jobs for Linux and Windows (fb7ea5d7 #1566) - GHA: sync linux-mingw workflow with curl (15752e5f) - GHA: add CI test for AWS-LC (d32ab162 #1557) - GHA: limit `ENABLE_ECDSA_WINCNG` option to WinCNG (5f51c7a2 #1368 follow: 3f98bfb0) - GHA: bump BoringSSL (6443b2f9 #1530) - GHA: general maintenance, security, add LibreSSL and old OpenSSL jobs with tests (008e82c0 #1528) - GHA: fix Cygwin breakage in `mansyntax.sh` (d65c4b39 #1521) - GHA: bump to cygwin v5 (bc781383 #1512) - GHA: make `apt-get install` faster, drop a workaround (d01680ca #1476) - GHA: adjust job for Ubuntu 24.04 image (9d6836e0 #1470) - GHA/appveyor_docker: silence zizmor with settings allowing concurrency (59a554e6 #2002 #1292 follow: b08cfbc9) - GHA/appveyor-status: disable `gh` tool telemetry (818660ca #1871) - GHA/cifuzz: pin oss-fuzz actions to hash (93dc28a4) - GHA/codeql: limit cron job to the origin repository (1045cfd0 #1741) - GHA/dependabot: group updates, other tidy-ups (26a78929) - GHA/dependabot: minor fixes to prev (6c6ea30d #1724) - GHA/dependabot: fix Dockerfile path (d1ba043d #1724) - GHA/dependabot: fix pip directory (5dd317fa) - github: add LLM/AI usage warning to PR and bug report templates (80bfa8a2 #2048) - gitignore: compress rules (90a686ef) - HACKING-CRYPTO: move from docs to src, markdownify, update (db065d25 #2268) - hash: drop interim macros, sync up types (52f9c3e6 #2242 #2241) - hash: pass through context as-is in `ssh2_hash_*()` macros (81e6f8ff #2241) - hmac: add generic `ssh2_hmac_init()`, use it (c34888e6 #2244) - hostkey: replace `strncmp()` with `SSH2_IS_LITERAL()` to harden checks (58a3e88c #2429) - hostkey: sanitize public API arguments, fix a return value on error (504e07e9 #2351) - hostkey: sync `hostkey_method_ssh_ecdsa_initPEM()` with siblings (tidy up) (775ecf7f #2238) - hostkey: fix indent after prev (9abc260f #2237) - hostkey: drop interim `ret` variables (90e9306b #2237) - hostkey: fix previous patch to `hostkey_method_ssh_dss_signv()` (85334c92 #2236 #2233) - hostkey: fix error handling issues in `hostkey_method_ssh_dss_signv()` (2ae297bd #2233 #2232) - hostkey: fix ed25519-cert host key initialization (65a276e8 #2064) - hostkey: reject zero-length inner signatures (d328895f #2030 #2019) - hostkey: reorder methods to match OpenSSH (b8b1d16d #1831) - hostkey: prefer ED25519 over ECDSA in hostkey algorithm negotiation (0cb83514 #1783 #1782) - hostkey, kex: factor out hash helper macros and dispatchers (f2b41605 #2184 #2171) - hostkey, userauth: merge from-filename, from-memory codepaths (5b94157f #2354) - include: delete conditional `sys/uio.h` include (e462f207 #2470 follow: 6bf89833 follow: c070bdac) - include: exclude two misspelled macros with `LIBSSH2_NO_DEPRECATED` (f69dc3f8 #1987 #1977 follow: 4b8db8c1) - include: add deprecated attributes where missing, related doc updates (2b2664bf #1977 follow: 2b8038e1 follow: 6875285b follow: 8eba2961) - include: move return type inline with the declarations, where missing (f0279a69 #1964 #1960 #1935) - INSTALL-CMAKE: update minimum version and links, drop old cmake instructions (fd43ce89 #1873 #1839) - INSTALL-CMAKE: fixes build result directories (98cd10d1 #1617) - keepalive: verify if `session` is non-NULL (4c8ff933 #2345) - kex: disable SHA1-based methods by default (99f93535 #2443) - kex: replace magic number and `strlen()` with `sizeof()` (88c5fd98 #2400) - kex: fix misleading error codes returned by `ssh2_kex_exchange()` (b956943b #2399) - kex: fix indent in previous commit (6fe98ab5) - kex: fail early on NULL session in `libssh2_session_supported_algs()` (4cb5a711 #2346) - kex: merge two `*_curve_type()` local functions (8561585d #2274 #1644) - kex: de-dupe and move hash context declarations to `kex_diffie_hellman_sha()` (3b5d909d #2240) - kex: fix some error message strings (64906bb6 #2234) - kex: de-duplicate hash calculations in `kex_mlkem_nistp()` and `kex_ecdh_sha2_nistp()` (563ab4e6 #2228 #2187 #2184 #2171) - kex: fix `shared_secret` memleak on `EAGAIN` (75c5c856 #2218 #1644) - kex: NULL check `data` in `kex_mlkem768x25519_sha256()` to match siblings (f6ddce0d #2215 #1644) - kex: fix mismatched ECDSA private key free in ML-KEM cleanup (8c744ad0 #2200 #1644) - kex: fix to zero the full ML-KEM keys on cleanup (ae6697a8 #2192 #1644) - kex: propagate errors from `kex_method_ec_sha_hash_create_verify()` (04089b03 #2188 #2186 #2184) - kex: hash type overhaul, use `ssh2_hash_alg` (b0e1b08d #2187 #2171) - kex: merge EC and EC+PQ create/verify hash functions (7fd8b99f #2186 #2184) - kex: verify `ssh2_dh_secret()` success (926203ef #2153) - kex: add error strings and error codes to some failure branches (ea24601c #2058) - kex: check for lang_cs and lang_sc values #2016 (4d60ec37 #2044 #2016) - kex: fix typos in symbol names, comment nits (809a37b0 #1927) - kex: clarify buffer size using exact length (fdcbe4e3 #1787) - kex: fix 3 error messages (b07fef59 #1852) - kex: mlkem_nistp(): fix returning error on hash calculation failures (24615d62 #1846 #1644) - kex: do not assume buffer ends with trailing zero (d3421aef #1788) - kex: missing `free()` when random data cannot be generated (ae0a2316 #1780) - kex: fix NULL dereference of kex->exchange_keys during key exchange. (631e2f82 #1763) - kex: remove unused kex state variable `exchange_hash` (c3d8976c #1713) - kex: fix DH-GEX-sha256 bignum initialization (30befffe #1599 follow: 09c5e599) - kex: fix possible null pointer dereference in diffie_hellman_sha_algo() (1ac1ff44 #1508) - kex: return error if user KEX methods are invalid #1553 (4beed724 #1554 #1553) - kex, packet: validate DH prime range and server extensions count (fe907ca4 #1825) - keys-generate.sh: group signed keys, drop newlines (e0595be5) - keys-generate.sh: allow overriding the username (4dad9717) - keys-generate.sh: create directories if missing (cdf94b8b) - knownhost: stop determining `keylen` if passed as zero in `libssh2_knownhost_add*()` (7b18532c #2364 #2363 #1641 follow: 4b991b23) - knownhost: fix OOB reads in `knownhost_line_hashed()`/`knownhost_add()` (102e4448 #2363) - knownhost: fix off-by-one read in `libssh2_knownhost_readline()` (fed2d6e0 #2350) - knownhost: fix potential off-by-one read in `libssh2_knownhost_readline()` (b758dc29 #2335 #2053 #2012) - knownhost: fix off-by-one reads in `knownhost_add()` (8b278e64 #2334 #2333) - knownhost: extend public API arguments checks (580f7ad6 #2333) - knownhost: fix hmac context memleaks on error paths (c44e081d #2245 #2244) - knownhost: Modify null-termination check for host key line (bf33b943 #2053 #2012) - knownhost: fix memleaks on error paths in `knownhost_add()` type SHA1 (c6f897b7 #2025 #1957) - knownhost: fix for short hostnames (704299e9 #1500) - knownhost: improve known_hosts parsing and harden _libssh2_base64_encode() (d1c0e14d #1641) - knownhost: handle malformed comments in known_hosts parsing #1628 (aa4c7b5b #1629 #1628) - libgcrypt: reuse hash/hmac final code (88726a72 #2253 #2250) - libgcrypt: merge up a local single-caller function (d7edc91f #2251 #2244) - libgcrypt: check for more errors in `ssh2_hash_final()`/`ssh_hmac_final()` (eb1a3ee3 #2250) - libgcrypt: improve `ssh2_md5_final()` (b5784093 #2172 #2171) - libgcrypt: de-duplicate hmac init into worker function (2d57682f #2164) - libgcrypt: silence false positive `-Wconditional-uninitialized` (ea224dd0) - libgcrypt: fix private macro namespace, shorten (998c054d #1986) - libgcrypt: bump weak random to strong in `_libssh2_dh_key_pair()` (776be9f9 #1929 #149 follow: f7daf318) - libgcrypt: add support for RSA SHA-256/SHA-512 (f4642222 #1600) - libgcrypt, mbedtls, openssl: validate DH public value (fcf83078 #2239 GHSA-m9rg-h9jv-9gvh) - libssh2_base64_decode: add deprecation warning (cf3aac1a) - libssh2_poll: add deprecated attribute, drop from no-deprecated builds (94d4a2d1 #1838 #1266 follow: 2b8038e1 follow: b1414503) - libssh2_poll_channel_read: improve documentation on return values (9ece2b2b #1983 #1977) - libssh2_scp_recv2: fix stat struct type in man page prototype (91f3a05d #2508 follow: 6c84a426) - libssh2_scp_send, libssh2_scp_send_ex: add deprecation warning (70276045) - libssh2_sign_sk: add `LIBSSH2_API` attribute, document availability (e0635ab4 #1965 #698 follow: ed439a29) - libssh2_trace.3: Update prototype (7495084b #1518 #1517) - libssh2.h: bump `LIBSSH2_VERSION_PATCH` to match version string (5c1f36c6 #2219 follow: c04d57e7) - libssh2.h: merge two `#if` branches (cbdb0a8c #1869 #1793 #1578) - libssh2.h: _WINDLL being defined does not mean libssh2 was built as a DLL (35326015 #1793 #1578) - libssh2.h: drop stray bits of Windows CE support (1d464325 #1770) - libssh2.h: typo fixes (780bf13a #1496) - libssh2.h: add note about release versions to `LIBSSH2_VERSION` (83590ac7 #1475 #771 #1473) - mac: disable SHA1-based MACs by default (3e14d67d #2444 #2443) - mac: fix `mac_method_none_init()` to set `free_key` #1951 (91b0d464 #1952 #1951) - man: document availability of `libssh2_publickey_*` functions (dabe1e36 #2139) - mansyntax.sh: revert a change to unhide `man` error output (c343f06b #982) - mbedtls: add support for AES-GCM ciphers (d5ba5bc7 #2505 #1764 #2401) - mbedtls: fix double-free in `mbed_pub_priv_key()` error path (6c639b18 #2502 #2501 #132 follow: 186f1a2d) - mbedtls: avoid magic numbers (a35c6d27 #2375) - mbedtls: fix 3DES detection (fe57c2dc #2286 #2277 follow: f1d60b1f) - mbedtls: drop no-op checks from `mbed_mpi_write_binary()` (346a317d #2278 #385 follow: 5528f3da) - mbedtls: drop unused Blowfish, RC4, make 3DES conditional (b684520b #2277 #1727) - mbedtls: pass null-terminator in `ssh2_ecdsa_new_private()` for PEM-formatted keys (bce5593c #2275 #1878) - mbedtls: sync null-terminate data variable names, reflow (e3135eda #2213) - mbedtls: fix mismatched alloc/free, leaks, leaks on OOM, missing null-terminator (f7fa81ca #2196 #2195) - mbedtls: drop interim result variables (tidy-up) (6dc44da8 #2156) - mbedtls: switch to PSA Crypto API for hash/digests and drbg (e3905e55 #2132) - mbedtls: use enum types to fix `-Wimplicit-int-enum-cast` (b9845510) - mbedtls: drop redundant check for version 3+ (1a3fca66 #2009 #1822 #1727) - mbedtls: make `*ecdsa_curve_type_from_name()` function static (35f420bd #1967) - mbedtls: stop using `mbedtls_pk_load_file()` (b101ce0a #1878 #1421 #1393 #1349 follow: 1628f6ca follow: 2e4c5ec4 follow: e973493f) - mbedtls: fix returning pointers to stack memory (5a54b7c9 #1820) - mbedtls: require 3.1.0 (2.x no longer supported upstream) (f63f68b3 #1727) - mbedtls: fix missing rsa_init when loading key from memory (7419595a #1822) - mbedtls: fix AES-CBC backend: avoid BAD_INPUT_DATA during cipher_finish() in SSH handshake (26f57efd #1758 #793) - mbedtls: fix using garbage value (reported by clang-tidy) (16ce0ec8 #1729 #132 follow: 186f1a2d) - mbedtls: Bug fix for gen_publickey_from_rsa (6746b789 #1560) - mbedtls, openssl: dedupe key type literals into static const strings (cd04e2ee #2405) - mbedtls, openssl: make `ssh2_hmac_update()` a macro wrapper (c177d6c3 #2254) - mbedtls, openssl: verify success of low-level DH operations (d837d563 #2155) - mbedtls, wincng: make var names consistent, drop magic numbers (4d4f15ba #2376) - mbedtls, wincng: rename `*_safe_free()` to `*_zero_free()` (d152c13e #2208) - misc: fall back to POSIX `gettimeofday()` unconditionally on non-Windows (0d998d16 #2494) - misc: drop `ssh2_gettimeofday()`, no longer used (694d38e3 #2493 #2490) - misc: replace `gettimeofday()` with `ssh2_now()` in `ssh2_deb_low()` (a43dc6d5 #2490 #2489) - misc: use `SecureZeroMemory2()` if available (Windows) (566c9f2c #2451) - misc: make `ssh2_copy_string()` add a null-terminator (f4ae1d5a #2430 #2429) - misc: optimize out an `strlen()` call in `ssh2_match_string()` (f5856811 #2425 #2424) - misc: add non-unsigned char variant for `ssh2_get_string()` (907fe84f #2424 #2422 #2420) - misc: make `ssh2_snprintf()` use safe CRT functions and make it `snprintf()`-compatible (cde2f393 #2322 #812 #2105 follow: 4cdf785c follow: 6bf89833) - misc: drop `ssh2_fopen()` macro redirect on Windows (a8870f08 #2329 #2318) - misc: fix NULL `session` derefs in `ssh2_deb()` (a6f5cc77 #2282 #2283) - misc: null-terminate `ssh2_snprintf()` output in pre-VS2015 builds (66383004 #2105 #812 follow: 4cdf785c follow: 6bf89833) - misc: clarify C syntax in `ssh2_store_bignum_bytes()` (3c2dc8f2 #2068 #698 follow: ed439a29) - misc: assume POSIX `EWOULDBLOCK` macro is defined (f3ff0584 #2065 #172 #171 follow: 92f76866 follow: c511177d) - misc: rename socket error variables to `sockerr` (d7698703 #2062) - misc: fix small leak in base64_encode() with empty data #1627 (cea8783e #1630 #1627) - misc: _libssh2_base64_decode() handle malformed data (8cad398b #1551) - openssh_fixture: fix `ssh2_snprintf()` result check (38caa44a #2157 #489 follow: ac13b70a) - openssh_fixture: trim all right-padding whitespace from external command results (879aac02 #2142 follow: cf80f2f4) - openssh_fixture: increase `/proc/self/cgroup` read buffer (revert) (540f248c) - openssh_fixture: increase `/proc/self/cgroup` read buffer (826c9f09 #1688) - openssl: fix compiler warning with AWS-LC/BoringSSL with debug logging enabled (33a1df30 #2503) - openssl: sync patterns between functions (tidy-up) (9a376a86 #2442 #2308 #2029 #1644) - openssl: fix potential OOB read/write with AES-GCM in `ssh2_cipher_crypt()` (a2ed82d4 #2401 GHSA-c4f7-cvfc-33j7 #797 follow: 3c953c05) - openssl: replace `ossl_*_openssh_priv_new()` functions with `ossl_key_from_openssh()` (ac9a71a7 #2396 #2394 #2379) - openssl: merge `ossl_key_from_openssh_*()` file/blob functions (3bb068e4 #2394 #2388 #2379 #2354) - openssl: fix importing DSA private keys from blob (e295f4ff #2395 #248 #2394 follow: 03092292) - openssl: avoid more magic numbers (22b9472b #2374) - openssl: sync more patterns, avoid magic numbers (fe12685f #2372) - openssl: sync variable names and patterns in two ed25519 functions (93008915 #2371) - openssl: fix memleaks on keyfile/blob parse failure (95375dc0 #2355 #2353) - openssl: fix `key_type` check in `ossl_key_from_openssh_blob()` (8460d440 #2352 #698 #248 follow: 03092292 follow: ed439a29) - openssl: fix NULL derefs on OOM (698ff902 #2339) - openssl: match alloc size when zeroing ECDSA `group_name` (tidy up) (3b43169d #2298) - openssl: drop no-op check and code in `ssh2_ed25519_new_public()` (3b74878f #2297) - openssl: drop two always-true checks (fe807f9b #2296) - openssl: check `EVP_PKEY_CTX_new_id()` result in `ssh2_rsa_new()`/`ssh2_dsa_new()` (9e26c685 #2295) - openssl: fix leaking `key` buffer on error in `ossl_ecdsa_sk_openssh_priv_to_pubkey()` (4b931c43 #2293 #698 follow: ed439a29) - openssl: fix NULL derefs on OOM in `ossl_e*_sk_openssh_priv_to_pubkey()` (7e2d7753 #2292 #698 follow: ed439a29) - openssl: drop no-op code from `ssh2_sk_pub_keyfilememory()` (08bee363 #2281 #698 follow: ed439a29) - openssl: add debug traces to ML-KEM ed25519 KEX codepath (ca0e2dcf #2259 #2092 #2083 #1644) - openssl: map `ssh2_hash_update()` to OpenSSL API directly (d2395d9b #2183) - openssl: omit `ssh2_init_if_needed()` calls when a no-op (6450c760 #2176 #1668 #1310 follow: 76e7a68a) - openssl: pass actual mac buffer size to `EVP_MAC_final()` (41a08c5d #2136 #2132) - openssl: check update/final success in `ssh2_ossl_hash()` (d70c148c #2135 #2134) - openssl: de-duplicate low-level hash functions (4864dae6 #2134) - openssl: fix server host key memleak on handshake failure (34b45a08 #2082 #2080) - openssl: fix leaking ECDSA bignum buffer in non-OpenSSL3 builds (e4d056ea #2081 #2079) - openssl: stop setting `OPENSSL_SUPPRESS_DEPRECATED` (bd340b5e #1244 #1243 #1236 #1207 follow: 363dcbf4 follow: 487152f4 follow: 82581941 follow: b0ab005f) - openssl: fix `-Wimplicit-int-enum-cast` in wolfSSL builds (ee3b7a8b) - openssl: simplify debug-logging comment field in `ed25519_openssh_priv_to_pubkey()` (a21dd31f #2033) - openssl: free the correct pointers in `ecdsa_sk_openssh_priv_to_pubkey()` (b8e471c8 #2027 #698 follow: ed439a29) - openssl: set public key buffer length correctly in `ssh2_mlkem_new()` (41389f8f #2029) - openssl: rename `ossl_ed25519_openssh_sk_priv_to_pubkey()` (11294d65 #2015 #2003) - openssl: fix conditions for enabling AES-GCM support (3490c07b #2007 #1668) - openssl: drop support for non-opaque structures (5b7ac811 #2006 #1919 #1668) - openssl: drop redundant `{}`, merge nested `if`s where possible (28824712 #2004) - openssl: reflow a function definition to fix indentation (dc6e1541 #2001) - openssl: refactor static function names, move to `ossl_` namespace (794dbd00 #2003) - openssl: move worker functions to the `ossl_` namespace (c347d5f5 #2001) - openssl: fix `EVP_PKEY_CTX` leak in `ssh2_dsa_new()` with OpenSSL 3 (1f95cd64 #1999) - openssl: avoid function pointer typedefs and casts (4a3b0b23 #1991 #1972 #1484 #1207 follow: 231a97a9 follow: b0ab005f) - openssl: fix ECDSA sign allocator mismatch (3186a1a7 #1829 #292 #1828) - openssl: fix incorrect frees on errors #1802 (2b71623a #1803 #1802) - openssl: drop support for OpenSSL <1.1.1, LibreSSL <2.7 (2018-03-21) (cea796fc #1668) - openssl: fix to build with wolfSSL without AES-CTR (4fbd5923) - openssl: make it compatible with wolfSSL built without `OPENSSL_ALL` (2da28146) - openssl, os400qc3: minor hash macro tidy-ups (3d70da1c #2168) - os400: move return type inline, clang-format (065794dc #1968 #1964 #1960 #1938 #1936 #1935 #1898) - os400qc3: validate DH public value (d0ca946d #2402 GHSA-m9rg-h9jv-9gvh #2239) - os400qc3: fix `data` memleak on success in `try_pem_load()` (116fe644 #2391 #2388) - os400qc3: fix macro syntax regression (8c80319a #2086) - os400qc3: fixup `ssh2_os400qc3_hash_final()` declaration (ba01f80b #2168 #2165) - os400qc3: replace typedef structs with direct struct types (35aa0b2c #1910) - os400qc3: misc fixes (8e2cc23e #1901 #1746) - os400qc3: open PEM files in binary mode (915ea44f #1884 #1883) - os400qc3, wincng: replace more `unsigned long/int` with `size_t`/`uint32_t` (48933ba2 #2270) - os400qc3.h: fix formatting typo (3b5eada9 #1936) - ossfuzz: replace assert() with goto in ssh2_client_fuzzer (e7e0383b #1823) - ossfuzz: fix picky compiler warnings, make it pass `checksrc` (96cbe618 #1526 #901 follow: 50124428) - ossfuzz.sh: disable build options unnecessary for fuzzing (6857c88c #2447) - packet: fix memleak on receiving multiple `exit-signal` packets (0a17ea04 #2504 GHSA-53q9-wmqr-fh7c follow: 6140ec2d) - packet: fix use-after-free of ignored extended data on eagain (bf7fa4c1 #2450) - packet: use `SSH2_IS_LITERAL()` macro (eaf7c1a0 #2433 #2429) - packet: make `ssh2_packet_askv()` static (00871543 #2419) - packet: fix bounds checks (06e5f49f #1906 #1895) - packet: fix packet bounds check in `packet_authagent_open()` (456b9b94 #1895) - packet: check `_libssh2_get_string()` return in `EXT_INFO` handler (17626857 #1864) - packet: check exit_signal allocation before memcpy (47a49a5c #1861) - packet: improve bounds checking in exit-signal sig name handling (590cdfe7 #1859) - packet: honor buffer length when passing to `_libssh2_debug()` (8c22b959 #1786) - packet: Fix possible heap overflow in SSH_MSG_CHANNEL_REQUEST #1815 (83072b0e #1816 #1815) - packet: create null-terminated string for shost in packet_queue_listener() (f66dfc4a #1761) - packet: move size check to before size manipulation (a93359ad #1704) - packet: authagent_open: fix failure packet length (31ec5a8b #1701) - packet: fix type mismatch in "reason code" (13a71451 #1706) - packet, sftp: replace `strlen()` on literals with `sizeof()` (2eeae1e0 #2432 #752 #2400 #2224 #1179 follow: 88a960a8 follow: bc4e619e) - packet.h: delete two orphan function prototypes (db8e79fa #2267) - pem: reduce static scope, use more `sizeof()` (89fa7a94 #2441) - pem: fix to exactly match the legacy PEM crypt annotation header (e3a428b8 #2440 #2438 follow: 386e0122) - pem: de-duplicate two identical curve type conversions functions (5cee2004 #2427 #2421) - pem: avoid a pointer cast in `pem_parse_data_openssh()` (tidy-up) (a7d05f95 #2422 #248 #2361 follow: 03092292) - pem: null-terminate decrypted OpenSSH key buffer to fix OOB read (0fcb6625 #2403) - pem: merge file/blob codepaths (7bf902e5 #2388 #2379 #2362 #2359 #2354) - pem: fix `ssh2_pem_parse_blob()` memleak in no-MD5 builds (3b84c15c #2390 #2388) - pem: sync blob argument names with rest of code (88025fcf #2387) - pem: Fix incorrect line clearing (d78905f6 #2137 #2130 #1746) - pem: drop comparing unsigned integer with a negative range (7db62449 #2063) - pem: fix `readline_memory()` to detect end of input, not skip chars (8e8e3fc6 #2032 #2013 #1746) - pem: Add additional bounds checks to read_asn1_length #2011 (5efc68df #2028 #2011) - pem: drop `ssh2_` prefix from static function (75e47814 #1979) - pem: `_libssh2_pem_parse()` extend error handling, limit size to 1 MiB (a173bd93 #1880 #1878) - pem: replace literal with `SEEK_SET` (5fe64212 #1847 #1746) - pem: drop unnecessary `wincng.h` include (734ec12c #1834 #1746) - pem: fix formatting, C++ comment (51a14ae2 #1746) - pem: add passphrase support to _libssh2_pem_parse_memory (141b0356 #1746 #1047) - pem: add validation for data length and padding (00b17231 #1797) - pem: fix possible double free if key in error cases (2fb5803c #1550 #1549) - pem, test_hostkey: replace `strlen()` on literals with `sizeof()` (7bbf17a5 #2438 #2432) - pem, wincng: fix checking for OpenSSH PEM magic string (56c12e9d #2022 #248 #2014 #1315 follow: 03092292 follow: 3e723437) - publickey: fix `attr` memleak on error in `libssh2_publickey_list_fetch()` (c2f1a3a2 #2380 #2368) - publickey: honor key type length in traces (865c86a8 #2386) - publickey: fix potential heap OOB reads in `publickey_init()` (edec1cce #2197 #2147) - publickey: sanitize public API input arguments (d47298d5 #2340) - publickey: replace magic numbers with `sizeof()` (56c9bb67 #2225) - publickey: cap variable-length packet element sizes (7c8a170c #2207 #2205) - publickey: rework bounds checks to avoid pointer comparisons (a0334dbe #2205 #2204 #2203) - publickey: flatten bounds check `if` blocks (tidy-up) (3b8d6dd2 #2203) - publickey: fix potential OOB read (e3fba528 GHSA-w8q5-9hq2-h9pr #2203 follow: c02d9b7b) - publickey: fix potential OOB read in `libssh2_publickey_list_fetch()` (a13bb6c7 #2202 GHSA-w6g9-cpfp-22gc) - publickey: fix potential OOB read in `publickey_response_success()` (ceaa7e13 #2147 #2144) - publickey: fix leaks when `publickey_response_success()` received <8 bytes (1b3af90c #2144 #2143) - publickey: cap packet size in `publickey_packet_receive()` (c0e20202 #2143) - publickey: fix potential multiplication overflow in 32-bit `libssh2_publickey_list_fetch()` (34497525 #2128 follow: e15f5d97) - publickey: fix potential arbitrary free in `libssh2_publickey_list_fetch()` (a9758da4 #2127 follow: e15f5d97) - publickey: fix double-free by transferring ownership of receive_packet (86301ab5 #1699) - readme.vms: fix typos (cont.) (3ccef401) - readme.vms: fix typos (622dfa06) - REUSE: add copyright headers to more files, `.gitignore` updates (4f9e6e0b #1718) - scp: enable 64-bit timestamp support in `libssh2_scp_recv2()` (fe1ef985 #2460) - scp: delete two obsolete comments (b16b4e76 #2459 follow: 7a5ffc8c follow: ca2e81eb) - scp: drain long C-response basenames past fixed buffer (aa54fdd1 #2408 #1738) - scp: fix potentially dumping random memory to debug log in `scp_send()`/`scp_recv()` (f9f273b4 #2385 #2383) - scp: fix NULL dereference in path arg of send/recv (992dafbc #1625) - scripts: minor fixes and improvements (f2ec1f2f #2265) - scripts: move `maketgz`, `git2news.pl` from root to scripts directory (07ffced7 #1918) - scripts: fix shellcheck SC2046 warnings (f97fb271 #1739) - SECURITY.md: use GitHub PVR as the channel for security reports, drop email (505f7b2b #2413) - SECURITY.md: update with points not considered vulnerabilities (a6efe2bc #1835) - SECURITY.md: mention GitHub PVR as an option (5bd1baed #1664) - session: disable timeout when negative in `libssh2_poll()` `select` path (ac3f8fe2 #2356 #2341) - session: free kex buffers unconditionally in `libssh2_session_free()` (815aaf82 #2347 #1691) - session: sanity check public API arguments (b705010c #2346) - session: fix rare error message for `libssh2_session_callback_*()` (559a8889 #2256) - session: fix `-Wformat-overflow` with gcc-16 (ba90b86b #2098) - session: drop `alloca()` use from `libssh2_poll()` (787e9bfe #2041 follow: 209d06d6) - session: fix primary data length in `session_disconnect()` (1573b75e #2031 #2024) - session: fix heap-buffer-overflow in session_startup() (ce2a7b80 #1799 #1798) - session: null checks to quiet fuzzer (c090b696 #1556) - session_fixture: fix to skip AES-CBC/CTR tests if not supported or disabled (84cffeaf #2507) - session_fixture: re-enable algos disabled for mbedTLS, the issue is fixed now (571653ba #2446 #969 #793 #1758 follow: 7487dcf4 follow: 9ecb22da) - sftp: fix memleak on OOM in `sftp_init()` (0d275121 #2458 #2456 #1386 follow: fb652746) - sftp: reject bad readdir name counts and clear stuck dir state (092b2829 #2280 #2018) - sftp: fix to return accurate libssh2 error code (59f39e80 #2217 #791 follow: bac8d7d4 follow: fc7e79e4) - sftp: fix wrong error code passed to `ssh2_err()` (ce152755 #2216 #1386 follow: fb652746) - sftp: avoid forward declarations by reordering functions (b1431e26 #2210) - sftp: correctly size packet length when using attrs_in (21840ddf #2170) - sftp: prevent dangling pointer by nullifying data (5e477614 #2180 GHSA-px3w-7g75-hg7w) - sftp: cap readdir response size and fix window adjust overflow (e3379a5c #2133 #2017 #791) - sftp: Replace LIBSSH2_ERROR_BUFFER_TOO_SMALL with LIBSSH2_ERROR_PROTO (343e55fe #2067) - sftp: missing FREE in error condition (7dd4493b #1806) - sftp: fix sftp_symlink when getting SSH_FXP_STATUS response (4ed26f57 #1731) - sftp: update sftp_symlink to avoid out of bounds read on malformed packet #1705 (2dae3024 #1717 #1705) - sftp: downcast packet length checks #1707 (c097c681 #1714 #1707) - sftp: add input bounds checking to SFTP API (ff50682c #1679) - spacecheck: cap max lines per file, use single-quotes (3a189abe #2480) - spacecheck: update, fix new issues found (95d7a8b9 #1851) - src: disable SHA1-based hostkey methods and signatures by default, fix fallouts (079eeb85 #2501 #2444 #2443 #1435 follow: b7ab0faa) - src: add support for chacha20-poly130-encrypted OpenSSH key files (7abbac4e #2488 #2486 #1426 follow: 492bc543) - src: bump `ssh2_time_t`/`ssh2_timediff_t` resolution from milliseconds to microseconds (c97959e9 #2489 #2341) - src: de-duplicate `inttypes.h` and `sys/uio.h` includes, inline comment (7cbdcfbb #2469) - src: replace banned `strto*()` number parsing with local function (833b4851 #2456) - src: make `ssh2_xor_data()` static to WinCNG (ec12e60f #2431 #739 follow: ec0a51db) - src: fix potential OOB reads in EDCDA/ED25519 OpenSSH-formatted key parsing (262c97f7 #2421 #2426 #2420 #2403) - src: drop casts, constify (74a09eb2 #2420 #2424) - src: tidy up/fix `ssh2_base64_decode()` calls (514fe6be #2423 #2025) - src: make `ssh2_store_str()` accept void pointer to reduce casts (8c707ce1 #2416) - src: drop redundant casts (7b6dbf47 #2415) - src: add `static` to const strings and tables, where missing (a4a53cc5 #2404) - src: drop method length (8bd003b8 #2384 #2381 #2369) - src: make sure `method` buffers are null-terminated (84485961 #2381 #2369) - src: rename file/blob key import/parse functions for consistency (6a951168 #2362) - src: drop no-op or redundant casts (tidy-up) (a3430249 #2361) - src: make `method` string a signed `char *` (64790f50 #2360) - src: make internal passphrase type `const char *` to match public API (0c55ec6d #2357 #2349) - src: use abstract internal time type, bump resolution to milliseconds (9c421761 #2341 #1893 #1919 #1818 #1497) - src: make internal passphrase type consistent, where missing (17aa8b04 #2349) - src: fix handling `snprintf()` return values (3d3c7f62 #2337) - src: stop redefining system symbol `gettimeofday()` (73164d34 #2323) - src: fixup namespace for local `fopen` symbols (454e7679 #2324 #2318) - src: add Unicode, long-filename, and secure `fopen()` support (Windows) (521146a4 #2318) - src: return `LIBSSH2_ERROR_BAD_USE` when `session == NULL` (4ee56c61 #2283 #2282) - src: bump RSA/DSA parameter sizes to `size_t` (fa2ee2a8 #2266) - src: de-duplicate `ssh2_sk_pub_keyfilememory()` stubs (765d2f64 #2261 #698 follow: ed439a29) - src: drop interim macros for bignum functions, where applicable (b06cc668 #2243) - src: backtrack on NULL digest buffer support in `ssh2_hash_final()` (b1307829 #2232 #2226) - src: fix hash context leak on hash update fail (e006aa58 #2226 #2184 #2171 #1303 follow: 4718ede4) - src: add one-shot hash function `ssh2_hash()` and use it (61ea21e6 #2231) - src: cast const pointers passed to `SSH2_FREE()` with `SSH2_UNCONST()` (73256b18 #2222) - src: drop redundant casts from `ssh2_explicit_zero()` pointer args (17469453 #2214) - src: move static function names to local namespace, where missing (d255a8b6 #2211) - src: add `SSH2_SAFEFREE()` macro and use it (2e7c9a09 #2209 #2208) - src: rename and tidy up digest length macros (e4f8d1fb #2131) - src: dedupe PEM header/footer macros into `crypto.h`, and use them (fc4d0264 #2085) - src: introduce `SSH2_ERRNO()` and use it (41d86d3b #2050) - src: dedupe OpenSSH PEM macros into `crypto.h` (f1d07227 #2034 #2022) - src: fix stray `fprintf()` calls, make checksrc verify (124c68bb #1997 #796 #1556 follow: af1e591e) - src: fix `-Wreserved-macro-identifier` with clang-cl (71a3a09a #1992 #1972) - src: drop redundant parentheses (ecf39b36 #1984) - src: drop stray casts for allocator results (8ecabbcd #1970) - src: drop redundant `LIBSSH2_API` attribute from definitions (f5f434c7 #1969 #1961) - src: shorten namespace for private functions and macros (076838de #1961 #698 #1949 #1931 #1923) - src: verify `_libssh2_store_bignum2_bytes()` success (412e9df8 #1942 #1025 follow: ebf644fb) - src: formatting (cont. 2) (1db40832 #1938 #1936) - src: formatting (cont.) (63e59481 #1936 #1935 #1923) - src: formatting (6ffb9632 #1935) - src: drop 'libssh2' prefix from static symbols (adc07964 #1934 #1931 #1923) - src: drop more leading underscores from symbols (8c9b7771 #1931 #1923) - src: drop leading underscore from internal macro constants (689b2023 #1923) - src: replace typedef structs with direct struct types (cont.) (7dd7e626 #1909) - src: replace typedef structs with direct struct types (967647c4 #1907) - src: open key files in binary mode (0ca33b61 #1883 #235 #1880 follow: ef6eaadb) - src: drop unused internal `FOPEN_APPENDTEXT` macro (99a4de92 #1882 #235 follow: ef6eaadb) - src: misc tidy-ups (ea14e9a4 #1877) - src: add hybrid ML-KEM KEX algorithms support with OpenSSL 3.5 (3ba252e2 #1644) - src: move outlier leading `&&` and `||` to the end of lines (3865eabe #1767) - src: fix two NULL checks (openssl, userauth) (51b35d1b #1656 #698 #1314 follow: 3a6ab70d follow: ed439a29) - src: disable deprecated algos by default (b89858b8 #1531) - sshd_config: enable legacy KEXs for Libgcrypt and WinCNG, drop workarounds (1d0b86ac #2484 #2174 #1720) - sshd_config: enable `ssh-rsa-cert-v01@openssh.com` more (5b494b04 #2478 #2474) - test_hostkey_hash: avoid `BUFSIZ` macro (00f6c3a6 #2112 #2104 #2099 #2096) - test_hostkey_hash: tidy up `calculate_digest()` (17389d83 #2104 #2103 #2099 #2096) - test_hostkey_hash: fix `-Wformat-truncation` with gcc-16 (36d38812 #2099 #2096) - test_hostkey_hash: silence `-Wformat-truncation` in `calculate_digest()` (837ce2f1 #2096) - test_read: fix to close and free channel on error (a1d2ca5d #2108) - test_simple: cast to avoid `-Wsign-conversion` (clang-tidy) (764de73f #2418 #2417 #2239) - test_simple: fix to check test result (4013a3fe #1973) - test_ssh2: fix to free channel on `libssh2_channel_shell()` fail (5569c5b6 #2109) - test_ssh2: fix detecting connect failure (2e69ba25 #1854) - test_ssh2, examples: bump to SHA-256 fingerprints (6f3c640d #2445) - test_ssh2, examples: avoid crash on NULL fingerprint (f784c21d #2179 #2174) - test_sshd.test: sync an option with `sshd_config` used in `Dockerfile` (cae4e3f8 #2481 #1024 follow: d4690e95) - tests: add `chacha20-poly1305@openssh.com` to `test_read_algos.txt` (0b749a96 #2506 #1426 follow: 492bc543) - tests: add PKCS8-formatted plain and encrypted keys and tests (4b5303ab #2500) - tests: add ECDSA PEM format plain and encrypted keys and tests (f3a5b6a0 #2499) - tests: move trusted CA private keys off the test server (f5821e60 #2497 #2496) - tests: add signed ed25519 key and test (d7a253f5 #2496) - tests: add test for encrypted ECDSA key (fd07ca41 #2486) - tests: add support to disable hex debug dumps (2a38092c #2487) - tests: allow overriding the username in `test_*_signed` tests (9a959ada) - tests: regenerate `id_rsa_signed.pub` to match intent, fix `sshd_config` to accept it (41d5efc9 #2474 #710 #2479 #2478 follow: 4b21e49d) - tests: rename a test and keys to match the actual format (7392dc95 #2479 #2474 #1314 follow: 3a6ab70d) - tests: test key tidy-ups (96cce079 #2473) - tests: sync up pubkey comments with generator (tidy-up) (e77f5da4 #2472) - tests: move test keys into `keys` subdirectory (a824e9d8 #2471) - tests: revert to use system `snprintf()` (a2aae5ea #2331 #2103) - tests: use `LIBSSH2_SOCKET_CLOSE()` macro (743cebc9 #2193) - tests: revert `srcdir_path()` to static buffers (c399519e #2106 #2102 #2089 #1415 follow: 12427f4f) - tests: tidy up `srcdir_path()` more (4cecccd6 #2102 #2089 #1415 follow: 12427f4f) - tests: fix wrong index in `srcdir_path()` cleanup (aae3776a #2089 #1415 follow: 12427f4f) - tests: fix sleep durations (007a36e8 #1853 #996 #490 follow: 984d0081 follow: a459a253 follow: a88a727c follow: cf80f2f4) - tests: improve `SSHD` default value (fixup) (ea56904a #1568 #1563) - tests: use `setfacl` if available (cf15fdd2 #1565) - tests: improve `SSHD` default value (fb12d87e #1563) - tests: add support for wine/qemu (5930dc3c #1562) - tests: delete CMake ExternalProject integration test (8011f901 #1522 #1510 #1116) - tests/.gitignore: delete two stray entries (1bc6e2c3 #1718) - tests/openssh_fixture: fix to close socket on connect failure (5ddc5997 #1855) - tidy-up: C and formatting nits (bc6a0c5a #2463) - tidy-up: C nits (9921aeff #2437) - tidy-up: variable name sync, comment/formatting nits (2569543b #2428) - tidy-up: rename some args for consistency (10013516 #2397) - tidy-up: prefer `\0` as null-terminator, drop newlines (179348c6 #2383) - tidy-up: miscellaneous (27177ead #2367) - tidy-up: fix variable names, improve consistency, other nits (7c8d28d8 #2353) - tidy-up: formatting, variable name and comment nits (00b84caa #2348) - tidy-up: comment typos, parentheses, formatting (1e32ae76 #2336) - tidy-up: `FILE *` variable names, configure warning option guard, printf mask (952fb88f #2317 #1972 follow: 7b351eed) - tidy-up: C nits (1164743d #2308) - tidy-up: variables names, comments, nits (efdbe8a7 #2307) - tidy-up: misc typos, syntax nits, formatting (7391a242 #2287 #292 #2003 #2001 #1999 #1991 #1972 #1829 #1828 #1803 #1802 #1668 #1564 #1559 #1558 #1542 #1535 #1534 #1529 #1484 #1207) - tidy-up: argument order (cont.) (96a51d42 #2258) - tidy-up: argument order/names, minor nits (4c9fcf65 #2258) - tidy-up: argument names, minor nits (00af3032 #2257) - tidy-up: fixup and reflow copyright headers (bcef4a03 #2247) - tidy-up: syntax nits and code layout (d0c7ffdc #2235 #2195) - tidy-up: comments, messages, docs typos, whitespace nits (6a37f6b3 #2212) - tidy-up: miscellaneous (5d3a28b7 #2194) - tidy-up: move most static/local symbols into their own namespace (cd6a32f6 #2177) - tidy-up: miscellaneous (d22fcc0c #2162) - tidy-up: miscellaneous (b7fb9638 #2138) - tidy-up: comments (628fb7f9 #2111) - tidy-up: drop most `{}` blocks around single-statements (33f6508a #2087 #793 #2077 #2004) - tidy-up: miscellaneous (12dae713 #2086) - tidy-up: comments (4bb40bc6 #2084) - tidy-up: miscellaneous (a25f69ef #2069) - tidy-up: miscellaneous (ca43b304 #2042) - tidy-up: drop stray comparisons with literal zero (4140a13c #2014) - tidy-up: miscellaneous (10093bde #2000) - tidy-up: miscellaneous (b90a38c1 #1995 #1984 #1679) - tidy-up: miscellaneous (99803822 #1988 #1859 #1816 #1815 #1786 #1761 #1706 #1704 #1701) - tidy-up: misc (c40bcbf8 #1940) - tidy-up: drop unused `get_ver.awk` script (d7d8d614 #1917 #1204 follow: 43485579) - tidy-up: alpha-sort crypto backends and platforms (dabba101 #1914) - tidy-up: formatting (cont.) (8a9ca04d #1903) - tidy-up: formatting (1db7f023 #1899) - tidy-up: add missing, and drop redundant parentheses (b6f307dc #1898 #1844) - tidy-up: rename `ci` directory to `scripts` (31790754 #1870) - tidy-up: miscellaneous (3d4ff6b2 #1842) - tidy-up: parenthesis in macros (OS400) (fdbc32b0 #1774 #1773) - tidy-up: parenthesis in macros (d97d8e31 #1773) - tidy-up: drop duplicate newlines, fix non-ASCII chars, other formatting, check in CI (6e56a8bd #1766) - tidy-up: `Makefile.am` comments and copyright header (199526f9 #1662) - tidy-up: fix typos found by typos-cli 1.36.2 (c3e6dbd4 #1654) - tidy-up: replace `exit()` with `return` (a751d578 #1541) - tidy-up: prefer `#ifdef` / `#ifndef` (formatting) (5cca650b #1532) - tidy-up: `unsigned const char` -> `const unsigned char` (114923f1 #1487) - tidy-up: spelling (91b0e099) - TODO.md: fix typo, add missing punctuation (c25df87a) - transport: avoid `CRYPT_FLAG_*()` doing symbol concatenation (10af31dd #2495 #797 follow: 3c953c05) - transport: fix to translate low-level crypt result to LIBSSH2 error code (2877fa64 #2392 #2389 #1426 follow: 492bc543) - transport: fix two memleaks on error paths in `transport_fullpacket()` (d69ee04e #2343 #2198) - transport: fix potential heap overflow on ETM decrypt (42e33d81 #2198 GHSA-6c79-444r-wx26) - transport: fix potential deadlock in `ssh2_transport_send()` (5131a70a #2206 #2110) - transport: merge two nested `if()`s (eb300d56 #2057 #797 follow: 3c953c05) - transport: drop impossible `if()` branch (fef6c3cf #2056 #987 #655 follow: 0048f306) - transport: Additional boundary checks for packet length (97acf3df #2052) - transport: use constant time function for MAC memcmp() (39f14b87 #1824) - transport: handle invalid ETM packet padding (18c3a345 #1814) - transport: Avoid possible double-free (358d51bc #1800) - transport: fix when server/client uses encryption method with integrated MAC and the other does not (d8ae40ba #1582) - transport: fix formatting (64fafc78) - transport: fix indentation of comments (21228cff) - transport: stop passing newline to the trace handler via `debugdump()` (c78d54c2 #1492 #1485 follow: 0f0652a3) - transport, session: fix payload memory leak and potential double-free (823a2286 #2054 #623 #2026 #1956 #1804 follow: 92d686fe) - userauth: enable `ssh-rsa-cert-v01@openssh.com` for all backends in `userauth_supported_key_sign_algs()`, fix tests (88dd2f0f #2483 #2252 #2249 #1314 follow: 3a6ab70d) - userauth: drop unused session arg from `userauth_supported_key_sign_algs()` (df93b283) - userauth: scope static variables in `ssh2_userauth_plain_method()` (30768b9a #2482 #2384) - userauth: rename method variables to match rest of code (73db1c82 #2370) - userauth: drop redundant casts (467474b8 #2366) - userauth: merge file/blob sibling functions into `userauth_publickey()` (fe9442be #2359 #2354) - userauth: apply two OOB fixes to `userauth_read_blob_pubkey()` (209522cb #2358 #386 #2354 follow: 18cfec83 follow: 3e47ca8a follow: 48205569) - userauth: reset state machine to idle on fail in `userauth_password()` (7b1fdaa1 #2344 #2224) - userauth: keep buffer lengths consistent with pointers on fail, nearby fixes (af1b5019 #2224 #698 #2220 follow: ed439a29) - userauth: delete no-op code with memleaks in `libssh2_userauth_publickey_sk()` (cf8164b3 #2294 #752 #698 follow: bc4e619e follow: ed439a29) - userauth: protect against NULL `abstract` `libssh2_sign_sk()` (42a448f0 #2291 #698 #2290 follow: ed439a29) - userauth: check for NULL `session`, where missing (579cc071 #2290) - userauth: cap password length in `userauth_password()` (338f4e50 #2288 #2223) - userauth: cap username/password more, related fixes (2fedc0b3 #2223 #1858) - userauth: fix crash on OOM in `libssh2_userauth_publickey_sk()` (3e765960 #2220 #698 follow: ed439a29) - userauth: fix comment nits, drop singe-instruction `{}` blocks (71fa0004 #2221) - userauth: tidy up error texts (0aafe6a8 #1928) - userauth: limit input sizes to prevent allocation size overflow (66d73ffe #1913) - userauth: formatting (78aa39c6 #1896) - userauth: various fixes to `_libssh2_key_sign_algorithm()` (cont.) (b671ac9b #1885 #1881 #1314 follow: 3a6ab70d) - userauth: fix typo in comment (728cae43) - userauth: various fixes to `_libssh2_key_sign_algorithm()` (ba2a7ff9 #1881 #1877 #1314 follow: 3a6ab70d) - userauth: username_len bounds checking (256d04b6 #1858) - userauth: fix error message for EAGAIN in public-key response (81f0203c #1747) - userauth: fix typo from #1516 (73ac65f7 #1516) - userauth: fix possible memory leaks #1504 (49837fd7 #1516 #1504) - version: reflect KEX-SHA1, MAC-SHA1, deprecated APIs in `libssh2_build_options()` (cf107fb7 #2453 #2444 #2443 #2178) - version: add `Unicode:on/off` to `libssh2_build_options()` (645dade3 #2316) - version: add `libssh2_build_options()` (2673970d #2178 #2161) - vms: bump an URL to HTTPS (2fe2e9af) - vms/man2help: rename some variables for readability (af698be4) - vms/man2help: tidy-ups, clang-format, use `memcpy` (429900e6 #1905) - vms/man2help: misc fixes (295a2661 #1904) - vms/man2help: make functions static (b599ff5e) - vms/man2help: add missing void return type to prototype (aa45503a) - vms/man2help: misc fixes (3ec2920b #1902) - wincng: avoid pointer cast in `wcng_ecdsa_new_private_parse()` (d4d068fa #2426 #2424 #1315 follow: 3e723437) - wincng: cap private key components in `wcng_pub_privkey_file_parse()` (16879e47 #2378 #2376) - wincng: fix NULL derefs on OOM in `wcng_pub_privkey_file_parse()` (00986be1 #2377 #2376) - wincng: reuse ECDSA key loading/parsing code from `pem.c` (035d28c0 #2279 #1517 #1315 follow: 3e723437) - wincng: fix potentially dangling algo handles in `ssh2_crypto_init()` (2c1ab125 #2309) - wincng: sync `wcng_rsa_sha_sign()` arg order with rest of code (622f53f2) - wincng: prefer `ssh2_ecdsa_ctx` type, where missing (adbb541a) - wincng: fix leaking objects on ECDSA context OOM (41140636 #2306 #2301 #2300 #1315 follow: 3e723437) - wincng: fix NULL deref on OOM in `ssh2_ecdsa_sign()` (fe34a066 #2305 #1315 follow: 3e723437) - wincng: initialize returned values on fail in `wcng_bn_ltob()` (tidy up) (81c628b8 #2304) - wincng: return more accurate error in `ssh2_dsa_sha1_sign()` (9f62e275 #2303) - wincng: fix memleak on fail path in `ssh2_ecdsa_verify()` (a196a090 #2302 #1315 follow: 3e723437) - wincng: `sizeof(ssh2_ecdsa_ctx)` (tidy up) (0c096d1c #2301 #1315 follow: 3e723437) - wincng: de-duplicate two conditionals in `ssh2_ecdsa_create_key()` (cd7297ff #2300) - wincng: fix another resource leak in `ssh2_ecdh_gen_k()` (f2751aa4 #2299 #2038 #1315 follow: 3e723437) - wincng: fix NULL deref on OOM in `ssh2_ecdsa_verify()` (45041199 #2191 #1315 follow: 3e723437) - wincng: fix to bail out on ECDH key export fail (8b5acaa9 #2190 #1315 follow: 3e723437) - wincng: on deinit, only close ECDSA/ECDH algos if set (efb0c0c4 #2189 #1315 follow: 3e723437) - wincng: make `ssh2_wcng_hash_update()` length `size_t` (was: `ULONG`) (966e04f1 #2185) - wincng: sync low-level hash return values with rest of crypto backends (2bddd60f #2182) - wincng: fix clang-tidy warnings in ECDSA code, test in CI (fcfccb10 #2175) - wincng: fix `ssh2_wcng_hash_final()` behavior after previous commit (54cb2b23 #2173 #2169) - wincng: do not require passing digest size on hash init (542567d1 #2169) - wincng: drop floating point math (484c8b10 #2113) - wincng: fix potential NULL deref in `wcng_uncompressed_point_from_publickey()` (8eb4953c #2095) - wincng: validate argument to prevent passing NULL to `strcmp()` (a5a2f13f #2094) - wincng: revert recent algorithm macro setup update (0391b09d #2045 #1985) - wincng: drop `hAlgChacha20` unused global placeholder (c9fb2cdd #2040 #1426 follow: 492bc543) - wincng: fix leaking `hAlgAES_ECB` handle on deinit (cf4ba378 #2039 follow: 2de14f8f) - wincng: fix leaking `*secret` on error in `ssh2_ecdh_gen_k()` (2f7f107f #2038) - wincng: validate arguments in `wcng_reverse_bytes()` (25c99065 #2037 #2035) - wincng: replace duplicate code with `wcng_reverse_bytes()` call (edab4fa3 #2035) - wincng: drop `LIBSSH2_WINCNG_DISABLE_WINCRYPT` build option (bb9117c8 #1982 #916 #1985 follow: 185292a0) - wincng: allow disabling more crypto features (bf3757b9 #1985) - wincng: disable more DSA code with `LIBSSH2_NO_DSA` (b92c8261 #1980) - wincng: unfold `memcpy()` lines (formatting) (f946d1e2 #1943) - wincng: reorder functions to avoid forward declaration (a8508eb8 #1933) - wincng: replace typedef structs with direct struct types (c07e953a #1908) - wincng: fix indent (62e97f43 #1860) - wincng: Additional input validation (f8b9fc5b #1860) - wincng: move `_libssh2_aes_ctr_increment()` from misc, make static (131480d2) - windows: stop setting `_CRT_NONSTDC_NO_DEPRECATE` for MSVC (deefd7f6 #2332 #2042 #1688) - windows: always enable large-file support (46c7a480 #1771 #1711) - windows: drop support for Visual Studio 2008 and older (cbe7654d #1769 #1711) - wolfssl: guard `OPENSSL_VERSION_NUMBER` off for wolfSSL (bb42cb2c #2255 #1644) - wolfssl: fix detecting ECDSA support (b807dac9 #1723 #666 #1720 follow: b95e7582) This release would not have looked like this without help, code, reports and advice from friends like these: Adrian Moran, afldl on github, Aldo Ristori, Amy Lin, Anders Borum, Asaf Meizner, Behzod Abdullayev, Bruce Dang, Chen Zhengzhe, Chris Emsen, Christian Ghisler, Christoph Reiter, d3x0r, Daniel Stenberg, dapickle on github, Darren Carreras, dependabot[bot], Dhiraj Mishra, DigitalCyberSoft, Eli Schwartz, Evgeny Grin, Feodor Fitsner, geral-victor on github, Hananto Adi, Haruki Oyama, Hemant Jadhav, hyunjiHong on github, Jacob Barthelmeh, Jay Satiro, Jim B, Joren Afman, Josh Brobst, Joshua Rogers, Justin Smith, Kai Pastor, Karnakar Reddy, Kian Kasad, Kit Knox, Lars Nordin, Liu Xing Yu, Lucas Queiroz, Lukas Dürrenberger, manus-use on github, manusjs on github, Marc Hörsken, Marcel Raad, Martin Nowak, Mateusz Gierblinski, Michael Buckley, Mухтар Воблоев, nnarayanamurthy on github, Oblivionsage, Oliver Chang, Omkar Bhor, oss-patch, Pascal Neuperger, Patrick Monnerat, Paul Howarth, Pedro Masteguin, Pramod Kumar, pyscripter on github, R6502 on github (Michael), Rainer Jung, Raul Tambre, RuiZhi Zhang, Ryan Kelley, Sebastien Tardif, Seojun Lee, sergey1369, Sharique Raza, skuodi on github, Stanislav Osipov, Stephan Eggermont, syed abdul khaliq, timelyslot on gitHub, TristanInSec, trustytrojan, Trzik on github, Viktor Szakats, Vladimir Eli Tokarev, vnth4nhnt from CyStack, Wilfried Pascault, Will Cosgrove, yaotushaozhu on github, Yaroslav Rosomakho, Ze Sheng