Commit Graph

256 Commits (36760ba0ee441f8c4232de78dfc9d251f217d944)

Author SHA1 Message Date
John Safranek 3c8b2a622a
In the echoserver, added a state check when a channel closes so it doesn't try to check a bad fd. 2021-10-07 15:09:02 -07:00
John Safranek a1f90568ab
Some cleanup for Windows build. 2021-10-06 18:08:04 -07:00
John Safranek fde6ce4550
SSH Port Forwarding Redux
1. Fixed a leak from a commit earlier in this branch.
2. Freed the correct address name when a forwarded connection closes.
3. Only muck about with the childFd when using the shell.
4. Treat the error code WS_CHANNEL_CLOSED as status, not a failure.
2021-10-06 13:24:13 -07:00
John Safranek d66fb26158
Update the echoserver to look up addresses used. 2021-10-06 13:24:05 -07:00
John Safranek 1ad3fc052b
Change the checked error codes to their names. 2021-10-05 19:38:33 -07:00
John Safranek 0dd21f4593
Change portfwd's data buffers to use the define EXAMPLE_BUFFER_SZ for a size. It can be changed at configure time. Use allocated buffers for small stack builds. 2021-10-05 19:38:33 -07:00
John Safranek 061463e604
Changed calls to malloc, free, memcpy, etc. with uses of the wrappers WMALLOC, WFREE, WMEMCPY, etc. 2021-10-05 19:38:33 -07:00
John Safranek dd79a54541
Fix issue with shutting down a channel. It would try to do it twice and error out. 2021-10-05 19:38:18 -07:00
John Safranek f369f4346c
Static Analysis Test Report Fixes
1. Moved SendKexDhReply()'s signature data to the heap. (413)
2. Moved SendUserAuthRequest()'s signature data to the heap. (414)
3. Moved DoKexDhReply()'s signature data to the heap. (415)
4. Moved DoUserAuthRequestRsa()'s RSA key to the heap. (416)
5. Moved wolfSSH_ProcessBuffer()'s key buffer to the heap. (422)
6. Moved wolfSSH_ReadKey_buffer()'s key bugger to the heap. (423)
7. In the echoserver, fixed a small-stack related allocation. It was
   using a DYNTYPE constant, but those aren't visible. Also, the
   wrong variable name was getting freed. (rebase)
2021-09-27 08:35:15 -07:00
John Safranek b3e9321a3c
Fixed an echoserver leak with forwarding. 2021-09-27 08:06:54 -07:00
John Safranek 1a807f1da4
Move some buffers around in the echoserver so they are allocated once per thread. 2021-09-27 08:06:54 -07:00
John Safranek 6d606dff45
Port Forwarding Update
1. Fix issue with local port forwarding example.
2. Add remote port forwarding to the echoserver.
3. Updated the unsupported GlobalReq response.
2021-09-27 08:06:54 -07:00
JacobBarthelmeh df753b0b4b sanity check on the end of the buffer in example 2021-08-27 13:41:41 -06:00
Jacob Barthelmeh 7968cb479e make loading user created keys into the examples easier 2021-08-25 09:53:58 -06:00
John Safranek 21f54b0599 Clean up some awkward debug logging with respect to userauth. 2021-08-02 23:41:27 +07:00
Eric Blankenhorn 5931aefff5 Fix for NO_FILESYSTEM and WOLFSSH_NO_AES_GCM 2021-07-20 11:22:04 -07:00
Jacob Barthelmeh a0e19049f4 fixes for build with NO_WOLFSSH_CLIENT macro and --enable-all 2021-03-26 17:24:39 +07:00
John Safranek 351bc7585e
SSH-AGENT
1. For the client agent command line option, add the flag to the flag string.
2. Update PostSignRequest() to support all flavors of ECDSA and to
   switch out code for missing algorithms.
