[libfko] for fuzzing purposes, added fko_set_encoded_data() to bypass encryption and authentication for SPA payloads
[test suite] add --enable-fuzzing-interfaces, fix profile coverage file handling
[test suite] add python SPA packet payload fuzzer
[libfko] fix double free bug in SPA parser

This commit fixes a double free condition discovered through the new
python SPA payload fuzzer.  This bug could be triggered in fwknopd with
a malicious SPA payload but only when GnuPG is used.  When Rijndael is
used for SPA packet encryption, this bug cannot be triggered due to an
length/format check towards the end of _rijndael_decrypt().  It should
be noted that only a person in possession of the correct encryption and
authentication GnuPG keys could trigger this bug.
[test suite] python fuzzer additional tests
[test suite] support multiple initial SPA payloads in the python fuzzer
[test suite] add command mode SPA payload and splicing tests to python fuzzer
[test suite] python fuzzer - break out fuzzing sections into dedicated functions
[test suite] python fuzzer - add fuzzing fields to original fields (interim commit)
[test suite] python fuzzer - account for base64 strings that have stripped '=' chars
[test suite] libfko wrapper is already called in Rijndael tests
[test suite] python fuzzer - more field length variations to hit MAX_SPA_MESSAGE_SIZE
[libfko/test suite] add the FUZZING_INTERFACES macro

Add a new fko_set_encoded_data() function gated by #define
FUZZING_INTERFACES to allow encryption and authentication to be bypassed
for fuzzing purposes (and only fuzzing purposes).  The fko-wrapper code
has been extended to process data in the
test/fko-wrapper/fuzz_spa_payloads file, which is created by the new
python fuzzer.  Typical workflow is:

$ cd test/fko-wrapper
$ ../spa_fuzzer.py > fuzz_spa_payloads
$ make fuzzing

(as root):

./test-fwknop.pl  --enable-profile-coverage --enable-fuzzing-interfaces --enable-all --include wrapper

[+] Starting the fwknop test suite...

    args: --enable-profile-coverage --enable-fuzzing-interfaces --enable-all --include wrapper

    Saved results from previous run to: output.last/

    Valgrind mode enabled, will import previous coverage from:
        output.last/valgrind-coverage/

[+] Total test buckets to execute: 2

[Rijndael] [fko-wrapper] multiple libfko calls (with valgrind)......pass (1)
[Rijndael] [fko-wrapper] multiple libfko calls......................pass (2)
[profile coverage] gcov profile coverage............................pass (3)
[valgrind output] [flagged functions] ..............................pass (4)

    Run time: 5.85 minutes

[+] 0/0/0 OpenSSL tests passed/failed/executed
[+] 0/0/0 OpenSSL HMAC tests passed/failed/executed
[+] 4/0/4 test buckets passed/failed/executed
Merge branch 'spa_encoding_fuzzing'
[test suite] significant test coverage update

This commit adds a lot of test coverage support as guided by gcov +
lcov.

Also added the --no-ipt-check-support option to fwknopd (this is only
useful in practice on older Linux distros where 'iptables -C' is not
available, but it helps with test coverage).
[server] bug fix to handle SPA packets via http