Commit Graph

153 Commits (fd67c8b0c8d3d42470dbfc38947610f5591ce22c)

Author SHA1 Message Date
John Safranek fd67c8b0c8 wolfSSH Client
1. Changed the function client_test()'s name to wolfSSH_Client().
2. Added "destination" to the usage text.
3. Improved the handling of the termios settings.
4. Remove the file names from the ClientFreeBuffers() function.
5. Changed ClientFreeBuffers() to free if the pointers aren't pointing
   at the static buffers. They may not load because the file is bad, but
   it will still have a file name.
6. Only try to load the public key or cert if loading the private key
   was successful. Do not fail out if key cannot load, password may
   still be possible.
2023-09-25 09:23:13 -07:00
John Safranek 653722f481 wolfSSH Client
1. Remove the global req test code.
2. Remove the check for having both both private key and public key
   specified. It currently derives a public key name from the private
   key name.
2023-09-25 09:23:13 -07:00
John Safranek 0ded1c83e8 wolfSSH Client
1. In the windowMonitor(), move the check for quit outside the
   conditional build so it works for both macOS and Linux.
2. Removed a dead store in readPeer(). If the socket wants read, that's
   fine. Don't need to override it.
3. When allocating memory for the hostname, don't forget the nul.
4. When parsing the command line and storing a copy of it to send to the
   peer, stash it in the config.
5. When allocating memory for the username, add 1 for the nul outside
   the strlen().
6. When canceling a thread, be sure to join it afterwards.
7. Added a read me document for wolfSSH client. Just a quick note. To be
   replaced later with something more formal.
2023-09-25 09:23:13 -07:00
John Safranek a577c119fc wolfSSH Client
1. Removed redundant fflush() after a write().
2. Treat WS_CHANNEL_CLOSED during shutdown as successful.
2023-09-25 09:23:13 -07:00
John Safranek 35b5c40969 wolfSSH Client
1. Remove stray print when the client isn't going to ask for a password.
2. Remove adding the CR to the end of the string sent to the server.
   The appropriate solution is to fix the issue in the Windows build of
   the server. For POSIX, the LF is converted to CR/LF, so we get a
   CR/CR/LF in the end, which looks like the enter key double-striking.
2023-09-25 09:23:13 -07:00
John Safranek 93a5440141 wolfSSH Client
1. Update to use a default public key based on the name of the private
   key.
2. Stash the public key name in the config structure, removing it from
   the list of globals.
2023-09-25 09:23:13 -07:00
John Safranek 4d5c4e1306 Semaphore Fix
1. Add quit parameter to the example client's thread_args structure.
   This will be used to let the windowMonitor thread know the
   application is quitting.
2. If the windowMonitor's quit flag is set, it will exit and not call
   wait again.
3. Join the windowMonitor thread rather than cancel it.
2023-09-25 09:23:13 -07:00
John Safranek cdef5f69ad wolfSSH Client
1. Allocating the user and hostname separately, makes updates from
   default to set value easier.
2. Set a default user name based and private key file name based on the
   environment.
3. Changed the visibility of the client common functions to
   WOLFSSL_LOCAL.
4. Removed the userEcc varible from the main loop, and from the client
   utility functions. Key type should be figured from the key.
5. Removed the hardcoded default keys for fake user Hansel. The key
   loading functions will error out if a file name isn't used.
2023-09-25 09:23:13 -07:00
John Safranek f28d6b4a26 wolfSSH Client
1. Merge the current example client code into the wolfssh client.
2. Add the example client common files to the wolfssh client.
2023-09-25 09:23:13 -07:00
John Safranek e19b60b767 wolfSSH Client
1. Added a comment regarding the potential leak. It is confirmed NOT A
   LEAK.
2. Fixed the connection fail. Added a check for WANT_READ and treat that
   as a success.
3. Put back a couple things removed from the last commit regarding
   agent.
4. Change ShowUsage to use basename(). (Linux build didn't have
   basename_r().)
5. Add NULL for the fs context parameter of the file wrapper macros.
6. Printing config checks any pointers for null then uses a default
   value.
7. Minor cleanups.
2023-09-25 09:23:13 -07:00
John Safranek 0346f68102 wolfSSH Client
1. Since the base of the client is copied from the example client,
   remove the command line options used by the client. Start populating
   with a few of the options used by the other client, and decode the
   destination and optional command from the command line.
2. Move parsing the command line to its own function. It is a member of
   a set of functions for reading the command line options, the config
   file, and the environment to config the client.
3. Trim out many includes. Some will be added back later. Some don't
   need to be there.
4. The client will only use non-blocking sockets.