3. Hide function SendRequestIdentities().
2021-02-02 14:13:48 -08:00
John Safranek 88e7919fbf
SSH-AGENT
Add command line option to the client to allow use of the agent.
2021-02-02 14:01:39 -08:00
John Safranek bbd3d76291
Add some option disables to the api test and the echoserver. 2021-02-02 11:45:21 -08:00
Guido Vranken ec2ecb8a82 Fix memmove length calculation in SFTP client example 2021-01-08 11:07:15 +01:00
John Safranek 31912462a0
Hide SHA from Echoserver
1. Remove calls to wc_Sha256 Init, Update, and Final and remove the
   instances of the wc_Sha256 structure.
2. Remove the c32toa function, it isn't used at this point.
3. Add calls to wc_Sha256Hash().

This removes the Sha256 structure off the stack and replaces it with the
direct call to the single-shot hash routine. Flattening the size of the
hashed data and hashing it in was removed as redundant.
2020-12-10 08:42:37 -08:00
John Safranek 28f5d750c9
More Options
1. Fix the key offerings in the echoserver and client with ifdef guards.
2. Fix a couple guards that weren't copy-pasted correctly.
2020-10-15 08:48:02 -07:00
John Safranek 740d47d0b7
More Options
1. Wrapped the user keys in client.c with guards.
2. Added the ECC-521 key for hansel.
3. Touched up the loads of the keys with guards.
2020-10-14 14:28:26 -07:00
John Safranek 4d5ce88cc9
More Options
Wrapped more items with guards to disable them if not usable.
2020-10-13 17:42:02 -07:00
Takashi Kojo 69791e1ff2 moving WOLFSSH_TEST guard into test.h 2020-10-11 11:54:39 +09:00
Takashi Kojo 28b8e745b1 fix for MQX 2020-10-11 06:53:46 +09:00
John Safranek 06ea6eb2d0
Merge pull request #289 from JacobBarthelmeh/interop
add peek when waiting for data
2020-10-01 12:05:06 -07:00
John Safranek b7a6a51f4f
Merge pull request #284 from JacobBarthelmeh/sftp
add example timeout to sftp example
2020-10-01 11:48:20 -07:00
Jacob Barthelmeh 000b8544c6 add peek when waiting for data 2020-09-30 13:22:07 -06:00
Jacob Barthelmeh a4b2c693fe use word32 type with timeout example 2020-09-30 11:45:33 -06:00
John Safranek 1be4042711
Change examples' header file including guard from pragma-once to ifndef-define. 2020-09-24 16:50:35 -07:00
Jacob Barthelmeh 69b91a3a2e adjust size of strncpy and time limit 2020-09-17 11:16:22 -06:00
Jacob Barthelmeh f8b092c5b4 add example timeout to sftp example 2020-09-17 10:43:38 -06:00
JacobBarthelmeh c4578da7a2
Merge pull request #282 from ejohnstown/optional-build
Optional Builds
2020-09-08 15:15:22 -06:00
John Safranek 39f30e25a4
Optional RSA
1. If RSA is disabled in the wolfCrypt build, the RSA related code
   in wolfSSH shall be disabled.
2. Examples will force themselves to use ECC if RSA is disabled.
2020-09-04 15:28:25 -07:00
John Safranek 487bcef2cc
Fix Memory
1. A couple places weren't passing the correct heap pointer to free.
   Normally this was ignored in the build because the WMALLOC macro left
   them out. Found using wolfCrypt memory logging.
2. Replaced the call to strdup() with wstrdup() that takes a heap and
   type parameter so sit may allocate a buffer with WMALLOC() and be
   freed correctly by WFREE().
3. Tweaked the client to use a preallocated buffer for the private key
   rather than letting ReadKey allocate one. (Another WFREE() heap/type
   issue.)
