Commit Graph

272 Commits

Author SHA1 Message Date
Tobias Brunner da9e4fa04b lgtm: Build external dependencies for a more complete analysis
The build system is a bit limited, only the repository directory and
LGTM_WORKSPACE is writable.  sudo doesn't work at all, for others we
don't have enough permission.
2020-01-30 17:12:48 +01:00
Tobias Brunner ed8430630f travis: tpm2-tss switched the default crypto backend to OpenSSL with 2.2.0 2020-01-30 15:37:45 +01:00
Tobias Brunner c9a3430368 travis: Trigger code review on lgtm.com
Only the master (daily) and pull requests are scanned automatically.
2020-01-30 15:37:45 +01:00
Tobias Brunner 3be430cc13 travis: Build on ARM64, IBM Power and IBM Z architectures
IBM Z is big-endian, IBM Power runs in little-endian mode.

Botan requires a fix for issues with GCC and amalgamation enabled (target
pragma ‘*’ is invalid) on ARM64 and IBM Power, while wolfSSL can't be
compiled successfully on IBM Z without an additional patch.

libunwind is not available for x390x, but since we explicitly disable
such backtraces it's not necessary anyway.
2020-01-22 15:10:09 +01:00
Tobias Brunner b0b928dd0a Use Botan 2.13.0 for tests 2020-01-16 08:30:47 +01:00
Tobias Brunner 6352954807 travis: Run python tests with tox 2020-01-14 15:27:06 +01:00
Tobias Brunner 282c57b131 travis: Bump wolfSSL to 4.3.0 2020-01-13 15:49:57 +01:00
Tobias Brunner 83c8f887d9 Revert "travis: Add a workaround for a bug regarding libtool installed via Homebrew"
This reverts commit 1806ba0890 as the
workaround is not required anymore and now actually fails because
pre-installed tools have a dependency on libtool.
2019-12-19 11:42:12 +01:00
Tobias Brunner 8346db09dd travis: Bump wolfSSL to 4.2.0 2019-10-23 17:50:20 +02:00
Tobias Brunner 393e39a1bc travis: Switch to the Ubuntu 18.04 (bionic) image for tests
Do two full build tests on 16.04 (xenial) and the two for OpenSSL 1.0
also run there.  Since 18.04 ships OpenSSL 1.1.1, which conflicts with
our custom built version, we skip that until OpenSSL 3.0 is released.
A workaround is required for an issue with sonarqube on bionic.
2019-10-21 13:58:12 +02:00
Tobias Brunner 9cc24ca39e Use Botan 2.12.1 for tests 2019-10-14 11:43:58 +02:00
Tobias Brunner 0736882678 Use Botan 2.12.0 for tests 2019-10-07 14:31:40 +02:00
Tobias Brunner 936d101d99 travis: Bump tpm2-tss to 2.3.1 2019-09-26 11:57:52 +02:00
Tobias Brunner 55879d3200 travis: Bump OpenSSL to 1.1.1d 2019-09-24 16:38:56 +02:00
Tobias Brunner 17c9972252 Fixed some typos, courtesy of codespell 2019-08-28 14:03:41 +02:00
Tobias Brunner d6949b15ab cirrus: Run automated tests on FreeBSD via Cirrus CI 2019-08-28 11:10:49 +02:00
Tobias Brunner f00c9f91a3 travis: Bump wolfSSL to 4.1.0 2019-08-12 14:25:56 +02:00
Tobias Brunner de07b77442 Use Botan 2.11.0 for tests 2019-07-02 11:35:21 +02:00
Tobias Brunner 6cc0688e1e travis: Bump OpenSSL to 1.1.1c 2019-05-28 15:28:06 +02:00
Tobias Brunner 91dce6e876 travis: Build OpenSSL 1.1.1 without compatibility layer for older versions
Configuring 1.1.1 is not actually possible with 1.1.1b, not sure if
that's on purpose.
2019-05-08 14:27:19 +02:00
Tobias Brunner 885c05b0da travis: Make sure crypto plugins are actually loaded 2019-05-08 14:27:13 +02:00
Tobias Brunner d50bb81c7d travis: Run tests against wolfSSL
Check for wolfssl/options.h because if it isn't included, checking other
headers will trigger a warning about hardening the wolfSSL build, which
will cause the check to fail with -Werror.

