Commit Graph

272 Commits

Author SHA1 Message Date
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
Martin Willi ab23a0f86a travis: Disable soup in "all" test
On Ubuntu 12.04, there seems to be a resource leak related to pthread keys
when initializing glib or related libraries more than once. With our repeated
initialization for libstrongswan tests, we hit the following error:

  Lib (gthread-posix.c): Unexpected error from C library during
  'pthread_key_create': Resource temporarily unavailable.

The problem is not reproducible on a newer Gnome stack, hence we disable the
glib based soup plugin until we have a more recent Ubuntu on Travis.
2014-09-24 17:35:16 +02:00
Martin Willi 575d3ab19a travis: Disable build of native systemd IKE daemon
Travis still uses Ubuntu 12.04, where no systemd libraries are available. Skip
systemd support on Travis until we have a more recent Ubuntu distribution.
2014-09-22 14:19:38 +02:00
Tobias Brunner 3986c1e3fd autoconf: Replace --disable-tools option with --disable-scepclient
Since using a separate option for pki this was the only tool that was still
enabled by that option.
2014-06-30 13:25:13 +02:00
Martin Willi fd372e13a2 travis: Add a Windows 32-bit variant build test 2014-06-06 16:28:28 +02:00
Martin Willi c572401b34 travis: Build "all" tests without Windows HTTP fetcher
We don't include it in the Windows build test either, as MinGW does not come
with -lwinhttp.
2014-06-04 16:34:16 +02:00
Martin Willi 4732e29a1d travis: Build "all" tests without Windows kernel backends 2014-06-04 16:32:12 +02:00
Martin Willi 9b7a2188d9 travis: Include socket backend in Windows build test 2014-06-04 16:31:09 +02:00
Martin Willi d62b2444bc travis: Build "all" tests without Windows socket backend 2014-06-04 16:31:09 +02:00
Martin Willi d930d18417 travis: Define a Windows build test using MinGW 2014-06-04 16:22:43 +02:00
Martin Willi 95e67e8d19 travis: Perform build tests with -Werror 2014-06-04 15:53:13 +02:00
Martin Willi c2c2c639af travis: Build "all" test without Windows specific charon-svc or dbghelp 2014-06-04 15:53:11 +02:00
Martin Willi 62dd8c3082 travis: Install libjson dependency for "all" tests 2014-06-03 10:16:33 +02:00
Tobias Brunner e34905ce7b scripts: Ignore settings-test script 2014-05-20 18:56:43 +02:00
Martin Willi 064fe9c963 enum: Return boolean result for enum_from_name() lookup
Handling the result for enum_from_name() is difficult, as checking for
negative return values requires a cast if the enum type is unsigned. The new
signature clearly differentiates lookup result from lookup value.

Further, this actually allows to convert real -1 enum values, which could not
be distinguished from "not-found" and the -1 return value.

This also fixes several clang warnings where enums are unsigned.
2014-05-16 15:42:07 +02:00
Tobias Brunner 5b64c04046 scripts: Add test script for settings_t 2014-05-15 12:03:07 +02:00
Martin Willi dba3c649da travis: --disable-aikgen in "all" tests
aikgen has a hard dependency on TrouSerS, which we currently don't have in the
travis build.
2014-05-07 14:12:13 +02:00
Martin Willi e15f64cc81 tls: Support a maximum TLS version to negotiate using TLS socket abstraction 2014-04-01 14:28:55 +02:00
Martin Willi ddf5222096 tls: Introduce a generic TLS purpose that accepts NULL encryption ciphers 2014-04-01 14:28:55 +02:00
Martin Willi e5d73b0dfa aead: Support custom AEAD salt sizes
The salt, or often called implicit nonce, varies between AEAD algorithms and
their use in protocols. For IKE and ESP, GCM uses 4 bytes, while CCM uses
3 bytes. With TLS, however, AEAD mode uses 4 bytes for both GCM and CCM.