2020-09-02 12:11:24 -07:00
John Safranek 132a0a52f6
Clean up a couple issues where building the code with a C++ reported build errors.
1. Typecasting the return from malloc.
2. strncpy() checking.
2020-08-31 09:31:47 -07:00
John Safranek e052108d0c
Merge pull request #271 from JacobBarthelmeh/scp
add callback and example for no file system with SCP
2020-08-27 09:23:17 -07:00
John Safranek e5c90b31e1
Merge pull request #273 from JacobBarthelmeh/testing
graceful shutdown with scp interop
2020-08-26 10:28:23 -07:00
Jacob Barthelmeh 04511bafa6 add guard on file system use in example client 2020-08-26 10:38:36 -06:00
Jacob Barthelmeh 9a8b9e72c9 adjust check for :/ and check on compare of file name 2020-08-26 10:22:56 -06:00
Jacob Barthelmeh 44d18953ed allow scp to '/' and increase file buffer in example server 2020-08-26 10:22:56 -06:00
Jacob Barthelmeh 1a7a80544d make shutdown error message unique to client used 2020-08-26 10:22:56 -06:00
Jacob Barthelmeh 217a7d6520 add callback and example for no file system with SCP 2020-08-26 10:22:56 -06:00
Jacob Barthelmeh 03fac18efd graceful shutdown with scp interop 2020-08-19 10:55:45 -06:00
John Safranek bfa3d5717c
SSH-AGENT Touchup
1. Add function to request the channel ID for the last message received.
2. Changed the send channel functions to use the self channel ID rather
   than the peer's channel ID.
3. Modified client and echoserver to use the channel ID for the agent
   to send messages.
4. Modify client to receive the entire message from the agent before
   trying to relay it to the peer.
2020-07-30 14:00:28 -07:00
John Safranek 2be3f15106
Remove the select.h header from examples if autoconf cannot find it. 2020-07-22 15:25:51 -07:00
John Safranek 2bf3d5bd87
SSH-AGENT (peer review)
1. Cleanup redundant includes.
2. Add comments to the Read Key function pair.
3. Remove my name as an example user.
4. Change ECC sig build arrays to use macro for size rather than
   bare number.
5. Remove empty if state for agent.
6. Added a couple needed NULL checks on allocs for the agent.
7. If unable to create an agent object on connect, disable agent use.
2020-07-22 14:48:45 -07:00
John Safranek 365d1fd8ea
SSH-AGENT
1. Added option to client to load a public key.
2. Added function ReadKey to load a key from a buffer or from a file
   and store it. Utility for the client.
2020-07-17 14:54:36 -07:00
John Safranek 636cd81d32
SSH-AGENT
1. Example client should check the authType passed into the function,
   not the type stored in the authData.
2. Restore the hansel keys to example client.
3. Add user ECC option to the example client for selecting
   hansel's RSA or ECC key.
4. Restore the ordering of public key and password in
   SendUserAuthRequest().
2020-07-15 09:30:41 -07:00
John Safranek 1250e1f9d8
SSH-AGENT
1. Added the agent support to the configure.ac script.
2. Updated the gitignore file to ignore any stamp-h file.
3. Changed to use the parsing functions and to make the parsing functions
   local.
4. Updates to multichannel.
5. Add -lutil only if needed.
6. Add configure checks for some headers that change based on target OS.
7. Bump version.
8. Test doesn't have real account or real key so agent doesn't test well.
2020-07-15 09:29:49 -07:00
John Safranek a996d1e1c2
Clean up some scan-build complaints. 2020-07-09 09:33:30 -07:00
John Safranek bd4ebe1a1d
Add check of return value of chdir(). 2020-07-08 15:23:26 -07:00
John Safranek 9c4739e3b2
Shell Worker
1. Add the echoserver shell support as a configure option.
2. Added some header and function checks to configure.
3. Use the new header and function checks to select includes
   in the echoserver.
