Tobias Brunner [Thu, 10 Dec 2015 10:46:21 +0000 (11:46 +0100)]
ipsec: Fix stop command on systems where sleep(1) only supports integers
Fixes #1231.
Martin Willi [Mon, 7 Dec 2015 09:29:57 +0000 (10:29 +0100)]
Merge branch 'vici-undo-on-unload'
Undo start actions when unloading connections, and add some misc fixes and
extensions to vici connection handling.
Martin Willi [Tue, 1 Dec 2015 08:26:40 +0000 (09:26 +0100)]
vici: Fix documentation about the initiate/terminate timeout
Martin Willi [Thu, 5 Nov 2015 09:09:00 +0000 (10:09 +0100)]
vici: Honor an optionally passed IKE configuration name in initiate/install
If two IKE configurations have CHILD configurations with the same name,
we have no control about the CHILD_SA that actually gets controlled. The
new "ike" parameter specifies the peer config name to find the "child" config
under.
Martin Willi [Thu, 5 Nov 2015 09:04:35 +0000 (10:04 +0100)]
vici: Support completely asynchronous initiating and termination
In some situations the vici client is not interested in waiting for a
timeout at all, so don't register a logging callback if the timeout argument
is negative.
Martin Willi [Wed, 4 Nov 2015 16:04:11 +0000 (17:04 +0100)]
vici: Use an empty local auth round if none given
While it hardly makes sense to use none for negotiated SAs, it actually does
when installing shunt policies.
Martin Willi [Wed, 4 Nov 2015 15:03:14 +0000 (16:03 +0100)]
vici: Limit start action undoing to IKE_SAs using the base peer config name
If two peer configs use the same child config names, potentailly delete
the wrong CHILD_SA. Check the peer config name as well to avoid that.
Martin Willi [Wed, 4 Nov 2015 12:25:51 +0000 (13:25 +0100)]
vici: Close empty IKE_SAs after undoing CHILD_SA start actions
Martin Willi [Fri, 4 Dec 2015 08:05:31 +0000 (09:05 +0100)]
vici: Use value based array to store CHILD_SA ids during restart
The previous approach stored a pointer to a volatile stack variable, which
works for a single ID, but not for multiple.
Martin Willi [Fri, 4 Dec 2015 08:02:28 +0000 (09:02 +0100)]
array: Add an insert/create function for value based arrays
Martin Willi [Wed, 4 Nov 2015 12:25:07 +0000 (13:25 +0100)]
vici: Undo start actions when unloading configs
Tobias Brunner [Wed, 2 Dec 2015 17:09:29 +0000 (18:09 +0100)]
conf: Add support for escaping dots in section/option names
Tobias Brunner [Fri, 4 Dec 2015 10:21:19 +0000 (11:21 +0100)]
vici: Fix clean-local target for Perl bindings if they were not built
This is called when running `make distclean` (or indirectly via `make
distcheck`).
Martin Willi [Tue, 10 Nov 2015 07:12:35 +0000 (08:12 +0100)]
byteorder: Provide a fallback for le32toh/htole32()
Some older toolchains don't provide these macros, so implement them using
the gcc builtins. We also provide 64-bit variants as used by chapoly.
Martin Willi [Tue, 10 Nov 2015 06:57:48 +0000 (07:57 +0100)]
byteorder: Add 32-bit unaligned little-endian conversion functions
Martin Willi [Mon, 9 Nov 2015 16:17:16 +0000 (17:17 +0100)]
swanctl: Explicitly link against -lpthread and -ldl if required
We already do this for charon, as some toolchains require an explicit
link even if libstrongswan already depends on it.
Martin Willi [Mon, 9 Nov 2015 16:15:17 +0000 (17:15 +0100)]
pki: Explicitly link against -lpthread and -ldl if required
We already do this for charon, as some toolchains require an explicit
link even if libstrongswan already depends on it.
Martin Willi [Mon, 9 Nov 2015 16:11:21 +0000 (17:11 +0100)]
configure: Link against potential -ldl when checking for OpenSSL libcrypto
Martin Willi [Tue, 10 Nov 2015 08:42:46 +0000 (09:42 +0100)]
watcher: Check for cancellation if poll() fails with EINTR
With LinuxThreads, poll() is unfortunately no cancellation point. It seems
that poll gets woken up after cancellation, but we actively must check
for cancellation before re-entering poll to properly shut down the watcher
thread.
Andreas Steffen [Tue, 1 Dec 2015 14:06:23 +0000 (15:06 +0100)]
Version bump to 5.4.0dr1
Andreas Steffen [Tue, 1 Dec 2015 14:02:18 +0000 (15:02 +0100)]
Added Vici:Session Perl CPAN module to NEWS
Andreas Steffen [Tue, 17 Nov 2015 20:20:15 +0000 (21:20 +0100)]
Extended and refactored vici perl implementation
Andreas Steffen [Tue, 17 Nov 2015 12:32:54 +0000 (13:32 +0100)]
Built the CPAN file structure for the Vici::Session perl module
Andreas Steffen [Mon, 16 Nov 2015 19:08:30 +0000 (20:08 +0100)]
Implement vici Perl binding
Andreas Steffen [Thu, 26 Nov 2015 10:35:56 +0000 (11:35 +0100)]
testing: Some more timing fixes
Tobias Brunner [Thu, 19 Nov 2015 15:01:05 +0000 (16:01 +0100)]
swanctl: Add --list-algs command to query loaded algorithms
Tobias Brunner [Thu, 19 Nov 2015 15:00:19 +0000 (16:00 +0100)]
vici: Add get-algorithms command to query loaded algorithms and implementations
Tobias Brunner [Thu, 26 Nov 2015 07:13:54 +0000 (08:13 +0100)]
NEWS: Added changes since 5.3.4
Andreas Steffen [Thu, 26 Nov 2015 08:56:10 +0000 (09:56 +0100)]
Version bump to 5.3.5
Andreas Steffen [Thu, 26 Nov 2015 08:55:28 +0000 (09:55 +0100)]
testing: Updated expired mars.strongswan.org certificate
Tobias Brunner [Mon, 16 Nov 2015 15:44:03 +0000 (16:44 +0100)]
travis: Enable OS X build
Tobias Brunner [Thu, 19 Nov 2015 10:21:48 +0000 (11:21 +0100)]
sigwaitinfo() may fail with EINTR if interrupted by an unblocked signal not in the set
Fixes #1213.
Tobias Brunner [Mon, 23 Nov 2015 10:17:02 +0000 (11:17 +0100)]
kernel-pfkey: Enable ENCR_CAMELLIA_CBC when it's available
Fixes #1214.
Tobias Brunner [Wed, 18 Nov 2015 13:51:13 +0000 (14:51 +0100)]
man: Update description of the actions performed for different dpdaction values
For instance, charon does not unroute `auto=route` connections with
`dpdaction=clear`.
Tobias Brunner [Tue, 17 Nov 2015 16:21:36 +0000 (17:21 +0100)]
utils: Use the more low-level __NR_ prefix to refer to the syscall number
The __NR_ constants are also defined in the Android headers.
Thom Troy [Sat, 7 Nov 2015 17:53:50 +0000 (17:53 +0000)]
eap-radius: Add ability to configure RADIUS retransmission behavior
Closes strongswan/strongswan#19.
Andreas Steffen [Mon, 16 Nov 2015 15:36:50 +0000 (16:36 +0100)]
Version bump to 5.4.0dr1
Andreas Steffen [Mon, 16 Nov 2015 12:22:25 +0000 (13:22 +0100)]
Version bump to 5.3.4
Tobias Brunner [Thu, 12 Nov 2015 14:35:52 +0000 (15:35 +0100)]
NEWS: Add info about CVE-2015-8023
Tobias Brunner [Thu, 29 Oct 2015 10:23:33 +0000 (11:23 +0100)]
eap-mschapv2: Keep internal state to prevent authentication from succeeding prematurely
We can't allow a client to send us MSCHAPV2_SUCCESS messages before it
was authenticated successfully.
Fixes CVE-2015-8023.
Tobias Brunner [Fri, 13 Nov 2015 17:22:48 +0000 (18:22 +0100)]
android: Suppress compiler warnings about missing field initializers
Triggered by -Wextra for many INIT usages where we only partially
initialize a struct.
Tobias Brunner [Fri, 13 Nov 2015 14:46:27 +0000 (15:46 +0100)]
utils: Provide a fallback for sigwaitinfo() if needed
Apparently, not available on Mac OS X 10.10 Yosemite. We don't provide
this on Windows.
Andreas Steffen [Fri, 13 Nov 2015 12:59:39 +0000 (13:59 +0100)]
testing: Error messages of curl plugin have changed
Andreas Steffen [Fri, 13 Nov 2015 12:58:57 +0000 (13:58 +0100)]
testing: Fixed another timing issue
Andreas Steffen [Fri, 13 Nov 2015 11:18:28 +0000 (12:18 +0100)]
Version bump to 5.3.4rc1
Tobias Brunner [Fri, 13 Nov 2015 09:20:11 +0000 (10:20 +0100)]
init: Make sure basic networking is up in systemd unit
Connections with auto=route might otherwise not work.
References #1188.
Tobias Brunner [Tue, 10 Nov 2015 14:24:07 +0000 (15:24 +0100)]
vici: Attribute certificates are not trusted
Tobias Brunner [Tue, 10 Nov 2015 14:20:16 +0000 (15:20 +0100)]
vici: Properly add CRLs to the credential set
add_crl() ensures that old CLRs are not stored in the credential set.
Tobias Brunner [Tue, 13 Oct 2015 10:10:42 +0000 (12:10 +0200)]
mode-config: Reassign migrated virtual IP if client requests %any
If we mistakenly detect a new IKE_SA as a reauthentication the client
won't request the previous virtual IP, but since we already migrated
it we already triggered the assign_vips() hook, so we should reassign
the migrated virtual IP.
Fixes #1152.
Tobias Brunner [Wed, 11 Nov 2015 13:26:00 +0000 (14:26 +0100)]
revocation: Allow CRLs to be encoded in PEM format
Since the textual representation for a CRL is now standardized
in RFC 7468 one could argue that we should accept that too, even
though RFC 5280 explicitly demands CRLs fetched via HTTP/FTP to
be in DER format. But in particular for file URIs enforcing that
seems inconvenient.
Fixes #1203.
Tobias Brunner [Wed, 11 Nov 2015 14:20:00 +0000 (15:20 +0100)]
curl: Be less strict when considering status codes as errors
For file:// URIs the code is 0 on success. We now do the same libcurl
would do with CURLOPT_FAILONERROR enabled.
Fixes #1203.
Tobias Brunner [Tue, 10 Nov 2015 08:42:23 +0000 (09:42 +0100)]
eap-radius: Compare address family when handing out virtual IPs
This also ensures that the actually released virtual IP is removed from
the list of claimed IPs.
Fixes #1199.
Tobias Brunner [Thu, 12 Nov 2015 13:22:28 +0000 (14:22 +0100)]
Merge branch 'eap-mschapv2-eap-identity'
This replaces the EAP-Identity with the EAP-MSCHAPv2 username, which
ensures the client is known with an authenticated identity. Previously
a client with a valid username could use a different identity (e.g. the
name of a different user) in the EAP-Identity exchange. Since we use
the EAP-Identity for uniqueness checks etc. this could be problematic.
The EAP-MSCHAPv2 username is now explicitly logged if it is different
from the EAP-Identity (or IKE identity).
Fixes #1182.
Tobias Brunner [Thu, 5 Nov 2015 13:07:49 +0000 (14:07 +0100)]
eap-mschapv2: Report username if different from EAP-Identity (or IKE identity)
Tobias Brunner [Wed, 28 Oct 2015 16:44:48 +0000 (17:44 +0100)]
eap-mschapv2: Provide EAP-MSCHAPv2 username as EAP-Identity
Tobias Brunner [Wed, 28 Oct 2015 17:53:15 +0000 (18:53 +0100)]
auth-cfg: Prefer merged rules over existing ones when moving them
This is particularly important for single valued rules (e.g.
identities). When copying values this is already handled correctly
by the enumerator and add().
Tobias Brunner [Wed, 11 Nov 2015 18:35:33 +0000 (19:35 +0100)]
android: Add some (older) unit tests
Tobias Brunner [Wed, 11 Nov 2015 18:30:04 +0000 (19:30 +0100)]
android: Properly handle shorter types in BufferedByteWriter
In Java all integer types are signed, when a negative integer is casted
to a larger type (e.g. int to long) then due to sign extension the upper
bytes are not 0. So writing that value to a byte array does not produce
the expected result. By overloading the putX() methods we make sure to
upcast the values correctly.
Tobias Brunner [Thu, 22 Oct 2015 15:18:14 +0000 (17:18 +0200)]
android: Migrate to the Gradle build system
This uses a manual way to trigger the NDK build (the default with
on-the-fly Android.mk files does not work for us).
Tobias Brunner [Wed, 11 Nov 2015 15:54:47 +0000 (16:54 +0100)]
android: Provide a fallback for sigwaitinfo()
Tobias Brunner [Wed, 11 Nov 2015 15:51:16 +0000 (16:51 +0100)]
android: Replace AndroidConfigLocal.h with a header in utils/compat
Tobias Brunner [Fri, 23 Oct 2015 14:55:39 +0000 (16:55 +0200)]
android: Fix build after updating Linux headers
Since we don't use the kernel-netlink plugin anymore and the headers
in the NDK are reasonably recent, we don't need this anymore (at least
when building the app).
Fixes #1172.
Tobias Brunner [Wed, 11 Nov 2015 14:42:34 +0000 (15:42 +0100)]
Merge branch 'tkm-spi-label'
Adds the charon-tkm.spi_label and charon-tkm.spi_mask options to encode
a specific value/label in otherwise randomly generated IKE SPIs.
Adrian-Ken Rueegsegger [Mon, 9 Nov 2015 18:27:50 +0000 (19:27 +0100)]
charon-tkm: Register SPI generator callback
Set get_spi callback of IKE SA manager to TKM-specific implementation.
Adrian-Ken Rueegsegger [Mon, 9 Nov 2015 18:25:34 +0000 (19:25 +0100)]
charon-tkm: Implement SPI generator
The get_spi callback returns a random SPI with a label encoded according
to the spi_label and spi_mask parameters read from the strongswan.conf.
Tobias Brunner [Mon, 9 Nov 2015 18:27:20 +0000 (19:27 +0100)]
settings: Add settings_value_as_uint64() helper function
Tobias Brunner [Mon, 9 Nov 2015 14:55:41 +0000 (15:55 +0100)]
ike-sa-manager: Allow plugins to provide IKE SPIs via a callback
Plugins must depend on `libcharon-sa-managers` to ensure the manager
exists.
Tobias Brunner [Mon, 9 Nov 2015 14:54:48 +0000 (15:54 +0100)]
libcharon: Publish IKE_SA/CHILD_SA managers as custom plugin feature
Tobias Brunner [Mon, 9 Nov 2015 16:07:25 +0000 (17:07 +0100)]
ikev1: Also use message hashes for Quick Mode for the early retransmission check
We already did so during Phase 1 but because all three Quick Mode
message have the same message ID we occasionally dropped the third
message as retransmit, so we do it there too. For INFORMATIONAL
and TRANSACTION exchanges we don't expect more than one inbound message
with the same message ID so we still use them there.
Fixes #1198.
Andreas Steffen [Wed, 11 Nov 2015 07:43:43 +0000 (08:43 +0100)]
testing: Check for leases in swanctl/ip-pool scenario
Andreas Steffen [Tue, 10 Nov 2015 10:48:32 +0000 (11:48 +0100)]
Version bump to 5.3.4dr3
Andreas Steffen [Mon, 9 Nov 2015 17:48:30 +0000 (18:48 +0100)]
testing: Fixed some more timing issues
Tobias Brunner [Mon, 5 Oct 2015 12:36:29 +0000 (14:36 +0200)]
kernel-netlink: Allow IPsec policies to replace shunt policies
Shunt policies don't have a reqid set, so we allow unequal reqids in
this particular case (i.e. if one of the reqids is 0).
Tobias Brunner [Wed, 16 Sep 2015 15:04:21 +0000 (17:04 +0200)]
kernel-pfkey: Make absolutely sure we always delete the right policy cache entry
Tobias Brunner [Wed, 16 Sep 2015 15:01:00 +0000 (17:01 +0200)]
kernel-netlink: Make absolutely sure we always delete the right policy cache entry
Tobias Brunner [Wed, 16 Sep 2015 14:44:09 +0000 (16:44 +0200)]
kernel-interface: Pass the same data to del_policy() that was passed to add_policy()
The additional data can be helpful to identify the exact policy to
delete.
Tobias Brunner [Wed, 16 Sep 2015 13:05:10 +0000 (15:05 +0200)]
kernel-netlink: Remove the unused policy_history flag
This was used with pluto, which had its own policy tracking.
Thomas Egerer [Tue, 6 Oct 2015 09:02:45 +0000 (11:02 +0200)]
kernel-interface: Return bool for kernel interface registration
If the (un)registering of a kernel interface (net or ipsec) fails, the
plugin loader will never know, since the appropriate functions always
returns TRUE. By making the (un)register functions return a boolean
value, the loader can detect a failure during initializing the kernel
interface and abort charon startup if desired.
Tobias Brunner [Tue, 10 Nov 2015 13:00:11 +0000 (14:00 +0100)]
trap-manager: Also clean up remote address in error cases
Fixes #1201.
Tobias Brunner [Wed, 7 Oct 2015 14:25:05 +0000 (16:25 +0200)]
traffic-selector: Don't end printf'ed list of traffic selectors with a space
Tobias Brunner [Mon, 19 Oct 2015 13:42:57 +0000 (15:42 +0200)]
swanctl: Add option to query leases with --get-pools
Tobias Brunner [Mon, 19 Oct 2015 13:35:51 +0000 (15:35 +0200)]
vici: Add option to query leases of pools
We could later perhaps add filter parameters similar to those of the
`ipsec leases` command (pool name/virtual IP).
Tobias Brunner [Mon, 19 Oct 2015 14:07:39 +0000 (16:07 +0200)]
swanctl: List virtual IPs in --list-sas
Tobias Brunner [Mon, 19 Oct 2015 14:05:47 +0000 (16:05 +0200)]
vici: Return local and remote virtual IPs when listing SAs
Tobias Brunner [Tue, 3 Nov 2015 14:35:16 +0000 (15:35 +0100)]
socket-dynamic: Refactor setting source address when sending messages
Basically the same change as the one for the socket-default plugin.
Tobias Brunner [Mon, 2 Nov 2015 15:22:38 +0000 (16:22 +0100)]
socket-default: Refactor setting source address when sending messages
This ensures we don't pass data (via msg_control) defined in a different
scope to sendmsg(). Actually, some compilers (e.g. GCC 5.2.1) might
optimize the memcpy() call away causing the packets not to get sent from
the intended source address.
It also makes the code clearer than with all these ifdefs.
Fixes #1171.
Tobias Brunner [Mon, 2 Nov 2015 15:16:56 +0000 (16:16 +0100)]
socket-default: Refactor retrieval of destination address of received packets
This makes the code a bit clearer than with the interleaved ifdefs.
Tobias Brunner [Mon, 9 Nov 2015 15:37:02 +0000 (16:37 +0100)]
Merge branch 'medsrv-js-css'
Removes the outdated version of MooTools and actually all
JavaScript code as that stuff can now be done with CSS directly.
Fixes #1190.
Tobias Brunner [Wed, 4 Nov 2015 13:47:40 +0000 (14:47 +0100)]
medsrv: Replace remaining JavaScript code with CSS
Tobias Brunner [Wed, 4 Nov 2015 13:30:18 +0000 (14:30 +0100)]
medsrv: Replace the JavaScript focus() calls with HTML5's autofocus
Tobias Brunner [Mon, 9 Nov 2015 11:44:29 +0000 (12:44 +0100)]
conftest: Add configuration option to report milliseconds in file logger
Tobias Brunner [Mon, 9 Nov 2015 11:30:26 +0000 (12:30 +0100)]
file-logger: Add option to print milliseconds within the current second after timestamp
For this to look right time_format should end with %S or %T.
Closes strongswan/strongswan#18.
Tobias Brunner [Fri, 25 Sep 2015 17:24:44 +0000 (19:24 +0200)]
ike-natd: Create fake NAT-D payloads in a more static way
In some scenarios an IKE_SA might get restarted multiple times (e.g.
due to retransmits and delayed INVALID_KE_PAYLOAD notifies) so that
two IKE_SA_INIT messages might be sent that only differ in the
previously randomly generated NAT_DETECTION_SOURCE_IP payload.
This could cause an authentication failure on the responder if the two
peers don't use the same IKE_SA_INIT message in their InitiatorSignedOctets.
While the payload is generated in a reproducible way it will still change
when the daemon is restarted, which should make detecting the payloads
as fake a bit harder (compared to e.g. just using 0.0.0.0:0 as address).
Fixes #1131.
Andreas Steffen [Sat, 7 Nov 2015 12:13:49 +0000 (13:13 +0100)]
testing: Added Debian 7.9 to IMV database
Tobias Brunner [Fri, 6 Nov 2015 16:27:45 +0000 (17:27 +0100)]
testing: Reduce runtime of all tests that use SQLite databases by storing them in ramfs
Tobias Brunner [Fri, 6 Nov 2015 17:27:30 +0000 (18:27 +0100)]
testing: tnc/tnccs-20-hcd-eap scenario does not use SWID IMV/strongTNC
Tobias Brunner [Fri, 6 Nov 2015 16:26:42 +0000 (17:26 +0100)]
testing: Add test config to create and remove a directory for DBs stored in ramfs
Tobias Brunner [Fri, 6 Nov 2015 15:00:29 +0000 (16:00 +0100)]
testing: Improve runtime of TNC tests by storing the SQLite DB in ramfs
This saves about 50%-70% of the time needed for scenarios that use a DB.
Tobias Brunner [Fri, 6 Nov 2015 16:21:11 +0000 (17:21 +0100)]
testing: Fix test constraints in ikev2/rw-ntru-bliss scenario
Changed with
a88d958933ef ("Explicitly mention SHA2 algorithm in BLISS
OIDs and signature schemes").
Andreas Steffen [Fri, 6 Nov 2015 15:22:57 +0000 (16:22 +0100)]
testing: Use sha3 plugin in ikev2/rw-cert scenario