wolfSSH is a small, fast, portable SSH implementation, including support for SCP and SFTP.
 
 
 
 
 
 
Go to file
JacobBarthelmeh 00b6383b11 Merge pull request #19 from ejohnstown/fix-warning
fix scan-build warning on ConstantCompare
2016-10-07 11:07:06 -06:00
certs
examples Merge pull request #17 from ejohnstown/highwater 2016-10-05 17:07:10 -06:00
m4 wolfCrypt 2016-10-05 10:55:30 -07:00
scripts Add pre-commit test scripts like wolfSSL. 2016-10-03 15:52:38 -07:00
src 1. fix scan-build warning on ConstantCompare 2016-10-07 10:04:04 -07:00
test
wolfssh 1. fix scan-build warning on ConstantCompare 2016-10-07 10:04:04 -07:00
.gitignore
LICENSING
Makefile.am added a couple more missing files to the makefile 2016-07-20 16:22:22 -07:00
README.md
autogen.sh Add pre-commit test scripts like wolfSSL. 2016-10-03 15:52:38 -07:00
configure.ac

README.md

wolfssh

wolfSSL's Embeddable SSH Server

building

From the source directory run:

$ ./autogen.sh
$ ./configure
$ make
$ make check

The autogen.sh script only has to be run the first time after cloning the repository. If you have already run it or are using code from a source archive, you should skip it.

examples

The directory examples contains an echoserver that any client should be able to connect to. From the terminal run:

$ ./examples/echoserver/echoserver

From another terminal run:

$ ssh_client localhost -p 22222

The server will send a canned banner to the client:

CANNED BANNER
This server is an example test server. It should have its own banner, but
it is currently using a canned one in the library. Be happy or not.

Characters typed into the client will be echoed to the screen by the server. If the characters are echoed twice, the client has local echo enabled.

testing notes

After cloning the repository, be sure to make the testing private keys read- only for the user, otherwise ssh_client will tell you to do it.

$ chmod 0600 ./certs/key-gretel.pem ./certs/key-hansel.pem \
             ./certs/key-ecc.pem

Authentication against the example echoserver can be done with a password or public key. To use a password the command line:

$ ssh_client -p 22222 USER@localhost

Where the USER and password pairs are:

jill:upthehill
jack:fetchapail

To use public key authentication use the command line:

$ ssh_client -i ./certs/key-USER.pem -p 22222 USER@localhost

Where the user can be gretel or hansel.

coding standard

  1. Exceptions are allowed with good reason.

  2. Follow the existing style.

  3. Try not to shorthand variables, except for ijk as indicies.

  4. Lengths of arrays should have the array name followed by Sz.

  5. Single return per function.

  6. Check all incoming parameters.

  7. No gotos.

  8. Check all return codes. It feels a little tedious, but the preferred method is running checks against success. This way if a function returns an error, the code will drop to the end.

    ret = functionCall(parameter);
    if (ret == SUCCESS)
        ret = secondFunctionCall(otherParameter);
    if (ret == SUCCESS)
        ret = thirdFunctionCall(aParameter, anotherParameter);
    cleanUp();
    return ret;