2020-07-08 13:40:00 -07:00
John Safranek 49bd9ad518
Shell Worker
1. Fixed issue with the testsuite failing when the shell is enabled.
2. Added option to echoserver to force the echo behavior instead of
the shell when shell is enabled.
2020-07-08 12:02:27 -07:00
John Safranek 18ec6d927c
Shell Worker
Add customer contributed code to the echoserver for handling spawning a shell.
2020-07-08 12:00:32 -07:00
John Safranek df74449ea1
Auth Type None
1. Added a compile time option to allow None as an authentication type, mainly
for testing.
2. Added a couple updates for VxWorks builds.
2020-05-28 15:15:38 -07:00
John Safranek 0ea40ec85f
Release Rollup
1. Fix some C++ compiler errors.
2. Added "static" to the globals in the client and SFTP client.
3. Removed an unused string.
2020-04-24 10:50:22 -07:00
John Safranek 2c710dcfd8
Merge pull request #251 from JacobBarthelmeh/sftp
free name list after done and fix clean_path
2020-03-03 15:06:40 -08:00
Jacob Barthelmeh cc7db42475 free name list after done and fix clean_path 2020-03-03 15:33:01 -07:00
John Safranek 9d1cbbab8e
wolfSCP
Add support for an example SCP client.
2020-03-03 11:27:02 -08:00
Chris Conlon 86ee47bd33
Merge pull request #246 from JacobBarthelmeh/memory
fix XFREE/MALLOC typo to be WFREE/MALLOC
2020-02-28 09:12:57 -07:00
John Safranek 380a53554b
Merge pull request #241 from JacobBarthelmeh/scp
exit channel in echoserver before sending disconnect
2020-02-27 19:18:30 -08:00
Jacob Barthelmeh 22cab294b1 fix XFREE/MALLOC typo to be WFREE/MALLOC 2020-02-26 13:19:43 -07:00
JacobBarthelmeh 552b763e4f
Merge pull request #243 from ejohnstown/vxworks
VxWorks Customizations
2020-02-18 17:08:00 -07:00
John Safranek 7c8ae04b44
VxWorks Customizations
Also includes some bug fixes.
1. Add a function that returns a pointer to a session's username string.
2. Add a function to set a "raw" username copied from an incoming packet.
3. Add tests for 1 and 2.
4. Server saves a copy of the username on successful authentication.
5. Fix bug with GetString() where it would choke on a 0 length string.
6. Clean up the termios macros and mode creation.
7. Add some options for when WOLFSSL_VXWORKS is set.
2020-02-18 16:01:00 -08:00
John Safranek 52183c3018
Merge pull request #242 from JacobBarthelmeh/auth
updates to auth callback
2020-02-18 14:29:22 -08:00
Jacob Barthelmeh 9b7700cd6b adjust stream exit in scp case 2020-02-14 17:52:25 -07:00
Jacob Barthelmeh 67851e5c10 updates to auth callback 2020-02-11 15:04:50 -07:00
Jacob Barthelmeh 84785ffe39 exit channel in echoserver before sending disconnect 2020-02-11 14:41:14 -07:00
John Safranek 51d4b14155
Automake Include Maintenance
Remove redundant items from the automake includes. They were including files already included.
2020-02-10 15:44:55 -08:00
Jacob Barthelmeh 31131c0e03 public key vs password is now decision of user callback 2020-01-27 10:33:28 -07:00
Jacob Barthelmeh f1d00102ba fix for no old name build 2020-01-23 08:54:21 -08:00
Chris Conlon 83f8372458 update copyright to 2020 2020-01-03 15:16:47 -08:00
John Safranek e68e6620ce Update and clarify the ECC options to the echoserver. (Added -E to the list.) 2019-12-05 13:18:16 -08:00
John Safranek 1cc53ef330 removed a dead assign from the echoserver 2019-10-29 14:51:55 -07:00
John Safranek 56be98ae5e
Merge pull request #210 from JacobBarthelmeh/sftp
adjust example sftp client chmod command parsing
2019-10-28 08:15:22 -07:00
JacobBarthelmeh f0c93bdd08
Merge pull request #206 from ejohnstown/auto-test
Automatic Client Test
2019-10-25 14:11:27 -06:00
John Safranek 8328ad57a6
Added an error message when the wolfsftp client fails to copy a file on autopilot. Prints out the whole remote file name. Deleted a now unused constant. 2019-10-25 13:07:18 -07:00
Jacob Barthelmeh ca1f59d7fc adjust example sftp client chmod command parsing 2019-10-25 14:00:37 -06:00
John Safranek c07a743c1a
Autopilot SFTP Test
1. Added some command line options to the wolfSFTP client to show how to
use a hardcoded automatic file transfer rather than using the command
shell. On top of that, added a script to get and put some sample files.
It was built into the wolfSFTP client to allow for using all forms of
authentication as well as using the command line password.
2. Update wolfSSH_SFTP_STAT() with clearing the error register if it is WANT_READ.
2019-10-25 10:51:36 -07:00
John Safranek 8d2900cbab
1. Reflowed some whitespace.
2. Removed a redundant function that was an artifact of the rebase.
3. Added a reset of the retry count.
2019-10-24 11:10:28 -07:00
Takashi Kojo 55c0352a76 sendDisconnect at password reject, example code in echoserver 2019-10-24 10:55:05 -07:00
John Safranek 744a67e53b
Echoserver Maintenance
1. When printing server worker errors, print out the error string on the
stored error code, not the return value.
2. If the error is a socket error, don't try to send a shutdown message
to the peer.
3. Update the echoserver to close the connection cleanly when the SFTP
peer exits.
4. Added a function to check a WOLFSSL_CHANNEL if it is in eof.
2019-10-10 10:57:39 -07:00
JacobBarthelmeh 4a246abc76
Merge pull request #197 from ejohnstown/maintenance
Maintenance
2019-09-19 22:36:48 -06:00
John Safranek 365be7d63c Maintenance
1. Clean up a few compiler warnings.
2. Between Windows, MacOS, and Linux, the %llu printf tag varies
slightly, add a typecast of the word64 to unsigned long long to hush the
compiler warning.
2019-09-11 14:10:16 -07:00
John Safranek f59ea6f1ac Maintenance
Fix a typo in a string.
2019-09-11 10:54:26 -07:00
Takashi Kojo 968c1dd30c MSGID_REQUEST_FAILURE to response MSGID_GLOBAL_REQUEST 2019-09-08 07:27:32 +09:00
kaleb-himes 051764972b Remove void cast on non-existent variable in single threaded mode 2019-07-05 17:00:05 -06:00
John Safranek ff6c167aad
Merge pull request #175 from kojo1/PW_retry
Password retry out
2019-07-01 16:46:42 -07:00
Takashi Kojo 3e58768b7e WS_USER_AUTH_E for wolfSSH_get_error 2019-06-29 13:02:21 +09:00
Takashi Kojo 58a768df29 WOLFSSH_USERAUTH_REJECTED 2019-06-29 12:37:34 +09:00
Takashi Kojo 153fa4798b WS_PASSWORD_RETRYOUT 2019-06-29 12:11:51 +09:00
Takashi Kojo 650bdf40b4 Pasword retry out 2019-06-26 13:27:14 +09:00
John Safranek 62f309c8ae
Merge pull request #170 from kojo1/GlobalReq
Global request
2019-06-18 10:18:46 -07:00
John Safranek 56616d3416 Public key authentication
1. Cleanup some debug printouts.
2. Add option to the echoserver and wolfSFTP client to use ECC keys or RSA
keys for user authentication.
3. Add option to the echoserver to use ECC keys for peer authentication.

Note, the user authentication type is still hardcoded in the library as
password. To use public key, need to update the authId in
SendUserAuthFailure().
2019-06-06 11:59:35 -07:00
John Safranek d755132ccf Public key authentication
1. Refactor of the RSA public key and password user auth code.
2. In the userauth code remove some usused variable names or use some orphaned variables.
3. Fix the sizes used for calculating the buffer size for ECC public keys.
4. Add in the length of the ECDSA signature wrapping the set r,s.
5. Return the public key rejected error code from DoUserAuthRequestPublicKey when the callback returns invalid public key.
2019-06-06 10:37:22 -07:00
Takashi Kojo faa9764753 add Global Request callback 2019-06-06 07:10:44 +09:00
Takashi Kojo fd4b2a69ee Global Request Failed case in echoserver callback 2019-06-06 07:10:44 +09:00