Note/Todo:
(a) The connection fails to start some of the time.
(b) The user name has the potential to leak.
2023-09-25 09:23:13 -07:00
Jacob Barthelmeh 7d0e8aacda fix warning and add more print outs to help menu 2023-09-25 09:23:13 -07:00
JacobBarthelmeh 325a89b7eb initial wolfssh app 2023-09-25 09:23:13 -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
JacobBarthelmeh 827d901f52 add sanity check that pid file is not null 2023-09-20 16:32:50 -06:00
JacobBarthelmeh c349510cc3 add include of process.h for _getpid and add a cast to fix warning 2023-09-20 13:29:33 -06:00
JacobBarthelmeh 12b7c3af93 add Windows version of getpid 2023-09-20 11:16:35 -06:00
JacobBarthelmeh aa6ba94206 keep permissions rasied when binding to socket 2023-09-07 09:19:48 -07:00
John Safranek 491f3dce57 WMACRO Update
1. Fix missing updates to wolfSSHd.
2. Fix missing update to scp.
2023-09-01 09:34:26 -07:00
John Safranek d4fa4ebd69
Merge branch 'master' into pull-reqs/f4021bb_All_the_filesystem-related_W_macros_accept_a_filesystem_context_pointer_as_first_parameter 2023-09-01 09:08:34 -07:00
JacobBarthelmeh 034ed7fe9f fix ups for format, spelling, includes, and string compare 2023-08-30 13:32:17 -07:00
Jacob Barthelmeh 4fd4d0458f scan build warning of unread timeout 2023-08-30 09:08:25 -07:00
JacobBarthelmeh 9993a26add parse command line arguments for Windows service 2023-08-30 09:08:25 -07:00
JacobBarthelmeh da32306628 fix for rekey with wolfsshd, improve wolfsshd vs project 2023-08-30 09:08:25 -07:00
JacobBarthelmeh 6b22fedec9 check SFTP pending data before processing more 2023-08-30 09:08:25 -07:00
JacobBarthelmeh 1b1f2d7090 with windows check for window-change packet before creating psudo terminal 2023-08-30 09:08:25 -07:00
JacobBarthelmeh ecd47ddfd6 add OSX semaphore use, and fix warning 2023-08-30 09:08:25 -07:00
JacobBarthelmeh ab742ca766 wolfSSHd port to Windows
handling of terminal size adjustments

stub case for ECH virtual terminal command
2023-08-30 09:08:25 -07:00
John Safranek 47001e0d92
Merge pull request #560 from JacobBarthelmeh/interop 2023-08-30 09:00:17 -07:00
JacobBarthelmeh 067cc069aa add check for full window with SSHD and improve nonblocking connect with client 2023-08-07 09:55:33 -07:00
JacobBarthelmeh 8d9b30d9a9 add PidFile and -t support 2023-07-25 08:55:43 -07:00
Fabio Alemagna 092c04fe30 All the filesystem-related W* macros accept a filesystem context pointer as first parameter, to make portability better. 2023-07-21 11:53:40 +02:00
JacobBarthelmeh 4c0c0124ec better handling of want read/write cases with SFTP + SSHD 2023-07-12 07:38:45 -07:00
JacobBarthelmeh 57f07802a2 fix warnings for g++ build 2023-07-05 15:10:48 -07:00
David Garske 9e83349745
Merge pull request #530 from JacobBarthelmeh/sftp
better handling of window full cases and chroot with SFTP
2023-06-28 09:27:48 -07:00
JacobBarthelmeh e55b4f7e70 fix for getgroups with QNX 2023-06-27 23:30:32 -07:00
JacobBarthelmeh 711470e2d4 sanity check on return value 2023-06-27 15:14:55 -07:00
JacobBarthelmeh f3922d14cd improve chroot with SShd 2023-06-27 00:08:25 -07:00
JacobBarthelmeh 049e40bb1c better handling of window full cases with SFTP 2023-06-26 22:58:28 -07:00
JacobBarthelmeh be522e8267 fix warning about unused stored value 2023-06-21 16:10:15 -07:00
JacobBarthelmeh aaf8b04fae adjust set and get groups 2023-06-15 01:48:31 -06:00
John Safranek 8b4ae3681c
Mac Build Fix
Put macro wrapper around function getgrouplist(). The mac is treating it
as taking a pointer to int rather than gid_t.
2023-06-07 17:33:32 -07:00
John Safranek 639f896320
Merge pull request #519 from JacobBarthelmeh/scp
break between SSH accept and SCP operation
2023-06-01 20:54:43 -07:00
John Safranek f41135dbd9
Merge pull request #520 from JacobBarthelmeh/auth
fix empty password support regression
2023-06-01 11:17:55 -07:00
JacobBarthelmeh 066aa22259 fix for setting secondary groups 2023-05-26 07:56:24 -07:00
John Safranek 6fabf0084c
Merge pull request #521 from JacobBarthelmeh/qnx
keep raised permissions for startup
2023-05-24 14:59:47 -07:00
JacobBarthelmeh f18f9adf1f fix for check on empty password 2023-05-24 14:53:50 -07:00
JacobBarthelmeh 796a745a92 fix scan-build warning for check on ret value 2023-05-19 13:49:23 -07:00
JacobBarthelmeh ebbf43d2fe catch SCP as exec session 2023-05-19 10:55:07 -07:00
JacobBarthelmeh 26b68c2b1b keep raised permissions for startup 2023-05-19 09:50:23 -07:00