Commit Graph

1658 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 a650415476
Merge pull request #582 from danielinux/fix_no_term
Fix compile errors when WOLFSSH_TERM is undefined
2023-09-25 09:45:18 -06:00
John Safranek e0ba0cb728
Merge pull request #589 from gojimmypi/init-vars 2023-09-24 13:52:44 -07:00
gojimmypi 56ca2d636a WOLFSSH_UNUSED instead of (void)var 2023-09-23 08:38:44 -07:00
John Safranek 47ecaf6d88
Merge pull request #591 from JacobBarthelmeh/x509 2023-09-22 16:33:55 -07:00
John Safranek 481c334a39
Fix No Term
1. Widened the scope of a couple of the guards for WOLFSSH_TERM.
2. Added a pthread_join for one of the threads in the example client.
2023-09-22 16:26:23 -07:00
JacobBarthelmeh 08345797d8 add x509v3 options to ext canned key algo names list 2023-09-22 13:06:44 -07:00
JacobBarthelmeh ec447f1b93
Merge pull request #590 from ejohnstown/term-tweaks
Term Tweaks
2023-09-22 08:20:56 -06:00
John Safranek 77290e630d
Merge pull request #587 from JacobBarthelmeh/vs_build 2023-09-21 15:54:05 -07:00
John Safranek 5fa72591b5
Term Tweaks
1. Add check for IUTF8 and forward.
2. Changed the TTYSet() for a char and a word version. For chars that
   were -1, they were getting set as a word.
3. In DoChannelRequest(), read the modes as a string reference.
2023-09-21 15:50:16 -07:00
gojimmypi 2d9292bfa5 initialize internal.c vars for espressif/cmake 2023-09-20 18:40:11 -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
David Garske 74ca7161a5
Merge pull request #585 from ejohnstown/term
Term Update
2023-09-19 12:05:32 -07:00
John Safranek 5b094d6f43
Term Update
1. Change GetTerminalSize() to GetTerminalInfo().
2. Add the term variable to the things GetTerminalInfo() looks up.
3. Return the actual value of the environment variable TERM to the
   server. If one isn't present, default to "xterm".
4. Clean up the whitespace in SendChannelTerminalRequest().

Misc other changes:
1. Cleanup whitespace in the recently added function
   SendChannelOpenFail().
2. Add labels to the parameters in the prototype for
   SendChannelOpenFail().
3. Remove the CR addition for Windows in the example client. Causes the
   enter key to double-strike.
2023-09-19 11:40:23 -07:00
David Garske 5af49f2f9e
Merge pull request #584 from ejohnstown/init-pty-size
Initial PTY Window Size
2023-09-18 15:37:18 -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
David Garske 417388c72a
Merge pull request #583 from ejohnstown/pem-keys
Read PEM Keys
2023-09-18 12:05:18 -07:00
John Safranek 07e760848f
Read PEM Keys
1. Update wolfSSH_ReadKey_buffer() to decode PEM keys.
2. Add detection of PEM files to wolfSSH_ReadKey_file().
3. Add parameter labels to the prototypes of the ReadKey functions.
2023-09-18 11:46:47 -07:00
Daniele Lacamera 7ff76751f6 Fix compile errors when WOLFSSH_TERM is undefined 2023-09-18 08:23:30 +02:00
John Safranek 79bc747b46
Merge pull request #551 from falemagn/pull-reqs/cca01a4_WOLFSSH_FTP_FSETSTAT 2023-09-15 15:15:16 -07:00
JacobBarthelmeh ef394908a7
additional sanity check on input buffer size 2023-09-15 15:35:35 -06:00
JacobBarthelmeh d84e3b3f4b
Merge branch 'master' into pull-reqs/cca01a4_WOLFSSH_FTP_FSETSTAT 2023-09-15 15:33:59 -06:00
JacobBarthelmeh c8f188e13c
Merge pull request #581 from ejohnstown/term-window-size
Fix Terminal Window Size Update
2023-09-15 11:51:05 -06:00
JacobBarthelmeh e3e65f0139
Merge pull request #580 from ejohnstown/mac-sem
Semaphores
2023-09-15 11:47:25 -06:00
John Safranek f8ac5285bf
Fix Terminal Window Size Update
1. Change sizeof a pointer to a string to WSTRLEN(). It was only copying
   part of the string "window-change" to the channel status message.
2023-09-15 10:45:12 -07:00
John Safranek 526ade03df
Linux-Semaphore
1. Made a similar change for Linux semaphores.
2. Moved the check for the quit flag in the windowMonitor.
2023-09-14 16:46:06 -07:00
John Safranek 503e1bb288
Mac-Semaphore
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-14 16:30:44 -07:00
John Safranek 33fd85c90f
Merge pull request #579 from JacobBarthelmeh/vs_build
fix DLL VS build configurations for wolfsshd and wolfsftp-client proj…
2023-09-14 15:44:17 -07:00
JacobBarthelmeh 39983a2c6c revert header on sln 2023-09-14 14:54:11 -06:00
JacobBarthelmeh e397f9983f remove DDL typo and update wolfSSHd for DLL Release 2023-09-14 14:49:47 -06:00
JacobBarthelmeh e474af55b2
Merge pull request #578 from ejohnstown/nonblock-client
Nonblock Client Login Failure
2023-09-13 16:42:02 -06:00
JacobBarthelmeh 61fdf5cb0b fix DLL VS build configurations for wolfsshd and wolfsftp-client projects 2023-09-13 16:33:36 -06:00
John Safranek f35a92fd48
Nonblock Client Login Failure
When the example client is using non-blocking sockets, sometimes they
don't block. The monitor thread on the socket wasn't handling
WS_WANT_READ explicitly, and treated it as a fatal error. It should be
reset to WS_SUCCESS.
2023-09-13 09:26:29 -07:00
John Safranek c900ef4698
Merge pull request #575 from JacobBarthelmeh/sshd-windows 2023-09-12 13:55:23 -07:00
JacobBarthelmeh a60150512e add parameter names to function declaration 2023-09-12 09:59:01 -07:00