205 Commits

Author SHA1 Message Date
Michael Rash
44d05a6916 interim commit for supporting multiple HMAC digest types (# 45) 2013-03-07 23:14:48 -05:00
Michael Rash
39ca73a245 [test suite] added OpenSSL HMAC verification (closes #39) 2013-03-05 23:29:46 -05:00
Michael Rash
a09392b08d [test suite] better reporting of test title matching for valgrind coverage test 2013-03-03 17:56:02 -05:00
Michael Rash
5c182c1722 [test suite] added HMAC dual usage test 2013-03-03 16:21:46 -05:00
Michael Rash
d94513ee00 [test suite] started adding HMAC equivalent tests for all existing tests 2013-03-02 22:38:26 -05:00
Michael Rash
58ba7717e6 [test suite] minor category renaming 2013-03-02 14:13:47 -05:00
Michael Rash
1de684ab16 [test suite] minor spacing fix for hmac_access.conf file 2013-03-02 11:15:19 -05:00
Michael Rash
e4b6f56619 [test suite] minor valgrind coverage dir import status message 2013-03-02 11:10:48 -05:00
Michael Rash
a00de31f5a [test suite] use find_command() for valgrind path 2013-03-02 10:47:03 -05:00
Michael Rash
1e01d59c91 [test suite] added elapsed time display 2013-03-02 10:18:05 -05:00
Michael Rash
db7f3e2b3c Added fko_set_spa_encryption_mode() multi-call test to fko-wrapper 2013-02-25 16:50:12 -05:00
Michael Rash
bdb32cf634 added decryption tests to fko-wrapper 2013-02-21 22:47:40 -05:00
Michael Rash
74fe3c6330 added fko-wrapper memory validation test 2013-02-21 08:35:17 -05:00
Michael Rash
3ce7a77df3 added global function call number var for fko-wrapper 2013-02-21 08:34:36 -05:00
Michael Rash
52f40fea3c added 'clean' stanza for fko-wrapper Makefile 2013-02-21 08:33:36 -05:00
Michael Rash
0ae954cb17 completed fko_wrapper Rijndael encryption usage 2013-02-20 23:06:40 -05:00
Michael Rash
c70ad5f12f added fko-wrapper Makefile 2013-02-20 21:05:47 -05:00
Michael Rash
e4a5b79750 Added fko-wrapper that the test suite will be able to use for valgrind operations
The fko_wrapper.c code is designed to call libfko functions multiple times in
order to allow valgrind to test re-execution conditions.  This ensures that
libfko code frees memory from previous calls before leaking memory.
2013-02-20 21:00:46 -05:00
Michael Rash
33e1c19bb2 Make sure valgrind is stopped after each test in --enable-valgrind mode, closes #38
This commit uses pgrep + killall (if available) to ensure that valgrind is not
running after each test.
2013-02-20 20:45:40 -05:00
Michael Rash
6a475bbe54 Continued atoi() replacement with strtol() wrapper (issue #21)
This commit replaces a few additional atoi() calls with the strtol() wrapper
function, and also fixes a bug where access SOURCE IP/mask combinations would
not be accepted when the string length was a long as something like
'123.123.123.123/255.255.255.255'.
2013-02-18 22:22:44 -05:00
Michael Rash
934e676053 minor cleanup to put --enable-all flags in one place 2013-02-18 19:22:48 -05:00
Michael Rash
aab3ba3b0c added --save-args-file and corresponding tests to the fwknop client 2013-02-14 22:50:14 -05:00
Michael Rash
280dbbfe10 added test for client --save-packet <file> argument 2013-02-12 23:26:08 -05:00
Michael Rash
4daedde364 updated untested function list for Linux systems 2013-02-12 22:18:16 -05:00
Michael Rash
67c09c8a1f Added test-coverage/README file 2013-02-12 22:08:42 -05:00
Michael Rash
f14fb4cb76 use same test execution strategy for --enable-profile-coverage-check as --enable-valgrind 2013-02-12 22:06:35 -05:00
Michael Rash
98ed91a36f updated ownership determination to use the test suite owner instead of the configure script 2013-02-11 23:17:52 -05:00
Michael Rash
b820bbbe4b Minor memory leak bug fix in --rotate-digest-cache mode
This commit fixes a minor memory leak for the digest cache file path in
--rotate-digest-cache mode in the replay_cache_init() function.  The leak was
caught by valgrind, and a new test was added to the test suite for it.  Here
is the valgrind warning:

==29021== 21 bytes in 1 blocks are definitely lost in loss record 2 of 2
==29021==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==29021==    by 0x1103AA: replay_cache_init (replay_cache.c:96)
==29021==    by 0x10BB8C: main (fwknopd.c:254)
2013-02-10 14:57:44 -05:00
Michael Rash
7face3eec9 ensure matching test file comparison for valgrind test 2013-02-02 22:37:17 -05:00
Michael Rash
7bfaee9aef Make valgrind test fail for new flagged functions
In --enable-valgrind mode, this commit adds the ability to compare current test
result output with any previous test suite execution.  Whenever valgrind flags
a new function or if an existing flagged function has a greater number of
calls, then the final valgrind test will fail.  This allows a greater level of
valgrind validation to take place for new code in an automated fashion.  For
example, if a change to a piece of code introduces a memory handling problem of
the sort that valgrind can detect, then the final test will fail like so:

 # ./test-fwknop.pl --include "complete cycle.*HMAC" --enable-valgrind --test-limit 1

 [+] Starting the fwknop test suite...

     args: --include complete cycle.*HMAC --enable-valgrind --test-limit 1

     Saved results from previous run to: output.last/

 [Rijndael SPA] [client+server] complete cycle + HMAC (tcp/22 ssh)...pass (1)
 [valgrind output] [flagged functions] ..............................fail (2)

 [+] 1/1/2 tests passed/failed/executed

The newly flagged functions will be written to the corresponding test file:

 # cat output/2.test

 [+] TEST: [valgrind output] [flagged functions]~
 [-] 1.test (client) '[+] TEST: [Rijndael SPA] [client+server] complete cycle + HMAC (tcp/22 ssh)' --> NEW valgrind flagged function: main
 [-] 1.test (client) '[+] TEST: [Rijndael SPA] [client+server] complete cycle + HMAC (tcp/22 ssh)' --> NEW valgrind flagged function: fko_spa_data_final
 [-] 1.test (client) '[+] TEST: [Rijndael SPA] [client+server] complete cycle + HMAC (tcp/22 ssh)' --> NEW valgrind flagged function: strdup
 [-] 1.test (client) '[+] TEST: [Rijndael SPA] [client+server] complete cycle + HMAC (tcp/22 ssh)' --> NEW valgrind flagged function: fko_new
 [-] 1.test (client) '[+] TEST: [Rijndael SPA] [client+server] complete cycle + HMAC (tcp/22 ssh)' --> NEW valgrind flagged function: fko_encrypt_spa_data
 [-] 1.test (client) '[+] TEST: [Rijndael SPA] [client+server] complete cycle + HMAC (tcp/22 ssh)' --> NEW valgrind flagged function: fko_encode_spa_data
 [-] 1.test (client) '[+] TEST: [Rijndael SPA] [client+server] complete cycle + HMAC (tcp/22 ssh)' --> NEW valgrind flagged function: fko_calculate_hmac
 [-] 1.test (client) '[+] TEST: [Rijndael SPA] [client+server] complete cycle + HMAC (tcp/22 ssh)' --> NEW valgrind flagged function: fko_set_username
 [-] 1.test (client) '[+] TEST: [Rijndael SPA] [client+server] complete cycle + HMAC (tcp/22 ssh)' --> NEW valgrind flagged function: fko_set_rand_value
 [-] 1.test (client) '[+] TEST: [Rijndael SPA] [client+server] complete cycle + HMAC (tcp/22 ssh)' --> NEW valgrind flagged function: fko_set_spa_message
 [-] 1.test (client) '[+] TEST: [Rijndael SPA] [client+server] complete cycle + HMAC (tcp/22 ssh)' --> NEW valgrind flagged function: set_digest
 [-] 1.test New and/or greater number of valgrind flagged function calls
2013-02-02 22:06:45 -05:00
Michael Rash
4824b74d93 bug fix for iptables duplicate rules test to account for rules that may have a different time stamp 2013-01-31 22:19:21 -05:00
Michael Rash
6d233a9427 make sure test message strings are unique across all tests 2013-01-31 21:20:04 -05:00
Michael Rash
fa56f951b4 [test suite] bug fix for 'set_legacy_iv' mode in perl_fko_module_complete_cycle() 2013-01-29 21:57:38 -05:00
Michael Rash
efe6e9f23b more legacy IV mode tests with the perl FKO module 2013-01-27 22:22:52 -05:00
Michael Rash
4cb139c674 added fuzzing test counters with summary output 2013-01-27 20:37:48 -05:00
Michael Rash
2ecb278d8e added legacy IV tests for perl FKO client -> C server 2013-01-27 14:18:25 -05:00
Michael Rash
0109d64e54 added encryption_mode() support to perl FKO module 2013-01-27 14:03:26 -05:00
Michael Rash
e7eb02f82d Maintain backwards compatibility with old "zero padding" code
[libfko] Added the ability to maintain backwards compatibility with the
now deprecated "zero padding" strategy in AES mode that was a hold over
from the old perl fwknop implementation.  This enables the backwards
compatiblity tests to continue to pass in the test suite.
2013-01-27 13:18:29 -05:00
Michael Rash
8a5b700c30 openssl tests to use '-pass file:' method for setting passphrase 2013-01-27 10:54:20 -05:00
Michael Rash
1618dc2a7c minor typo spelling fix 2013-01-26 20:45:56 -05:00
Michael Rash
1d35c33d52 [test suite] added --enable-openssl-checks
Added --enable-openssl-checks to send all SPA packets encrypted via libfko
through the OpenSSL library to ensure that the libfko usage of AES is always
compatible with OpenSSL.  This ensures that the fwknop usage of AES is properly
implemented as verified by the OpenSSL library, which is a frequently audited
high profile crypto engine.  If a vulnerability is discovered in OpenSSL and a
change is made, then the --enable-openssl-checks mode will allow the test suite
to discover this in a automated fashion for fwknop.
2013-01-25 21:44:24 -05:00
Michael Rash
fbbcae3a0d [libfko] Don't trundate > 16 byte Rijndael keys
Significant bug fix to honor the full encryption key length for
user-supplied Rijndael keys > 16 bytes long.  Previous to this bug fix,
only the first 16 bytes of a key were actually used in the encryption/
decryption process even if the supplied key was longer.  The result was
a weakening of expected security for users that had keys > 16 bytes,
although this is probably not too common.  Note that "passphrase" is
perhaps technically a better word for "user-supplied key" in this
context since Rijndael in CBC mode derives a real encryption/decryption
key from the passphrase through a series of applications of md5 against
the passphrase and a random salt.  This issue was reported by Michael T.
Dean.  Closes issue #18 on github.
2013-01-22 22:20:54 -05:00
Michael Rash
6c72e7a908 added test for b0a4c045e6862e4359fe6530934f456a2e61703d (ensure iptables rules not duplicated) 2013-01-20 18:51:34 -05:00
Michael Rash
160a9e5565 perl FKO module HMAC compatibility 2013-01-20 14:27:27 -05:00
Michael Rash
fc4825b331 added backwards compatibility test for 2.0.4 client->server 2013-01-19 18:17:29 -05:00
Michael Rash
47ea800889 merged in fwknop-2.0.4 changes 2013-01-18 17:25:16 -05:00
Michael Rash
59fe04787b [test suite] minor 're-run make' bug fix for perl FKO module installation 2012-12-09 15:25:14 -05:00
Michael Rash
a673406ebd [test suite] updated fuzzing tests to allow usernames with '.' chars 2012-12-08 20:58:17 -05:00
Michael Rash
05d4299de1 made compilation warning check case-insensitive 2012-12-07 14:53:27 -05:00
Michael Rash
fe8ac98004 bug fix for firewall rule deletion check in backwards compatibility tests on FreeBSD and OpenBSD 2012-11-21 21:29:26 -05:00