Commit Graph

15937 Commits

Author SHA1 Message Date
Tobias Brunner a1aede8065 attr-sql: Make release of online leases during startup optional
This cleanup prevents sharing the same DB between multiple VPN gateways.
2017-05-19 15:22:51 +02:00
Tobias Brunner f6d0965a4c charon-nm: Fix typo to actually use random NAT-T port
Fixes: af16b5afb0 ("Use random ports in NetworkManager backend")
2017-05-19 15:22:51 +02:00
Baruch Siach 0727c8a533 af-alg: Fix crypt() definition conflict
Rename the crypt() method to avoid conflict with POSIX crypt(). Fixes the
following build failure with musl libc:

In file included from ../../../../src/libstrongswan/utils/utils.h:53:0,
                 from ../../../../src/libstrongswan/library.h:101,
                 from af_alg_ops.h:24,
                 from af_alg_ops.c:16:
af_alg_ops.c:110:22: error: conflicting types for 'crypt'
 METHOD(af_alg_ops_t, crypt, bool,
                      ^
../../../../src/libstrongswan/utils/utils/object.h:99:13: note: in definition of macro 'METHOD'
  static ret name(union {iface *_public; this;} \
             ^
In file included from af_alg_ops.c:18:0:
.../host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/unistd.h:144:7: note: previous declaration of 'crypt' was here
 char *crypt(const char *, const char *);
       ^

Closes strongswan/strongswan#72.
2017-05-15 16:33:21 +02:00
Andreas Steffen a5f7a4c790 Version bump to 5.3.3dr2 2017-05-08 22:38:12 +02:00
Andreas Steffen b0dcf33f0f x509: Evaluate return codes of parsing functions 2017-05-08 16:44:25 +02:00
Raphael Geissert a4b3f1454b nm: Explicitly prevent the smartcard PIN from being stored
The secret storage flag wasn't being saved when using smartcard
authentication, resulting in the PIN being stored.

Fixes #2166.
2017-05-08 15:29:37 +02:00
Defunct 8e1b986c10 nm: IKE/ESP proposal customization support
Closes strongswan/strongswan#70.
2017-05-08 14:35:27 +02:00
Defunct 4ac68f02f2 charon-nm: IKE/ESP proposal customization support
Closes strongswan/strongswan#69.
2017-05-08 14:33:58 +02:00
Andreas Steffen d38d1fcd68 Version bump to 5.5.3dr1 2017-04-26 21:29:42 +02:00
Martin Willi e419b010aa configure: Include curve25519 in the pki default plugin list
The plugin provides ed25519 public key support, and is required to generate
keys or sign certificates with pki.
2017-04-26 20:41:33 +02:00
Andreas Steffen 25217488d2 testing: Created swanctl/rw-eap-aka-sql-rsa scenario 2017-04-26 20:38:23 +02:00
Andreas Steffen 64f9fa9e9f testing: Created ikev2/rw-eap-aka-sql-rsa scenario
This test scenario tests the eap-simaka-sql plugin.
2017-04-26 20:38:23 +02:00
Andreas Steffen 2fad3460fa eap-simaka-sql: Fixed database column from use to used 2017-04-26 20:38:00 +02:00
Tobias Brunner 069bf10d3f pki: Reset variable so error handling works properly
If we jump to `end` without this we crash (not necessarily visibly) due
to a double free and the actual error message is not printed.
2017-04-19 18:56:43 +02:00
odi79 0d66b01a81 vici: Fix type error exception in Python bindings
Line 66 yields "TypeError: can't concat bytes to str" using Python 3.4.
"requestdata" was introduced in 22f08609f1 but is not actually used.
Since the original "request" is not used anywhere else this can be changed
to be similar to the other UTF-8 encoding changes in that commit.

Fixes: 22f08609f1 ("vici: Explicitly set the Python encoding type").
Closes strongswan/strongswan#66.
2017-04-19 10:00:21 +02:00
Andreas Steffen bb2ba9f15d Version bump to 5.5.2 2017-03-27 16:57:03 +02:00
Andreas Steffen c5ccf933ec testing: List BLIS certs in swanctl/rw-newhope-bliss scenario 2017-03-27 16:56:50 +02:00
Jiri Horky 6fe1d78a0d kernel-netlink: Avoid O(n^2) copy operations when concatenating Netlink responses
When constructing the result, all responses from Netlink were concatenated
iteratively, i.e. for each response, the previously acquired result was
copied to newly allocated memory and the current response appended to it.
This results in O(n^2) copy operations. Instead, we now check for the
total final length of the result and copy the individual responses to it
in one pass, i.e. in O(n) copy operations. In particular, this issue caused
very high CPU usage in memcpy() function as the result is copied over and
over. Common way how to hit the issue is when having 1000+ routes and 5+
connecting clients a second. In that case, the memcpy() function can
take 50%+ of one CPU thread on a decent CPU and the whole charon daemon
is stuck just reading routes and concatenating them together (connecting
clients are blocked in that particular case as this is done under mutex).

Closes strongswan/strongswan#65.
References #2055.
2017-03-27 11:05:26 +02:00
Tobias Brunner 67849f4972 libtls: Replace expired certificates for unit tests
Only the tests with client authentication failed, the client accepted
the trusted self-signed certificate even when it was expired.  On the
server the lookup (based on the pre-configured SAN) first found the ECDSA
cert, which it dismissed for the RSA authentication the client used, and
since only the first "pretrusted" cert is considered the following RSA
cert was verified more thoroughly.
The lookup on the client always uses the full DN of the server certificate
not the pre-configured identity so it found the correct certificate on
the first try.
2017-03-24 10:46:14 +01:00
Tobias Brunner 3207193cbf pki: Actually make the default key type KEY_ANY for --self
Fixes: 05ccde0a8b ("pki: Add generic 'priv' key type that loads any
type of private key")
2017-03-24 10:45:58 +01:00
Martin Willi 3610d7607e addrblock: Narrow selectors when rekeying a CHILD_SA as original responder
If a the original responder narrows the selectors of its peer in addrblock,
the peer gets a subset of that selectors. However, once the original responder
initiates rekeying of that CHILD_SA, it sends the full selectors to the peer,
and then narrows the received selectors locally for the installation, only.

This is insufficient, as the peer ends up with wider selectors, sending traffic
that the original responder will reject to the stricter IPsec policy. So
additionally narrow the selectors when rekeying CHILD_SAs before sending the
TS list to the peer.
2017-03-24 08:17:01 +01:00
Tobias Brunner db12675ec4 conf: Document recommended lower limit for SPIs 2017-03-23 18:29:19 +01:00
Tobias Brunner 93700d93fa travis: aikpub2 was removed, no need to disable it anymore 2017-03-23 18:29:18 +01:00
Tobias Brunner 967e13bfb5 conf: Remove snippet for aikpub2 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 9d240b0761 kernel-wfp: Don't redefine IPPROTO_IP* if already defined 2017-03-23 18:29:18 +01:00
Tobias Brunner 4c9418ac4d pki: Cast length derived from pointer arithmetic to int 2017-03-23 18:29:18 +01:00
Tobias Brunner 550bd654a7 vici: Don't fall back to uninstalling traps if a matching shunt was found
This is different if `ike` and `child` are provided and uninstall()
fails as we call that without knowing whether a matching shunt exists.
But if `ike` is not provided we explicitly search for a matching shunt
and if found don't need to look for a trap policy.
2017-03-23 18:29:18 +01:00
Tobias Brunner 5e8e71d405 configure: Fix test for libunwind
Most functions in libunwind.h are actually mapped via macros to obscure
function names, so checking for these would require some elaborate test
via AC_LINK_IFELSE().  However, unw_backtrace() seems to be one of the few
actual functions so lets use this for now, even though we don't call it
ourselves later.

Fixes: 016228c158 ("configure: Check for actual functions in libraries
with AC_CHECK_LIB")
2017-03-23 18:29:18 +01:00
Tobias Brunner 1003cf2330 Fixed some typos, courtesy of codespell 2017-03-23 18:29:18 +01:00
Noel Kuntze 693107f6ae swanctl: Reformulate IKEv1 selector restriction, describe problems with TS narrowing 2017-03-23 18:27:05 +01:00
Tobias Brunner a7cd424206 swanctl: Mention including files when referring to strongswan.conf(5) 2017-03-23 18:27:05 +01:00
Noel Kuntze 11ebba0042 man: Describe the tunneling of several subnets with IKEv1 in more detail 2017-03-23 18:26:54 +01:00
Noel Kuntze c055c7013e man: Add note about modeconfig having to match 2017-03-23 18:16:45 +01:00
Andreas Steffen 7c672e6118 Version bump to 5.2.2rc1 2017-03-21 09:09:43 +01:00
Andreas Steffen 1732ca7b5b testing: Updated OCSP certificate for carol 2017-03-21 09:09:06 +01:00
Andreas Steffen efc1b98461 Allow x25519 as an alias of the curve25519 KE algorithm 2017-03-20 21:18:00 +01:00
Andreas Steffen db1ab1cd99 Reference Edwards-curve signature RFCs 2017-03-20 21:18:00 +01:00
Andreas Steffen 2b233c8a64 The tpm plugin offers random number generation
The tpm plugin can be used to derive true random numbers from a
TPM 2.0 device. The get_random method must be explicitly enabled
in strongswan.conf with the plugin.tpm.use_rng = yes option.
2017-03-20 21:16:10 +01:00
Martin Willi 46d4d2a71e vici: Document how we pronounce the vici protocol and plugin 2017-03-20 10:39:10 +01:00
Tobias Brunner d5a19a17dc swanctl: Describe what happens when a FQDN is specified in local|remote_addrs 2017-03-20 10:18:51 +01:00
Noel Kuntze 31456d1f85 man: Describe what happens when a FQDN is specified in left or right 2017-03-20 10:18:51 +01:00
Tobias Brunner e92d8a56b3 ikev1: First do PSK lookups based on identities then fallback to IPs
This provides a solution for configs where there is e.g. a catch-all %any
PSK, while more specific PSKs would be found by the identities of configs
that e.g. use FQDNs as local/remote addresses.

Fixes #2223.
2017-03-20 10:17:56 +01:00
Tobias Brunner ac9063dae2 testing: Fix URL for kernel sources 2017-03-20 10:13:33 +01:00
Thomas Egerer 11c40012a3 ike-sa-manager: Remove superfluous assignment
Memory is allocated with calloc, hence set to zero, thus assigning the
numerical value 0 is not required.

Signed-off-by: Thomas Egerer <thomas.egerer@secunet.com>
2017-03-16 08:41:43 +01:00
Tobias Brunner 1e0040ec45 ike: Log remote IP when deleting half-open IKE_SAs 2017-03-15 16:24:25 +01:00
Tobias Brunner 3bc8a4a581 coverage: Exclude test suites and /usr from coverage report 2017-03-15 15:54:38 +01:00
Tobias Brunner 42f7c98980 travis: Create coverage report via codecov.io 2017-03-15 10:19:02 +01:00
Andreas Steffen 25bfb338a2 Version bump to 5.5.2dr7 2017-03-06 20:21:40 +01:00
Andreas Steffen 4a620a97a0 aikpub2: Removed aikpub2 tool
The aikpub2 tool has been replaced by pki --pub|--req --keyid hex ..
where keyid indicates the TPM 2.0 private key object handle. Thus
either the public key in PKCS#1 format can be extracted or a PKCS#10
certificate request signed by the TPM private key can be generated.
2017-03-06 19:35:05 +01:00