Our GCM backends currently support 4 bytes and CCM 3 bytes only. This is fine
until we go for CCM mode support in TLS, which requires 4 byte nonces.
2014-03-31 15:56:12 +02:00
Tobias Brunner 29b7377530 travis: Run the "all" test case with leak detective enabled
But disable the gcrypt plugin, as it causes leaks.

Also disable the backtraces by libunwind as they seem to cause
threads to get cleaned up after the leak detective already has been
disabled, which leads to invalid free()s.
2014-03-27 10:52:45 +01:00
Tobias Brunner 6548f50cf9 travis: Use parallel build
Not sure if 4 jobs is optimal, but according to the docs each build host
has 1.5 virtual cores available (although "getconf _NPROCESSORS_ONLN"
returns 32, which is probably the number of real cores underneath), so
more jobs might not actually reduce the build time much more.
2014-03-20 18:48:13 +01:00
Tobias Brunner 316aa4b43b travis: Add tests for builtin printf hook implementation
We can't test Vstr as it does not properly handle negative int arguments
for custom format callbacks, so some of the enum tests would fail.
2014-03-20 15:49:05 +01:00
Tobias Brunner 60a0bb6767 travis: Install dependencies for each test dynamically
Since the installation of all packages alone takes several minutes this
should speed up some test cases.
2014-03-20 15:49:05 +01:00
Tobias Brunner d151cd283e Add Travis CI config and build script 2014-03-20 15:29:27 +01:00
Tobias Brunner 34d3bfcf14 lib: Add global config namespace 2014-02-12 14:34:31 +01:00
Tobias Brunner 7c4629060a aes-test: Fix compiler warnings from older versions of GCC 2013-12-19 11:02:23 +01:00
Tobias Brunner 0b47bb5377 pubkey_speed: Add missing plugins
The pkcs1 plugin is required to test the gmp/gcrypt plugins. Likewise,
the pem plugin is required when testing the openssl plugin.

