Commit Graph

115 Commits (dc03049a13738d8cf8de55d1a30e5e462e9a3166)

Author SHA1 Message Date
JacobBarthelmeh 4baba585d5 fix for flags handling, ocsp case, macro guards, unused variable, changed default from MY to required to be set
enable SHA1 with windows cert store test case

expand test cases, adjust to authorized key file, minor dead code adjustments

add more documentation, refactor duplicate code sections, clean up test cases, more adjustments to logging spamming protections
2026-09-05 01:32:02 -07:00
JacobBarthelmeh 13c2adf34b add Windows cert store use with signing and add example arguments
add Windows cert store test case

make windows cert feature default disabled and simplify macro guard

additional unit tests, advertise x509 and pubkey, use CN to match username, build check for WOLFSSL_SYS_CA_CERTS, fix for CM ref count

additional build test, uniform enum name, fail on unkown cert store ecc curve, tie in of loading whole cert store for sys CA's
2026-09-05 01:32:02 -07:00
John Safranek 3d77ce5851 Stop the linker folding main() into a skipped test on macOS
When a test is configured out, its entry function compiles down to
"return 77", the automake skip code, and the main() that forwards to it
inlines to the same two instructions. Apple's ld folds the two identical
bodies together and then writes LC_MAIN entryoff 0, so the binary starts
executing at the Mach-O header and dies with SIGILL instead of skipping.
tests/kex.test, tests/api.test and tests/auth.test all hit this under
--enable-all CPPFLAGS=-DWOLFSSH_TEST_BLOCK, and kex.test hits it again
under --disable-server.

Probe for -Wl,-no_deduplicate and add it to AM_LDFLAGS when the linker
takes it. GNU ld rejects the flag, so the check leaves Linux alone.

Making the skipped body differ does not help: anything added to the entry
function inlines into main() and the two fold again.
2026-09-03 11:41:07 -05:00
Sameeh Jubran c34fdf155b fix: make SBOM reflect real config and cover all build types
- Include AM_CPPFLAGS and config.h in the options snapshot so the
  configured feature set (WOLFSSH_SCP/SFTP/NO_WOLFSSH_SERVER/...)
  appears in the SBOM instead of being empty.
- Discover static (.a), Mach-O (.dylib) and Windows (.dll/.lib)
  artifacts, not just a versioned .so.
- Set SOURCE_DATE_EPOCH from the last git commit for reproducible output.
- Clean staging tree and temp defines file via trap even on failure.
- Record wolfssl as an SBOM dependency (--dep-wolfssl), version
  auto-detected from WOLFSSL_DIR/wolfssl/version.h.
- configure.ac: detect git; drop unused version-info split + comment.

Signed-off-by: Sameeh Jubran <sameeh@wolfssl.com>
2026-08-27 09:43:33 -07:00
Mark Atwood 527df4ffd6 feat: add make sbom target
Adds sbom, install-sbom, and uninstall-sbom targets.
Runs gen-sbom to produce CDX and SPDX outputs.
Requires WOLFSSL_DIR pointing to a wolfssl tree with
the feat/sbom-embedded branch (includes gen-sbom).
2026-08-27 09:43:33 -07:00
John Safranek b067dace1a Don't build the client app against a single threaded wolfSSL
The client runs every session's I/O on threads, so it needs a threaded
wolfSSL. configure probes for SINGLE_THREADED when the client app is
enabled. Asking for the app with --enable-sshclient is an error, getting
it from --enable-all drops the app instead, so --enable-all still
configures against a single threaded wolfSSL.

The compile time check stays for the builds that never run configure.
That leaves the SINGLE_THREADED terms in the app's own guards
unreachable, so drop them.
2026-08-26 16:53:23 -05:00
Paul Adelsbach aeb3c4e3d2 Fix build with --disable-server 2026-08-13 14:36:28 -07:00
Yosuke Shimizu 029d412e1f Add OpenSSH certificate user authentication 2026-07-27 23:30:20 -07:00
John Safranek 928bcd1ce2 Validate algo-list setters, reject none MAC/enc
- Setters stored caller string verbatim; "none" cipher/MAC risked cleartext
- Add CheckAlgoList()/NameToIdType() to validate each token by category
- Set* now returns WS_INVALID_ALGO_ID on bad/NULL input, list unchanged
- "none" is rejected in the key list, and allowed for cipher/MAC only under
  WOLFSSH_ALLOW_NONE_CIPHER
- Names unknown to the build are skipped rather than rejected, so a portable
  superset list still works; a known name in the wrong category fails