If the file doesn't exist because user_settings.h is used, the check may
be skipped by configuring with `ac_cv_header_wolfssl_options_h=yes`.
2019-04-24 12:26:08 +02:00
Tobias Brunner f36e375578 travis: Check for unignored build artifacts after the build 2019-04-04 18:40:22 +02:00
Tobias Brunner f43302dc10 Use Botan 2.10.0 for tests 2019-04-01 11:01:46 +02:00
Tobias Brunner 8cafef2e10 travis: OpenSSL version bump 2019-02-26 16:03:28 +01:00
Tobias Brunner 6639288b1a Use Botan 2.9.0 for tests 2019-01-16 17:11:46 +01:00
Tobias Brunner 2a58030b78 travis: Use the latest OpenSSL release for unit tests
But also run the unit tests against the 1.0 version installed with
Ubuntu 16.04.
2018-11-30 16:03:10 +01:00
Tobias Brunner d222699c78 dh-speed: Add curve448 keyword 2018-11-30 14:54:33 +01:00
Tobias Brunner 8a4f110243 travis: Use ccache for MinGW builds 2018-11-21 14:37:56 +01:00
Tobias Brunner 187ab29849 travis: Use two threads to analyze C code with SonarQube
On Nov 12, the scanner was updated and now takes a lot more time (about
3 times as much).  Using two threads reduces it a bit (by about 25%).
Using even more threads doesn't help or even increases the time again.
2018-11-21 14:37:56 +01:00
Tobias Brunner 248f34918f travis: Don't build TSS2 as root
This might prevent ccache from overwriting files in later builds.
2018-11-21 14:36:38 +01:00
Tobias Brunner cfdab423fb travis: Build on Ubuntu Xenial (16.04) 2018-11-21 14:36:38 +01:00
Tobias Brunner b959532f68 scripts: Include botan in dh_speed.sh and pubkey_speed.sh
Also, using sudo is not necessary in dh_speed.sh.
2018-10-31 15:50:36 +01:00
Tobias Brunner ae271810dc Use Botan 2.8.0 for tests 2018-10-30 15:08:31 +01:00
Tobias Brunner 4bcc4bacd4 botan: Add support for Ed25519 keys 2018-10-26 11:06:45 +02:00
Tobias Brunner 7b46089ea7 travis: Build tmp2-tss from sources 2018-10-26 09:55:07 +02:00
Tobias Brunner d4068a1dd8 travis: Don't build botan twice if installing dependencies is retried 2018-10-02 16:14:20 +02:00
Tobias Brunner d601058a26 settings-test: Remove unused variable in printf() call 2018-09-17 18:51:43 +02:00
Tobias Brunner bbe72f97f9 travis: Silence `git checkout` for Botan 2018-09-12 17:18:15 +02:00
Tobias Brunner 1bbb736edc travis: Use a fix revision for Botan and speed up subsequent builds via ccache 2018-09-12 16:25:00 +02:00
Tobias Brunner 24af02b00d travis: Use amalgamation build for Botan and build outside our source tree
This merges all source files into botan_all.cpp, which reduces the build
time by almost 50%. Building outside the strongSwan tree avoids analyzing
Botan with sonarqube.
2018-09-12 16:25:00 +02:00
Tobias Brunner e5d5277467 travis: Build botan plugin also in the tests that build everything 2018-09-12 16:25:00 +02:00
Tobias Brunner 9ee23d5efa travis: Add Botan build
We build Botan directly from the master branch until 2.8.0 is released.
2018-09-12 16:25:00 +02:00
Tobias Brunner 66c4735f99 dumm: Remove the Dynamic UML Mesh Modeler framework
This has been pretty much defunct for several years (requires a
specially patched UML-enabled guest kernel).
2018-09-12 15:53:55 +02:00
Tobias Brunner 71dca60c31 settings: Don't allow dots in section/key names anymore
This requires config changes if filelog is used with a path that
contains dots. This path must now be defined in the `path` setting of an
arbitrarily named subsection of `filelog`.  Without that change the
whole strongswan.conf file will fail to load, which some users might
not notice immediately.
2018-09-11 18:30:18 +02:00
Tobias Brunner e2d8833f2b travis: Add sonarcloud build 2018-09-11 18:18:43 +02:00
Tobias Brunner 5c38a5ea83 Remove ITA references 2018-08-31 11:11:12 +02:00
Tobias Brunner 6ccfeeb1d8 travis: Fix vici Python tests when using Clang
For some reason the clang binary that's installed in an uncommon
directory could not be found anymore when installing packages via pip for
the last couple of builds. While the directory is obviously contained in PATH,
using `sudo -E` didn't help. So we now install the Python packages in the
user's home directory to avoid having to use sudo.
2018-08-06 15:59:09 +02:00
Tobias Brunner ca3c7b7ea6 settings-test: Add option to use the frontend to display the settings
This resolves references and redefined values. It currently doesn't work
properly if section names contain dots.
2018-06-27 14:19:35 +02:00
Andreas Steffen 75181f4836 fuzz: Added PB-TNC fuzzer 2018-06-12 21:47:40 +02:00
Andreas Steffen 508b308768 fuzz: Added PA-TNC fuzzer 2018-06-12 21:47:39 +02:00
Tobias Brunner 1b67166921 Unify format of HSR copyright statements 2018-05-23 16:32:53 +02:00
Tobias Brunner d8eb1049d7 travis: Disable NM build until we run on a newer image that provides libnm
Ubuntu 16.04 (xenial) might soon be available but it's not yet supported
officially.
2017-12-22 16:13:09 +01:00
Tobias Brunner fd9edf7f31 travis: Disable warning that causes a false positive in Xcode 8.3+
Xcode 8.3, to which there recently was a switch, spits out a warning for
the potentially unaligned access to ip6_plen in ip-packet.c, which we
explicitly read via untoh16() hence the access to that pointer is not
actually unaligned.  It seems the compiler is not able to determine that
there is no unaligned access even though the function is defined in the
header and marked inline.
2017-12-20 16:08:21 +01:00
Tobias Brunner de280c2e03 private-key: Add optional parameters argument to sign() method 2017-11-08 16:48:10 +01:00
Tobias Brunner a413571f3b public-key: Add optional parameters argument to verify() method 2017-11-08 16:48:10 +01:00
Tobias Brunner 08e2401653 scripts: Add -d option to oid2der to decode DER encoded OIDs 2017-11-02 10:02:26 +01:00
Tobias Brunner 7421884da1 travis: Use the same ASAN_OPTIONS as used by OSS-Fuzz 2017-08-15 10:35:20 +02:00
Tobias Brunner 1ce2721d90 travis: Run fuzz targets 2017-08-15 10:35:20 +02:00
Tobias Brunner 096626286a appveyor: Build against OpenSSL
This is mainly for the RNG needed for the exchange tests.
2017-07-28 11:23:23 +02:00
Tobias Brunner 6eb7dd11ec appveyor: Run tests on AppVeyor Windows containers
We can't enable leak detective as it is so slow then that we run into a
timeout (60 minutes).
2017-07-28 11:18:17 +02:00
Tobias Brunner 157742be7d fuzz: Add fuzzing boilerplate 2017-05-23 18:29:11 +02:00
Tobias Brunner 93700d93fa travis: aikpub2 was removed, no need to disable it anymore 2017-03-23 18:29:18 +01:00
Tobias Brunner 23c05d86de travis: Build Windows-specific plugins
The plugins can only be built on x64 as the MinGW headers on Ubuntu 12.04,
which we have to use for x86 due to another issue with MinGW, are too old.
2017-03-23 18:29:18 +01:00
Tobias Brunner 42f7c98980 travis: Create coverage report via codecov.io 2017-03-15 10:19:02 +01:00
Tobias Brunner 1da567734f libipsec: Fix Windows build via MinGW
Fixes #2118.
2017-01-25 17:12:30 +01:00
Martin Willi 2ac95123bb dh-speed: Compare the shared secrets for equality after test 2016-11-14 16:20:51 +01:00
Martin Willi 0ab854789d dh-speed: Include the get_my_public_value() call in public exponent timing
This fixes results where a DH backend does not generate the public value
in the constructor internally.
2016-11-14 16:20:51 +01:00
Martin Willi 053275150b dh-speed: Add an identifier to test curve25519 performance 2016-11-14 16:20:51 +01:00
Tobias Brunner 8486b3b438 travis: Use a more recent OS X image
Using the xcode8 image does not work currently (libcurl is not found).
2016-09-27 09:19:34 +02:00
Tobias Brunner 39d544d56e travis: Run 32-bit Windows build on precise (12.04) image
That's required due to a bug in MinGW 3.1.0 that's shipped with trusty.
2016-09-20 15:33:01 +02:00
Tobias Brunner 003fec52e0 travis: Properly pass back result of make
Fixes: 4e8f5a189c ("travis: Add apidoc check")
2016-09-20 15:32:28 +02:00
Tobias Brunner 44280a1901 travis: Don't disable connmark and forecast plugins anymore
They build fine on Ubuntu 14.04.
2016-09-20 15:32:28 +02:00
Tobias Brunner d8f27ba679 maemo: Remove unused plugin 2016-09-15 18:33:52 +02:00
Tobias Brunner 4e8f5a189c travis: Add apidoc check
This requires at least Ubuntu 14.04 (the Doxygen version in 12.04 has some
issues with our Doxyfile and prints lots of warnings).
2016-09-05 16:58:29 +02:00
Tobias Brunner 94a6998608 travis: Use Trusty beta image 2016-09-05 16:58:29 +02:00
Tobias Brunner 1806ba0890 travis: Add a workaround for a bug regarding libtool installed via Homebrew 2016-08-25 17:21:02 +02:00
Tobias Brunner e4fd163a5a travis: Disable tss-tss2 and aikpub2 but enable TrouSerS and build aikgen
Ubuntu 12.04 does not provide libtss2-dev.
2016-06-28 11:30:25 +02:00
Andreas Steffen b12c53ce77 Use standard unsigned integer types 2016-03-24 18:52:48 +01:00
Tobias Brunner e36b1e2edb travis: Enable OS X build 2015-11-23 11:42:52 +01:00
Tobias Brunner 6ef4668626 pki: Add --dn command to extract the subject DN of a certificate 2015-08-17 11:34:01 +02:00
Tobias Brunner 18662e9694 scripts: Add script to extract the ASN.1 subject DN from a certificate
This can be useful if the subject DN has to be configured with the
asn1dn: prefix in ipsec.conf (e.g. because the actual encoding can't be
created by strongSwan's string parser/encoder).
2015-08-17 11:29:11 +02:00
Andreas Steffen 9bb7307825 Fix timeattack script compilation under ARM 2015-06-05 12:09:38 +02:00
Martin Willi b821575093 crypt-burn: free() associated data after test 2015-05-04 13:24:33 +02:00
Martin Willi 3aa785507d travis: Run a gcrypt test with leak-detective
And also enable gcrypt in the all tests with leak-detective enabled.
2015-04-15 14:38:42 +02:00
Martin Willi 22d0c934cd crypt-burn: Support burning signers 2015-04-15 11:35:26 +02:00
Martin Willi 3935d812b7 crypt-burn: Add a encryption buffer command line argument 2015-04-15 11:35:25 +02:00
Martin Willi 466d560a33 crypt-burn: Set a defined key, as some backends require that 2015-04-15 11:35:25 +02:00
Martin Willi 5da79478ff crypt-burn: Refactor to separate burn methods 2015-04-15 11:35:25 +02:00
Martin Willi d5ce572d99 crypt-burn: Accept a PLUGINS env var to configure plugins to load 2015-04-15 11:35:25 +02:00
Martin Willi 9d6e952201 utils: Add a constant time chunk_equals() variant for cryptographic purposes 2015-04-14 12:02:48 +02:00
Martin Willi b833963270 utils: Add a constant time memeq() variant for cryptographic purposes 2015-04-14 11:51:54 +02:00
Martin Willi 39e1ddec2e scripts: Add a tool that tries to guess MAC/ICV values using validation times
This tool shows that it is trivial to re-construct the value memcmp() compares
against by just measuring the time the non-time-constant memcmp() requires to
fail.

It also shows that even when running without any network latencies it gets
very difficult to reconstruct MAC/ICV values, as the time variances due to the
crypto routines are large enough that it gets difficult to measure the time
that memcmp() actually requires after computing the MAC.

However, the faster/time constant an algorithm is, the more likely is a
successful attack. When using AES-NI, it is possible to reconstruct (parts of)
a valid MAC with this tool, for example with AES-GCM.

While this is all theoretical, and way more difficult to exploit with network
jitter, it nonetheless shows that we should replace any use of memcmp/memeq()
with a constant-time alternative in all sensitive places.
2015-04-14 11:51:54 +02:00
Martin Willi a777155ffe diffie-hellman: Add a bool return value to set_other_public_value() 2015-03-23 17:54:03 +01:00
Martin Willi 42431690e0 diffie-hellman: Add a bool return value to get_my_public_value() 2015-03-23 17:54:03 +01:00
Martin Willi 75a8457922 travis: Install pip to install pytest in "all" tests
This allows ./configure to detect py.test, and execute python unit tests we
provide in the vici python egg.
2015-03-18 14:29:45 +01:00
Martin Willi 83f0c22afe travis: Disable unwind backtraces regardless of LEAK_DETECTIVE option
While d0d85683 works around a crasher related to the use of libunwind, other
build hangs have been seen in the all test cases. Try to
--disable-unwind-backtraces to see if libunwind is really related to those
and if it fixes these issues.
2015-02-26 10:43:20 +01:00
Martin Willi 54d143ca37 travis: Disable forecast/connmark plugins in monolithic builds
Ubuntu 12.04 does not seem to provide a sane pkg-config for libiptc or libip4tc.
The monolithic build fails due to missing symbols, so disable it until we have
a newer Ubuntu release.
2015-02-24 12:25:23 +01:00
Martin Willi 2a8e351117 travis: Install iptables-dev for connmark plugin in "all" tests 2015-02-20 16:34:53 +01:00
Martin Willi 05a3f349a7 travis: Build-test updown and ext-auth plugins for Windows 2014-10-14 11:11:34 +02:00