Commit Graph

1745 Commits (0e3ec03c2d7b569a44769d7467acf79b299456d5)

Author SHA1 Message Date
John Safranek 23a9bb82a0 PR Review
1. Change the block size in the key decoding to a named constant rather
   than a bare number.
2. Change the comparison from a difference of two unsigned values
   against zero to comparing them directly.
2023-11-06 14:07:21 -08:00
John Safranek 3b443c01fc PR Review
1. Add better error checking to the OpenSSH key code.
2. Add a couple heaps that were missing.
2023-11-06 14:07:21 -08:00
John Safranek 8049606f2e PR review: Fix potential memory leak when failing to parse a key of any type. 2023-11-06 14:07:21 -08:00
John Safranek 9bbfcf1a96 PR review: Update some std-C functions with the proper porting wrappers. 2023-11-06 14:07:21 -08:00
John Safranek 732aba4bc6 wolfSSH Client with OpenSSH-format Keys
1. Add two error codes for the new key format decoding.
2. Add in some better error and bound checking.
3. Fix ordering on a WOLFSSH_UNUSED and variable declaration.
4. Remove redundant ; from WOLFSSH_UNUSED function-like macro.
2023-11-06 14:07:21 -08:00
John Safranek 70aa287d78 wolfSSH Client with OpenSSH-format Keys
1. Move the KeySignature struct around in internal.c so it can be used
   for a couple tasks.
2. Add decoder for the OpenSSH-format keys.
3. Add an identification function for the new key.
4. Update ReadKey to handle the new format.
2023-11-06 14:07:21 -08:00
John Safranek 4d201d7b59
Merge pull request #609 from JacobBarthelmeh/command
make channel name size overridable and increase default to 4096
2023-11-04 21:01:38 -07:00
John Safranek f9aebbcd40
Merge pull request #611 from JacobBarthelmeh/sshd
truncate vsnprintf
2023-11-04 20:57:04 -07:00
John Safranek 2deee5103c
Merge pull request #613 from TakayukiMatsuo/zd16867
Fix index of signature part in case of RSA
2023-11-04 20:55:07 -07:00
JacobBarthelmeh 218a2fd898
Merge pull request #612 from ejohnstown/select-timeout
Echoserver Select Timeouts
2023-11-03 15:43:58 -06:00
TakayukiMatsuo 13c86631ee Fix index of signature part in case of RSA 2023-11-01 17:09:40 +09:00
John Safranek 66dc60853c
Echoserver Select Timeouts
A couple changes to keep the echoserver from spin-locking.

1. The SFTP worker should wait for data if the channel window is full.
   If the client isn't sending a window adjust, it might be because of a
   human time scale issue. New timeout is 60 seconds.
2. When the echoserver is waiting for something from the user and the
   select times out, wait a second instead.
2023-10-31 10:21:44 -07:00
JacobBarthelmeh fad4d71fa3 truncate vsnprintf 2023-10-31 07:14:02 -06:00
John Safranek 2685dc983b
Merge pull request #606 from falemagn/pull-reqs/fix-for-issue-605 2023-10-25 09:32:00 -07:00
David Garske a387aaf50e
Merge pull request #610 from ejohnstown/type-sizes
Configure Type Checking
2023-10-24 16:13:43 -07: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
JacobBarthelmeh ecae1d1519 make channel name size overridable and increase default to 4096 2023-10-23 09:47:52 -07:00
JacobBarthelmeh 173dfd9361
Merge pull request #608 from ejohnstown/thread-fix
Threading Fix
2023-10-23 10:35:38 -06:00
John Safranek 92669d0f1a
Threading Fix
1. The wolfSSL version number to check for the old threading code was
   v5.5.2, not v5.5.1.
2. A new wrapper was introduced around return for threading in what will
   be wolfSSL v5.6.4. Added that wrapper if it didn't exist.
3. Some other types for threading are added in v5.6.4, wolfSSH needs to
   use the old threading model if using wolfSSL v5.6.3.
2023-10-23 09:12:07 -07:00
Fabio b4858be16b Fix for #605: check for WS_WANT_READ too. 2023-10-20 14:06:39 +02:00
John Safranek 74cf1d4014
Merge pull request #603 from JacobBarthelmeh/sshd 2023-10-17 09:04:15 -07:00
JacobBarthelmeh e3637574dd remove unused ret value 2023-10-16 09:16:34 -06:00
JacobBarthelmeh 46d2017d76 fix reference to struct 2023-10-16 07:57:50 -06:00
JacobBarthelmeh f8de131e81 fix for shared socket ID between connections 2023-10-13 16:56:17 -06:00
John Safranek 7d816716b6
Merge pull request #593 from julek-wolfssl/ssh-zephyr 2023-10-02 14:14:04 -07:00
Juliusz Sosinowicz 37412ff50f Init zephyr support
- SSH
- SFTP
- SCP
2023-10-02 20:38:21 +02:00
John Safranek e5f4b692fb
Merge pull request #595 from wolfSSL/Espressif-test-update 2023-09-29 20:35:29 -07:00
John Safranek 37cb96c11b
Merge pull request #596 from JacobBarthelmeh/sshd 2023-09-29 20:34:44 -07:00
John Safranek a84df106f1
Merge pull request #597 from JacobBarthelmeh/sftp 2023-09-29 20:23:05 -07:00
JacobBarthelmeh 5780570880 limit additional nonblocking test 2023-09-29 16:12:21 -07:00
JacobBarthelmeh cb6088e339 check if rekeying in test 2023-09-29 15:14:27 -07:00
JacobBarthelmeh bbc9f9e157 add more test debug prints and better rekeying handling 2023-09-29 15:05:39 -07:00
JacobBarthelmeh 6ce5724ba9 fix speed of SFTP with SSHd when handling 'get' command 2023-09-29 13:34:16 -07:00
gojimmypi 9e3cebb4b0 add WOLFSSL_ESPIDF Espressif sections in test.h 2023-09-29 10:11:54 -07:00
JacobBarthelmeh 7578a7dc9b
Merge pull request #586 from ejohnstown/wolfssh-client
wolfSSH Client
2023-09-25 13:29:47 -06:00
John Safranek 53a4dea81a
wolfSSH Client
1. Fix build with enabling client and disabling terminal support.
2023-09-25 09:41:50 -07:00
John Safranek 2250f149b5 wolfSSH Client
1. Relabel many of the string functions with their compatibility wrappers.
2. Add command line options to the readme file.
2023-09-25 09:23:13 -07:00
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