- Reject empty list elements apart from one trailing comma, which would
  otherwise reach KEXINIT as a zero-length name
- Give ID_NONE a block size so the none cipher no longer divides by zero in
  BundlePacket(), and skip the zero-length key derivations it implies
- Treat an empty peer server-sig-algs as no extension rather than a fatal
  parse error
- The "at least one X" guards checked the implementation macros but not the
  soft-disable macros that gate joining the canned default list, so a build
  whose only survivors are soft-disabled got an empty default list: KEXINIT
  advertised nothing and CheckAlgoList() rejected it. Reachable as
  -DWOLFSSH_NO_HMAC_SHA2_256 -DWOLFSSH_NO_HMAC_SHA2_512 and as
  -DWOLFSSH_NO_AES_GCM -DWOLFSSH_NO_AES_CTR; both now fail at compile time
  naming the soft-disable macro to define
- Zero MAC algorithms is already a hard #error, so assert the queried MAC
  list in test_wolfSSH_SetAlgoList() rather than returning early, which was
  hiding the KEX/KEY/CIPHER coverage behind an unreachable guard

Issue: 2474
2026-07-23 14:09:19 -06:00
Yosuke Shimizu f571da4a6c tests: exercise DoKexDhReply host-key signature verify with corrupted signatures 2026-07-20 17:59:35 -05:00
Yosuke Shimizu 336a759af5 Bind SCP file timestamps to open descriptor 2026-06-26 13:42:52 -07:00
Yosuke Shimizu 4483254e8c Zeroize SFTP file payload buffers before freeing 2026-06-25 10:28:47 -07:00
John Safranek 8643d7be84
Merge pull request #933 from JacobBarthelmeh/release
prepare for release 1.5.0
2026-04-17 18:03:22 -07:00
JacobBarthelmeh 2712061d98 prepare for release 1.5.0 2026-04-17 10:49:48 -06:00
JacobBarthelmeh 422d4ed53a add example ecc keys also to ac config link for out of tree builds 2026-04-16 15:57:28 -06:00
JacobBarthelmeh 9e80de70a5 fixes for make distcheck 2026-04-16 15:50:54 -06:00
John Safranek ddd93343d0 No Server Guard Update
1. Adds --disable-server and --disable-client configure flags. Allows for
   compile-time exclusion of server or client code.
2. Add check to internal.h for both NO_WOLFSSH_SERVER and
   NO_WOLFSSH_CLIENT being set and errors.
3. In ports.h, add check for not-NO_WOLFSSH_CLIENT so SFTP/SCP
   filesystrem types are also available in client-only builds.
4. Update the NO_WOLFSSH_SERVER and NO_WOLFSSH_DIR guards around
   wolfsftp.c. Update wolfSSH_SFTP_free() to skip directory cleanup
   when server code is disabled.

ZD #21261
2026-03-09 10:29:00 -07:00
John Safranek ef2d4228ba Release v1.4.22
1. Update configure.
2. Update ChangeLog.
3. Let configure link in the keys that are needed for the regression test.
2025-12-29 16:53:19 -08:00
JacobBarthelmeh 3ff50e4325 prepare for release 1.4.21 2025-10-20 15:02:47 -06:00
John Safranek e238eabbc0 Autoconf Update
1. Update the version requirements of libtool, automake, and autoconf to
   version contemporary to the first release of wolfSSH.
2. Group all checks of `ENABLED_TPM` into one `AS_IF`.
3. Group all checks of `ENABLED_SSHD` into one `AS_IF`.
4. Replace `if` and `case` with `AS_IF` and `AS_CASE`.
2025-07-21 11:47:26 -07:00
Andrew Hutchings c368efb8b2 Make Keyboard Interactive a compile time option
Now an off-by-default compile-time option. This saves resources and
confusion if you are not expecting it.

ZD #19704
2025-04-22 13:12:42 +01:00
aidan garske 77c8db6cc2 Rebase for tpm public key authentication with wolfssh 2025-04-01 16:44:55 -07:00
JacobBarthelmeh b62b19c7cd prepare for release 1.4.20 2025-02-19 14:18:29 -07:00
JacobBarthelmeh 7d87c0ef7a prepare for release 1.4.19 2024-10-31 15:05:15 -06:00
Anthony Hu 20287f5568 Purge OQS from wolfSSH. Use kyber from wolfssl. 2024-08-20 14:57:39 -04:00
John Safranek e9ec4fd9fd Release v1.4.18
The usual updates for the release.
2024-07-18 14:43:57 -07:00
John Safranek c821a8c609 Revert "Configure Updates"
This reverts commit 63a3068dc7.
2024-07-18 11:44:29 -07:00
JacobBarthelmeh 995a047dad
Merge pull request #724 from ejohnstown/term-update
Configure Update
2024-07-17 17:02:52 -06:00
John Safranek a15e24cc37 Configure Updates
1. Update the configure.ac for an incorrect TERM flag. Was mixing
   TERM and PTERM, but most things use TERM, switch to TERM.
