Tobias Brunner [Wed, 8 Feb 2017 09:47:33 +0000 (10:47 +0100)]
Merge branch 'bypass-lan'
Adds a new plugin that automatically installs and updates bypass policies
for locally attached subnets. This is useful for laptops etc. that are
used in different networks and prefer maintaining access to local hosts
(e.g. network printers or NAS) while connected to a VPN.
Tobias Brunner [Tue, 11 Oct 2016 12:30:21 +0000 (14:30 +0200)]
kernel-netlink: Use the same priority range for trap and regular policies
While trap and regular policies now often look the same (mainly because
reqids are kept constant) trap policies still need to have a lower priority
than regular policies to handle unroute/route correctly if e.g. IPComp
is used or the mode changes. But if we use a completely different
priority range that's lower than that of regular policies it is not possible
to install overlapping trap policies. By differentiating trap from
regular policies via the priority's LSB this issue is avoided while
still maintaining the proper ordering of trap and regular policies.
Tobias Brunner [Thu, 15 Dec 2016 17:22:11 +0000 (18:22 +0100)]
proposal: Copy SPI and proposal number from correct proposal in select()
If charon.prefer_configured_proposals is disabled select() is called on
the received proposal. This incorrectly set the SPI to 0 as the
configured proposal has no SPI set.
Tobias Brunner [Mon, 10 Oct 2016 08:00:19 +0000 (10:00 +0200)]
kernel-netlink: Prefer matching label when selecting IPv6 source addresses
This implements rule 6 of RFC 6724 using the default priority table,
so that e.g. global addresses are preferred over ULAs (which also have
global scope) when the destination is a global address.
Tobias Brunner [Fri, 4 Nov 2016 09:14:30 +0000 (10:14 +0100)]
kernel-netlink: Use correct 4 byte alignment for AH with IPv4
By default, the kernel incorrectly uses an 8 byte alignment, which is
mandatory for IPv6 but prohibited for IPv4. For many algorithms this
doesn't matter but that's not the case for HMAC_SHA2_256_128.
Since 2.6.39 the kernel can be explicitly configured to use a 4 byte
alignment.
Tobias Brunner [Thu, 29 Dec 2016 16:35:57 +0000 (17:35 +0100)]
android: Add activity to import VPN profiles from JSON-encoded files
The file format is documented on the wiki.
URLs to .sswan files may be intercepted and downloaded files with a media
type of application/vnd.strongswan.profile may also be opened (the file
extension doesn't matter in that case). Whether downloaded files for which
the media type is not correct but the extension is .sswan can be opened
depends on the app that issues the Intent. For instance, from the default
Downloads app it won't work due to the content:// URLs that do not contain
the file name but when opening the downloaded file from within Chrome's
Downloads view it works as these Intents use file:// URLs, which contain
the complete file name (the latter requires a new permission).
Tobias Brunner [Thu, 8 Dec 2016 16:33:11 +0000 (17:33 +0100)]
Merge branch 'android-updates'
Adds a permanent notification while connected (or connecting), which
allows running as a foreground service, which in turn should prevent
Android from terminating the service when low on memory.
Also adds support for ChaCha20/Poly1305 AEAD and Curve25519 DH.
Tobias Brunner [Wed, 2 Nov 2016 15:35:50 +0000 (16:35 +0100)]
android: Unregister listener in case of error alerts
This avoids triggering additional errors via e.g. ike_updown() that
might cause the error message displayed in the GUI to change if the
status fragment is recreated.
Tobias Brunner [Fri, 2 Dec 2016 09:55:13 +0000 (10:55 +0100)]
configure: Check for actual functions in libraries with AC_CHECK_LIB
Checking for `main` produces code like this in the test program:
int
main ()
{
return main ();
;
return 0;
}
This recursive call results in a warning message with some compilers (e.g.
Clang in newer Xcode versions: "all paths through this function will call
itself [-Winfinite-recursion]"), which lets the tests fail when compiling
with -Werror.
Martin Willi [Thu, 20 Oct 2016 05:12:32 +0000 (07:12 +0200)]
proposal: Remove RFC 5114 MODP DH groups from default proposal
Recent research demonstrates that at least for 1024-bit DH groups, it is
possible to create specially crafted primes having a backdoor. From the
prime itself this is not detectable, creating a perfect NOBUS attack.
http://eprint.iacr.org/2016/961
For the primes defined in RFC 5114 no information is provided on how these
have been selected. In the default proposal we included one of the 2048-bit
primes only, where it is questionable if constructing a backdoored prime is
feasible. Nevertheless, this patch removes the group from the set of default
proposals as well.