Fixes #401.
2013-09-04 10:01:46 +02:00
Tobias Brunner f17322dccb pubkey_speed: sudo is not required
Also, refer to pubkey_speed properly when not being called from the same
directory.
2013-09-04 09:53:36 +02:00
Tobias Brunner f1d5d87619 pubkey_speed: Add header and fix usage 2013-09-04 09:53:36 +02:00
Tobias Brunner 2a7a9471dd aes-test: Rename crypt() as it conflicts with a library function on Mac OS X
unistd.h on Linux defines this only if _XOPEN_SOURCE is defined.
2013-08-30 08:51:09 +02:00
Andreas Steffen db4a072ca9 Added scripts/aes-test to .gitignore 2013-08-28 22:52:30 +02:00
Tobias Brunner 9455f8b386 aes-test: Support test vectors at the end of a file 2013-08-24 16:22:51 +02:00
Tobias Brunner 8972c72237 aes-test: Add script to test AES implementations according to AESAVS/GCMVS 2013-08-24 16:22:51 +02:00
Martin Willi 3b6d8855e8 scripts: link against librt only if required
With glibc, this seems to be the case for 2.17 and older versions only.
2013-08-08 09:12:52 +02:00
Martin Willi 62e1c80803 scripts: link malloc_speed against librt 2013-08-08 09:09:00 +02:00
Martin Willi 19cb07b890 automake: replace INCLUDES by AM_CPPFLAGS
INCLUDES are now deprecated and throw warnings when using automake 1.13.
We now also differentiate AM_CPPFLAGS and AM_CFLAGS, where includes and
defines are passed to AM_CPPFLAGS only.
2013-07-18 14:59:19 +02:00
Tobias Brunner b18a531715 plugin-loader: Removed unused path argument of load() method
Multiple additional search paths can be added with the add_path()
method.
2013-06-28 10:44:15 +02:00
Martin Willi 40f2a5306a scripts: add a simple test utility to do some malloc() benchmarking/profiling 2013-05-06 15:15:24 +02:00
Andreas Steffen 676e862487 fixed another printf statement 2013-04-09 15:16:49 +02:00
Andreas Steffen 1a185ae14b fixed printf statements 2013-04-08 22:21:14 +02:00
Martin Willi 3f4300ed1e Accept a certificate/key pair to use client authentication in tls_test 2013-04-02 16:09:17 +02:00
Tobias Brunner 51caeeb161 crypt_burn: Proper cleanup 2013-03-25 18:40:32 +01:00
Tobias Brunner d4f2f3dd7f crypt_burn: Fix loop condition for regular crypters 2013-03-25 18:40:31 +01:00
Reto Guadagnini d786cbda5c Implemented the resolver test script "dnssec" 2013-02-19 11:57:21 +01:00
Tobias Brunner f05b427265 Moved debug.[ch] to utils folder 2012-10-24 16:00:51 +02:00
Tobias Brunner 2e7cc07ecd Moved host_t and host_resolver_t to a new networking subfolder 2012-10-24 15:06:18 +02:00
Tobias Brunner 4c57c63062 Added possibility to register custom proposal keywords
Keyword lookup and registration are handled via the new lib->proposal object.
2012-09-13 15:44:46 +02:00
Tobias Brunner 995875210a Removed len argument from proposal_get_token()
Also use enumerators instead of lexparser.h to parse proposal strings.
2012-09-13 15:44:01 +02:00
Martin Willi 8217c099ce Add a tool to burn hashers 2012-07-17 17:32:08 +02:00
Martin Willi 3b96189a2a Add a return value to crypter_t.decrypt() 2012-07-16 14:53:38 +02:00
Martin Willi e35abbe588 Add a return value to crypter_t.encrypt 2012-07-16 14:53:37 +02:00
Martin Willi e2ed7bfd22 Add a return value to aead_t.encrypt() 2012-07-16 14:53:32 +02:00
Tobias Brunner f3af4969a7 Added GPL header to scripts 2012-06-29 16:51:29 +02:00
Tobias Brunner 79d5c4f06b Fixed return values of several functions (e.g. return FALSE for pointer types). 2012-05-31 17:39:04 +02:00
Martin Willi f8b2906929 Use the TLS socket splicing in tls_test script 2011-12-31 13:14:49 +01:00
Martin Willi 6a5c86b7ad Implemented TLS session resumption both as client and as server 2011-12-31 13:14:49 +01:00
Martin Willi 4ae7f7d13e Use spaces in Makefile.am identation, autotools don't like tabs 2011-05-20 10:09:09 +02:00
Martin Willi 513701f41b Fix some warnings triggered by gcc 4.6 -Wunused-but-set-variable 2011-05-19 15:47:40 +02:00
Martin Willi 4ceb31f941 Added alloc/stream options to fetcher test utility 2011-04-04 08:48:27 +02:00
Martin Willi a8a7a31700 Added simple fetcher tool to test fetcher implementations 2011-01-17 18:19:59 +01:00
Martin Willi 7240e2266c Added command line tool for OID to DER conversion function 2011-01-05 16:46:02 +01:00
Tobias Brunner 3f9ba3be66 Conditional exclusion of tls_test script completed. 2010-09-09 13:21:38 +02:00
Tobias Brunner 6d4ae46768 Fixed typo. 2010-09-09 13:21:38 +02:00
Martin Willi 00755453e3 Build tls_test script only if TLS stack is enabled 2010-09-07 10:21:44 +02:00
Martin Willi fd0bde9a60 Added a TLS debug level option, use debugging hook 2010-08-31 15:35:29 +02:00
Martin Willi f1a74a3cab Implemented a TLS utility to test on any TLS secured TCP connection 2010-08-25 12:57:13 +02:00
Martin Willi 37e52c3fbf Added a crypto transform stress test for profiling 2010-08-19 19:05:14 +02:00
Martin Willi 8f01815143 Build dedicated plugin lists for each strongSwan component 2010-08-12 14:46:57 +02:00
Martin Willi a944d2092b Use bits instead of bytes for a private/public key 2010-08-10 18:46:30 +02:00
Martin Willi da9724e6d0 Renamed key_encod{ing,der}_t and constants, prepare for generic credential encoding 2010-07-13 11:29:35 +02:00
Andreas Steffen 0465d2c0b7 fixed typo 2010-05-04 16:17:32 +02:00
Tobias Brunner 257e27df07 Fixing out-of-tree build after adding dependency to config.status. 2010-04-29 13:29:53 +02:00
Martin Willi b0e789035c Users of PLUGINS depend on config.status, rebuilding them if plugin configuration is updated 2010-04-29 11:28:27 +02:00
Martin Willi 4590260b2d Added support for DH groups 22, 23 and 24, patch contributed by Joy Latten 2010-04-19 14:41:20 +02:00
Martin Willi 3b878dae7e Removed chunk_from_buf() in favor of a simpler chunk_from_chars() macro 2009-09-11 15:39:35 +02:00
Martin Willi 356b2b2780 pass NULL to library_init() to load settings from default file 2009-09-10 18:52:42 +02:00
Martin Willi 5b03a350fc use NULL to load plugins from default plugin directory 2009-09-10 18:52:42 +02:00
Martin Willi 7daf5226b7 removed trailing spaces ([[:space:]]+$) 2009-09-04 13:46:09 +02:00
Martin Willi 0df451bc07 use ./configured plugins in keyid scripts 2009-08-26 11:23:55 +02:00
Martin Willi 500aa2607f accept PEM encoded keys in keyid scripts 2009-08-26 11:23:55 +02:00
Martin Willi 94dde8a0ab migrated scripts to new fingerprinting API 2009-08-26 11:23:55 +02:00
Martin Willi 2b7e085dea updated pubkey_speed test to use pem plugin 2009-08-26 11:23:49 +02:00
Martin Willi aab814c793 fixed compiler warning 2009-06-19 10:05:27 +02:00
Martin Willi 25d6c5146b remove obsolete scripts 2009-06-10 18:31:15 +02:00
Martin Willi e0069366c8 fixed ecp521 test 2009-06-10 18:07:19 +02:00
Martin Willi 0461a2ff13 added missing RSA 768 test 2009-06-10 17:26:56 +02:00
Martin Willi 6edad5afdd added convenience scripts for pubkey/dh speed tests 2009-06-10 16:25:32 +02:00
Martin Willi a4caeac76e moved publickey speed test to a standalone program
This reverts commit 08874d6ae2.
2009-06-10 16:25:32 +02:00
Martin Willi 3e3de01b28 moved Diffie-Hellman speed test to a standalone program
This reverts commit 1e6050bfae.
2009-06-10 14:58:58 +02:00
Andreas Steffen 5c1e8ca7ae missed keyid2sql.c 2009-05-28 15:50:05 +02:00
Andreas Steffen af1feed96a NO_CREDENTIAL_FACTORY compile option not needed anymore 2009-05-28 15:44:22 +02:00
Martin Willi 466f11bfaf added .gitignore files, ready for the switch 2009-04-30 07:42:30 +00:00
Martin Willi be0a03be64 set default CFLAGS globally, including -Wno-format 2009-04-27 11:34:07 +00:00
Andreas Steffen faf0e41801 suppress format warnings in the scripts directory 2009-04-21 19:51:48 +00:00
Andreas Steffen b768170bf3 missing LOGFILE in debug statement 2008-12-23 06:35:16 +00:00
Andreas Steffen 4dc0dce886 added migration to NEWS 2008-11-16 21:23:56 +00:00
Tobias Brunner 35379b2130 typedef fixed 2008-10-15 11:34:29 +00:00
Andreas Steffen 1a4d27c854 added thread_analysis tool 2008-09-01 11:19:07 +00:00
Martin Willi eb3e27059b use libcap for capability dropping
optional, must be enabled --with-capabilities=libcap
	will be extended to support --with-capabilities=libcap2
2008-08-29 09:24:14 +00:00
Andreas Steffen f5a0d968fc added keyid2sql helper script 2008-07-29 19:46:39 +00:00