aboutsummaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)AuthorFilesLines
2018-02-04cmake: Build ssh_server_fuzzer if enabledAndreas Schneider2-0/+13
Fixes T67 Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
2018-02-04tests: Added a fuzzer for the serverAlex Gaynor1-0/+101
Fixes T67 Signed-off-by: Alex Gaynor <alex.gaynor@gmail.com>
2018-01-10torture_pki_ed25519: Add tests for private key with passphraseAndreas Schneider1-0/+43
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
2018-01-10torture_pki_ecdsa: Add tests for private key with passphraseAndreas Schneider1-0/+42
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
2018-01-10torture_key: Add ecdsa keys with passphraseAndreas Schneider1-3/+35
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
2018-01-10torture_pki_dsa: Add tests for private key with passphraseAndreas Schneider1-0/+42
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
2018-01-10torture_pki_rsa: Add tests for private key with passphraseAndreas Schneider1-0/+42
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
2018-01-10pki_crypto: Fix private key generation with passwordAndreas Schneider3-3/+3
We need to specify a cipher when we generate a key with a password. OpenSSH uses aes_128_cbc, so we should use the same. Thanks to Julian Lunz for the report. Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
2018-01-10tests: Move torture keys to own fileAndreas Schneider11-335/+410
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
2018-01-10cmake: Move ed25519 tests into unix partAndreas Schneider1-1/+1
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
2018-01-10tests: Move rsa tests to own test fileAndreas Schneider3-523/+549
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
2018-01-10tests: Remove obsolete setup_both_keys()Andreas Schneider1-10/+0
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
2018-01-10tests: Move ed25519 functions to the right fileAndreas Schneider2-289/+308
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
2018-01-10tests: Move ecdsa tests to own test fileAndreas Schneider3-487/+497
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
2018-01-10tests: Move dsa tests to own test fileAndreas Schneider3-387/+439
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
2018-01-10tests: Move helper functions to a common fileAndreas Schneider4-70/+101
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
2018-01-10torture: Give sshd more time to start upAndreas Schneider1-1/+1
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
2018-01-04tests: Fix torture_pki with libcryptoAndreas Schneider1-1/+3
This stops asking for a passphrase on commandline. Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
2017-12-28add mbedtls crypto supportJuraj Vijtiuk11-6/+234
Summary: This patch adds support for mbedTLS as a crypto backend for libssh. mbedTLS is an SSL/TLS library that has been designed to mainly be used in embedded systems. It is loosely coupled and has a low memory footprint. mbedTLS also provides a cryptography library (libmbedcrypto) that can be used without the TLS modules. The patch is unfortunately quite big, since several new files had to be added. DSA is disabled at compile time, since mbedTLS doesn't support DSA Patch review and feedback would be appreciated, and if any issues or suggestions appear, I'm willing to work on them. Signed-off-by: Juraj Vijtiuk <juraj.vijtiuk@sartura.hr> Test Plan: * The patch has been tested with a Debug and MinSizeRel build, with libssh unit tests, client tests and the pkd tests. * All the tests have been run with valgrind's memcheck, drd and helgrind tools. * The examples/samplessh client works when built with the patch. Reviewers: asn, aris Subscribers: simonsj Differential Revision: https://bugs.libssh.org/D1
2017-12-21tests/client/algorithms: Respect global verbosity settingsJakub Jelen1-0/+3
Signed-off-by: Jakub Jelen <jjelen@redhat.com> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
2017-12-21tests/config: Verify LogLevel from config is appliedJakub Jelen1-0/+10
Signed-off-by: Jakub Jelen <jjelen@redhat.com> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
2017-12-21tests/config: Newly parsed optionsJakub Jelen1-3/+10
Signed-off-by: Jakub Jelen <jjelen@redhat.com> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
2017-12-21tests/config: Enable and disable authentication methodsJakub Jelen1-0/+80
Signed-off-by: Jakub Jelen <jjelen@redhat.com> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
2017-12-21tests/config: Verify known_hosts files are appliedJakub Jelen1-0/+26
Signed-off-by: Jakub Jelen <jjelen@redhat.com> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
2017-12-21tests: HostkeyAlgorithms passed from config to optionsJakub Jelen2-0/+32
Signed-off-by: Jakub Jelen <jjelen@redhat.com> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
2017-12-21config: Add CMake check for glob()Jakub Jelen1-1/+5
2017-12-21config: glob support for include with testNoName1151-0/+40
Signed-off-by: NoName115 <robert.kolcun@gmail.com> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
2017-12-15config: support for MACsJakub Jelen2-1/+14
Signed-off-by: Jakub Jelen <jjelen@redhat.com> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
2017-12-15tests/config: Text KexAlgorithms parsing in ssh_configJakub Jelen1-1/+5
Signed-off-by: Jakub Jelen <jjelen@redhat.com> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
2017-12-15tests/options: Verify key exchange algorithms are set properlyJakub Jelen1-0/+29
Signed-off-by: Jakub Jelen <jjelen@redhat.com> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
2017-12-15Add new optionsAris Adamantiadis1-0/+29
Pair-Programmed-With: Jakub Jelen <jjelen@redhat.com> Signed-off-by: Aris Adamantiadis <aris@0xbadc0de.be> Signed-off-by: Jakub Jelen <jjelen@redhat.com> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
2017-12-15tests: Temporarily build chroot_wrapperJakub Jelen2-1/+18
2017-12-15tests: Do not generate pcap file by defaultJakub Jelen1-1/+4
pcap file is generated by the processes writing to the sockets, which is not allowed for privilege-separated process in new OpenSSH servers (confined by seccomp filter). Signed-off-by: Jakub Jelen <jjelen@redhat.com> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
2017-12-15tests: Give server more time to startJakub Jelen1-1/+1
Signed-off-by: Jakub Jelen <jjelen@redhat.com> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
2017-12-15tests: Do not test blowfish ciphers with OpenSSH 7.6 and newerJakub Jelen2-0/+8
2017-11-09test: ssh_userauth_kbdint_setanswer() does not network interactionAndreas Schneider1-3/+1
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
2017-10-29torture_algorithms: deduplicate kex method passesJon Simons1-90/+49
Summary: Signed-off-by: Jon Simons <jon@jonsimons.org> Test Plan: * Re-ran the `torture_algorithms` test. Reviewers: asn Tags: #libssh Differential Revision: https://bugs.libssh.org/D8
2017-10-28Fix config.h includesAndreas Schneider27-1/+52
We need stdlib.h and string.h in priv.h for free() and memset(). Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
2017-09-11pkd_daemon.c: force close pkd_state.server_fd upon stopJon Simons1-0/+1
There's a race window between the accept loop's call to accept(2) and it checking `ctx.keep_going`. Forcefully close the server socket such that any raced `accept` ends up failing. Signed-off-by: Jon Simons <jon@jonsimons.org> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
2017-09-11pkd_daemon.c: split final close loop; wait for client to closeJon Simons1-2/+12
Sometimes, but not always, the pkd tests will fail because they close the socket at hand a bit too early for the client. The client in turn may exit non-zero when that happens. Split up the final close loop so that pkd waits to receive a channel close from the client, and then socket close, before finally returning. With this change I observe that tests are now passing in environments that would previously tickle the above race and fail. Signed-off-by: Jon Simons <jon@jonsimons.org> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
2017-09-11pkd_hello.c: fix return code upon test failureJon Simons1-4/+5
Signed-off-by: Jon Simons <jon@jonsimons.org> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
2017-09-11config: fix memory leak with repeated opcodesJon Simons1-1/+20
Fix a memory leak in the path where parsing returns early due to seeing a repeated opcode. A testcase is added which demonstrates the leak and fix with valgrind. Resolves CID 1374267. Signed-off-by: Jon Simons <jon@jonsimons.org>
2017-08-24ecdh: enable ecdh_sha2_nistp{384,521} kex methodsJon Simons2-2/+56
Summary: Based on Dirkjan's original patch series here: * https://www.libssh.org/archive/libssh/2015-08/0000029.html Here the changes are adapted for the current master branch, and expanded to include libgcrypt support. Co-Authored-By: Dirkjan Bussink <d.bussink@gmail.com> Signed-off-by: Jon Simons <jon@jonsimons.org> Test Plan: * Ran pkd tests for libcrypto and libgcrypt builds. * Ran client torture_algorithms.c tests for libcrypto and libgcrypt builds. * Tested across multiple libgcrypts ("1.6.3" and "1.7.6-beta"). Reviewers: aris, asn Reviewed By: asn Tags: #libssh Differential Revision: https://bugs.libssh.org/D7
2017-08-24ecdh: enable ecdh_sha2_nistp{384,521} kex methodsJon Simons2-2/+56
Summary: Based on Dirkjan's original patch series here: * https://www.libssh.org/archive/libssh/2015-08/0000029.html Here the changes are adapted for the current master branch, and expanded to include libgcrypt support. Co-Authored-By: Dirkjan Bussink <d.bussink@gmail.com> Signed-off-by: Jon Simons <jon@jonsimons.org> Reviewed-by: Andreas Schneider <asn@cryptomilk.org> Test Plan: * Ran pkd tests for libcrypto and libgcrypt builds. * Ran client torture_algorithms.c tests for libcrypto and libgcrypt builds. * Tested across multiple libgcrypts ("1.6.3" and "1.7.6-beta"). Reviewers: aris, asn Tags: #libssh Differential Revision: https://bugs.libssh.org/D7
2017-08-24torture_options: test the setting of ciphers and MACsNikos Mavrogiannopoulos1-0/+40
Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
2017-08-24tests: added unit test on including config filesNikos Mavrogiannopoulos2-0/+96
Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
2017-08-17tests: plug leak in torture_bind_options_import_keyJon Simons1-1/+2
Summary: Hello, this is a resend for a quick memory leak fix for one of the unit tests, originally sent to the mailing list here: * https://www.libssh.org/archive/libssh/2017-07/0000017.html Test Plan: * Before the fix and running the test with valgrind: ``` [simonsj@simonsj-lx5 : unittests] valgrind --leak-check=full ./torture_options >/dev/null ==93134== Memcheck, a memory error detector ==93134== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al. ==93134== Using Valgrind-3.10.0 and LibVEX; rerun with -h for copyright info ==93134== Command: ./torture_options ==93134== [ PASSED ] 10 test(s). [ PASSED ] 1 test(s). ==93134== ==93134== HEAP SUMMARY: ==93134== in use at exit: 80 bytes in 1 blocks ==93134== total heap usage: 977 allocs, 976 frees, 75,029 bytes allocated ==93134== ==93134== 80 bytes in 1 blocks are definitely lost in loss record 1 of 1 ==93134== at 0x4C28C20: malloc (vg_replace_malloc.c:296) ==93134== by 0x41BAB0: ssh_key_new (pki.c:107) ==93134== by 0x40DF90: torture_bind_options_import_key (torture_options.c:222) ==93134== by 0x4E3AA3A: cmocka_run_one_test_or_fixture (cmocka.c:2304) ==93134== by 0x4E3ACEA: cmocka_run_one_tests (cmocka.c:2412) ==93134== by 0x4E3B036: _cmocka_run_group_tests (cmocka.c:2517) ==93134== by 0x40E9E3: torture_run_tests (torture_options.c:276) ==93134== by 0x40DE68: main (torture.c:1100) ==93134== ==93134== LEAK SUMMARY: ==93134== definitely lost: 80 bytes in 1 blocks ==93134== indirectly lost: 0 bytes in 0 blocks ==93134== possibly lost: 0 bytes in 0 blocks ==93134== still reachable: 0 bytes in 0 blocks ==93134== suppressed: 0 bytes in 0 blocks ==93134== ==93134== For counts of detected and suppressed errors, rerun with: -v ==93134== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) ``` * And after: ``` [simonsj@simonsj-lx5 : unittests] valgrind --leak-check=full ./torture_options >/dev/null ==93294== Memcheck, a memory error detector ==93294== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al. ==93294== Using Valgrind-3.10.0 and LibVEX; rerun with -h for copyright info ==93294== Command: ./torture_options ==93294== [ PASSED ] 10 test(s). [ PASSED ] 1 test(s). ==93294== ==93294== HEAP SUMMARY: ==93294== in use at exit: 0 bytes in 0 blocks ==93294== total heap usage: 977 allocs, 977 frees, 75,029 bytes allocated ==93294== ==93294== All heap blocks were freed -- no leaks are possible ==93294== ==93294== For counts of detected and suppressed errors, rerun with: -v ==93294== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) ``` Reviewers: asn Reviewed By: asn Differential Revision: https://bugs.libssh.org/D3
2017-08-17pkd: a few improvements and fixupsJon Simons3-29/+58
Summary: Hello, resending this patch series for the `pkd` tests, originally sent to the mailing list here: * https://www.libssh.org/archive/libssh/2017-07/0000011.html Here are a few improvements and fixups for the `pkd` tests, including a new flag `-m` that can be used to run only certain subsets of the test passes. Jon Simons (5): pkd: rename AES192 cipher suite -> OPENSSHONLY pkd_daemon.c: mark `pkd_ready` field as volatile pkd: fixups for updated CMocka CMUnitTest struct pkd: refactor -t testname lookup-by-name pkd: support -m to match multiple tests tests/pkd/pkd_daemon.c | 2 +- tests/pkd/pkd_daemon.h | 1 + tests/pkd/pkd_hello.c | 84 +++++++++++++++++++++++++++++++++----------------- 3 files changed, 58 insertions(+), 29 deletions(-) -- Test Plan: * I've been using the new `-m` mode locally for a long time to run only certain groups of tests. * The CMocka struct fixes can be seen in the pkd output before and after: after, there are no more extraneous test output strings. * The fix for the `pkd_ready` field can be observed when building the libssh tests with `-Os` on a Debian system (before the fix, pkd would hang, after the fix, it runs as intended). Reviewers: asn Reviewed By: asn Tags: #libssh Differential Revision: https://bugs.libssh.org/D2
2017-07-18misc: relax fatal errors in ssh_analyze_bannerJon Simons1-21/+19
Relax the cases where `ssh_analyze_banner` fails to extract a major and minor version from banners which appear like OpenSSH banners. Update the tests to demonstrate that now a banner as might be sent by `ssh-keyscan(1)` ("SSH-2.0-OpenSSH-keyscan") no longer returns failure. Signed-off-by: Jon Simons <jon@jonsimons.org> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
2017-07-14tests: Fix endifAndreas Schneider1-1/+1
Ups. Signed-off-by: Andreas Schneider <asn@cryptomilk.org>