When building wolfSSH with g++, it was complaining about type issues
with respect to the type enum wc_HashType. It was getting turned into a
byte and then back to an enum wc_HashType implicitly. It should never
have been a byte in the middle.
1. There were a couple spots during a large file transfer where the
client rekeying the session would interrupt the transfer and/or
reset the amount of file data transfered. Fixed that with a check
for WS_CHAN_RXD.
2. Added a build option to interrupt a file transfer after 2 minutes.
Large files will take longer.
1. Add guards around uses of algorithm names strings that shouldn't be
included if the algo is disabled.
2. Add a little more context to the error strings in the cert versions
of the signing functions.
1. Refactoring to remove the need for mp_int types and any of the math
functions from wolfCrypt. wolfCrypt provides APIs for generating and
verifying signatures and for checking keys, use them.
2. Add const to the pointers to the buffer in the Get functions used to
parse the data stream.
3. Named the parameters for the Get functions when adding const to the
prototypes in the header.
The test for wolfSSH_SFTP_SendReadPacket() expects to receive the
requested amount of data in response. The only guarantee is that up to
the requested amount of data is returned. Change the test so it checks
the return code is greater than 0, and less-than-equal-to the requested
amount.
1. Add some comments describing the constants WOLFSSH_MAX_SFTP_RW and
WOLFSSH_MAX_SFTP_RECV.
2. When the server processor receives a request for file data during a
file transfer, limit the amount of data sent to the client by the
value WOLFSSH_MAX_SFTP_RW.
1. Leave out the setup of the tcp_ready record when not using threading.
2. Don't change the echoserver directory when building for Integrity.
3. Change WEXIT to be a return(0) when building for Integrity.
4. The echoserver shouldn't call exit directly, it should save the
return_code server args and then return to the caller.
5. When using forwarding, don't exit if the address is IPv6, return an
error.
6. When exiting, close the listen file descriptor.
7. Reset myoptind to 0 before processing the options list.
1. For Integrity builds, err_sys should only printf.
2. For Integrity builds, WEXIT should be a return.
3. In the echoserver, add explicit WEXITs for the err_sys statements.
1. Regroup some of the test code inside the guards to disable it.
2. Remove the SFTP testing if single threaded is enabled.
3. Disable the testsuite if single threded is enabled.
1. Make whitespace in asserts consistent.
2. Make asserts consistent with wolfSSL's.
3. Added the pointer asserts.
4. Wrapper around abort() to disable it.
1. Remove the flag NO_MAIN_FUNCTION from the test tools.
2. For unit and api tests, follow the patter for the testsuite with its
NO_TESTSUITE_MAIN_DRIVER check.
1. Move ConvertHexToBin() and Base16_Decode() into test.h.
2. Add a description for the options in test.h.
3. Add a static to the hexDecode const array for Base16_Decode().
4. Add the check for options.h/user_settings.h to api and unit tests.
1. In the echoserver's user authentication function, the summary check was
refactored and the old code wasn't removed. A more strict compiler
noticed the code was never executed.
2. Moved the ret check variable to the section of the function where it
is used.
1. Move the test threading types and macros to the conditional threading
section of test.h and make them conditional on wolfSSL v5.5.1.
2. Alias WOLFSSL_THREAD as WOLFSSH_THREAD.
3. Update the THREAD_FUNC typdef to look more like a function pointer.
4. Add the user_settings.h/options.h include that is missing from
examples.
1. Rename the type struct Buffer as struct WOLFSSH_BUFFER.
2. Rename the function Receive() as ReceiveData().
3. Fix unused variable value.
4. Rename the I/O callback functions LastError() as wsErrno() and
TranslateReturnCode() as wsReturnCode(). LastError was conflicting
with something, and TRC was just long.
5. The logFunction callback pointer isn't used in non-debug builds, and
the compiler reported as such. Reference the variable to hush the
warning.
1. Rename TestsuiteTest() with wolfSSH prefix.
2. Add wolfSSH_TestsuiteTest to the testsuite.h header file.
3. Add check so main function to the testsuite can be left out of the build
with the flag NO_MAIN_FUNCTION.
1. Rename ApiTest() and UnitTest() with wolfSSH prefix.
2. Modify wolfSSH_ApiTest() and wolfSSH_UnitTest() to take argc and argv
parameters.
3. Add main functions to the unit and api tests, that can be left out of
the build with the flag NO_MAIN_FUNCTION.
1. Remove the DISTCLEANFILES variables from automake scripts. The items
they clean are already cleaned appropriately.
2. For application targets, move the local headers to the SOURCES lists
for the apps.
1. Fixing comments from review.
2. Use IdentifyKey in the function wolfSSH_ReadKey_buffer.
3. Modify BuildNameList to make a proper string and possibly return an
error code.
The echoserver will check the return on the shutdown function for
success and socket error. Socket error is for the peer already having
shut down their socket. This is mapped back to success so it shuts down
cleanly. Add this behavior to the API test client in the test for SFTP
recv read command test.
1. Allow user to add multiple server keys to the CTX up to a limit.
2. Clear the list of server's keys when releasing the CTX.
3. Update the API test case.
4. Server key algo list based on keys loaded.
5. Server uses key requested by client.
6. Change echoserver to load ECC and RSA key, -E option to select order.
7. Added a function to identify keys, and another to identify certs.
8. Added a function to add keys or certs to the list of keys and certs.
9. Fix return value for MAC Algo C2S match fail to the correct value.