2024-07-17 15:06:52 -07:00
John Safranek 63a3068dc7 Configure Updates
1. Update the configure.ac for an incorrect PTERM flag.
2024-06-20 16:35:54 -07:00
John Safranek d2889924cb
Update Version to v1.4.17
1. Update the library version
2. Update the ChangeLog
2024-03-22 12:36:05 -07:00
John Safranek 1736a4cabf
Update Copyright Date
1. Bring all copyright dates up to 2024.
2. Fix a few files with incorrect licensing.
2024-03-22 12:17:09 -07:00
JacobBarthelmeh dda8905daa dev bundle, version 1.4.16 2024-02-22 06:52:04 -07:00
John Safranek 3feaad95af
Release v1.4.15: Release Testing Fixes
1. Add a check for limits.h to configure.ac.
2. In wolfSSHd's configuration.c file, add an include of limits.h if
   available. It is including the header indirectly while using it
   directly.
2023-12-22 11:05:15 -08:00
John Safranek b87f0f5e2a
Release v1.4.15
The usual updates for the release.
2023-12-21 14:02:56 -08:00
John Safranek 7e17dc9d39
Test Fixes
1. Remove the grace period wolfSSHd test. It asks for a password, and
   when running as an action it doesn't have stdin, so it fails. The
   test works when stdin is available.
2. Remove the check for __uint128_t from configure. wolfSSL exports this
   value, if present, in its options.h. After wolfSSL v5.6.4, wolfSSL
   also exports this to options.h when building it with CMake. The check
   in wolfSSH isn't necessary now.
2023-12-06 12:08:48 -08:00
John Safranek 3b50a89b2f
Configure Type Checking
Add checks to configure.ac for the types __uint128_t, size_t, uint8_t,
and uintptr_t.
2023-10-24 15:23:01 -07:00
John Safranek 7965c97ceb wolfSSH Client
1. Add scaffold to the build for the wolfSSH client.
2. A little whitespace change in configure.ac.
2023-09-25 09:23:13 -07:00
John Safranek cf840c82b0
Initial PTY Window Size
1. Changed gathering the PTY window size from being OS dependent to
   availability of ioctl.h so both Linux and MacOS would start with the
   correct size.
2. Added a check to configure for sys/ioctl.h.
3. Changed GetTerminalSize() so it returns the pix width and height as
   well.
2023-09-18 15:05:33 -07:00
JacobBarthelmeh 981d946d8e prepare for release 1.4.14 2023-07-06 13:27:32 -07:00
John Safranek 7ccedec9c3
Release v1.4.13
1. Update the version number in configure.ac.
2. Update the change log.
2023-04-03 14:21:20 -07:00
John Safranek 95bcc4541c
Release v1.4.13
1. Update the copyright year in all file header comments.
2. Update the STM32CUBE files to use the correct GPL headers.
2023-04-03 10:41:10 -07:00
John Safranek 124a6cc32d Updates for new release. 2022-12-20 14:33:53 -08:00
JacobBarthelmeh e47dca36f3 add HAVE_PTHRED define for including correct WOLFSSL_THREAD 2022-12-19 16:37:25 -07:00
John Safranek 09e3446b96 Add Certificate Manager Stub File
1. For the new X.509 user certificate support, add a new stub source
   file for the wrapper code around wolfSSL's CertManager.
2. Update the makefile includes to use the new source file and header.
3. Update configure with the `--enable-certs` option.
2022-08-24 06:34:30 -07:00
Jacob Barthelmeh 8e118ef222 prepare for release v1.4.11 2022-08-22 10:08:55 -06:00
Jacob Barthelmeh 5a1f42ba07 update copyright, wrap isspace, fix formating 2022-08-16 13:28:06 -06:00
Jacob Barthelmeh 8f3cdc8230 infer fixes, clang build fixes, initial build on OSX 2022-08-05 12:05:07 -06:00
Andrew Hutchings f7fad8b8d0 Fix compiling issues 2022-07-28 15:34:21 +01:00
JacobBarthelmeh 311738d057 add link to liblogin with QNX for crypt 2022-07-21 14:43:43 -07:00