The filename of the `WS_SFTPNAME` could be freed in this function upon
an error, but it is not set to `NULL`, so when
`wolfSSH_SFTPNAME_free` is called, a double-free occurs.
Found when working on ZD 16290.
1. By default, soft disable AES-CBC. It isn't offered as a default
encrypt algorithm, but may be set at runtime.
2. Add guard where AES-CBC can be added back as a default.
3. Add option to example client to run it with a custom encrypt
algorithm list.
4. In the client, add macro to add items to the arg lists while checking
the number of items in the list.
* `keyboardAuthCb` was not initalized correctly, meaning we could
enable the mode without callback.
* `SendUserAuthKeyboardRequest` didn't check `keyboardAuthCb` for
`NULL`.
* `DoUserAuthInfoResponse` left `authData` partially uninitialized.
* `DoUserAuthInfoResponse` new checks that KB auth is in progress.
1. Snip out some extraneous states from the server handshake tracking
for accept.
2. Change sending the keyboard interactive info response to a reaction
to a request.
1. When making a longname, mask the permission file type bits and check
it being a link.
2. Mask the permission bits the same way for checking the item being a
directory.
1. Add curve25519-sha256@libssh.org back to the list of key exchange
algorithms.
2. Treat curve25519-sha256@libssh.org as an alias for curve25519-sha256.
3. Remove the reference to ID_ECDH_SHA2_ED25519 from the list of algo
IDs. It isn't actually a thing.
FATFS compiling is currently broken due to several reasons. This fixes:
* Bad parameter count for `WRENAME`
* Missing `WFFLUSH` define
* `WOLFSSH_STOREHANDLE` required for `WOLFSSH_FATFS` to work
* Conflict when `NO_FILESYSTEM` is defined for wolfSSL and
`WOLFSSH_FATFS` is defined by wolfSSH
* Function called that can't be used with `WOLFSSH_FATFS`
* Functions defined but not used with `WOLFSSH_FATFS`
* Function parameters defined but not used
SCP on the server side would get an EAGAIN around the 128KB mark, which
would trigger an error. That error in-turn would cause two attempts to
close the file, which would segfault.
Also fix inverted error return status on scpclient.
This adds the `diffie-hellman-group16-sha512` key exchange and
`hmac-sha2-512` mac support.
Echoserver can now take `-x` for key exchange and `-m` for mac setting,
and `-c` for cipher so that this can be used in the test suite.
This implements Keyboard-Interactive authentication.
Adds an additional callback set by `wolfSSH_KeyboarAuthPrompts()` which
will set a callback in the server to ask the application to provide the
prompt details for the client.