]>
git.ipfire.org Git - thirdparty/strongswan.git/log
Martin Willi [Wed, 2 Apr 2014 09:35:19 +0000 (11:35 +0200)]
travis: Build "all" tests without Windows kernel backends
Martin Willi [Fri, 9 May 2014 13:11:58 +0000 (15:11 +0200)]
kernel-wfp: Include Windows header patch for MinGW 4.8.1
Martin Willi [Wed, 9 Apr 2014 08:42:36 +0000 (10:42 +0200)]
kernel-wfp: Clone acquire traffic selectors only if they exist
Martin Willi [Wed, 9 Apr 2014 08:42:15 +0000 (10:42 +0200)]
kernel-wfp: Install routes for trap policies
Martin Willi [Wed, 9 Apr 2014 08:41:32 +0000 (10:41 +0200)]
kernel-wfp: Refactor route management to separate function
Martin Willi [Tue, 8 Apr 2014 13:58:38 +0000 (15:58 +0200)]
kernel-wfp: Install tunnel mode policies to appropriate sub-layers
While it is unclear if this has any effect at all, we prefer specific sublayers
to install policies as suggested.
Martin Willi [Thu, 2 Jan 2014 16:31:30 +0000 (17:31 +0100)]
kernel-wfp: Declare GUIDs and auth/cipher configs missing in some MinGW builds
Martin Willi [Tue, 24 Dec 2013 10:34:50 +0000 (11:34 +0100)]
kernel-wfp: Support multiple traffic selectors on tunnel mode SAs
Martin Willi [Tue, 24 Dec 2013 10:27:59 +0000 (11:27 +0100)]
child-sa: Pass the number of total policies tied to an SA to the kernel
This will be useful if the kernel backend has to know how many policies
follow an SA install, for example if it must install all policies concurrently.
Martin Willi [Tue, 24 Dec 2013 09:40:09 +0000 (10:40 +0100)]
kernel-iph: Implicitly enable IP forwarding when installing routes
Martin Willi [Tue, 24 Dec 2013 09:01:35 +0000 (10:01 +0100)]
kernel-wfp: Show a warning for packets the kernel drops in its IPsec layers
Martin Willi [Mon, 23 Dec 2013 17:45:13 +0000 (18:45 +0100)]
kernel-wfp: Set flag to get UDP encapsulation with tunnel mode working
Having this flag set fixes connections initiated by the Windows host, but
unfortunately does not yet fix incoming connections. Connection state issue?
We still see 0xc00000e2 error events, translating to INTERNAL_ERROR.
Martin Willi [Fri, 20 Dec 2013 13:42:10 +0000 (14:42 +0100)]
kernel-wfp: Install tunnel and trap forward policies
Martin Willi [Thu, 19 Dec 2013 15:55:43 +0000 (16:55 +0100)]
kernel-wfp: Manually create a ProviderContext to attach individual filters
This gives us more flexibility than using the intransparent FwpmIPsecTunnelAdd,
and fixes the issues we have seen with trap policies. Forward filters are
still missing, but required for site-to-site tunnels.
Martin Willi [Thu, 19 Dec 2013 13:23:08 +0000 (14:23 +0100)]
kernel-wfp: Print filter weight in "ipsecdump filters"
Martin Willi [Thu, 19 Dec 2013 13:22:00 +0000 (14:22 +0100)]
kernel-wfp: Add support for trap policies and acquires
Martin Willi [Thu, 19 Dec 2013 13:14:37 +0000 (14:14 +0100)]
socket-win: Install IKE bypass policies using bypass_socket()
Martin Willi [Thu, 19 Dec 2013 13:13:06 +0000 (14:13 +0100)]
kernel-wfp: Implement bypass_socket() using dedicated filter rules
Martin Willi [Thu, 19 Dec 2013 08:48:43 +0000 (09:48 +0100)]
kernel-wfp: Register for WFP Net events
Martin Willi [Wed, 18 Dec 2013 10:56:36 +0000 (11:56 +0100)]
kernel-wfp: Add some missing IPv6 GUIDs, fix IPv6 host conversion
Martin Willi [Wed, 18 Dec 2013 10:57:36 +0000 (11:57 +0100)]
kernel-wfp: Add an ipsecdump "filters" command to print IPsec related filters
Martin Willi [Mon, 16 Dec 2013 16:13:03 +0000 (17:13 +0100)]
kernel-wfp: Add an ipsecdump utility to show installed SAs/SPs on Windows
Martin Willi [Mon, 16 Dec 2013 11:12:57 +0000 (12:12 +0100)]
kernel-wfp: Depend on used RNG plugin features
Martin Willi [Fri, 13 Dec 2013 16:14:26 +0000 (17:14 +0100)]
kernel-wfp: Implement update_sa()
Martin Willi [Mon, 16 Dec 2013 11:13:39 +0000 (12:13 +0100)]
kernel-wfp: Configure ports for SAs using UDP encapsulation
Martin Willi [Fri, 13 Dec 2013 16:13:39 +0000 (17:13 +0100)]
kernel-wfp: Refactor SA context construction, and use IPsecSaContextCreate1()
Martin Willi [Fri, 13 Dec 2013 16:12:38 +0000 (17:12 +0100)]
kernel-iph: Fire roam events for detected address changes
Martin Willi [Fri, 13 Dec 2013 14:34:13 +0000 (15:34 +0100)]
kernel-wfp: Allocate SPIs pseudo-randomly using a 0xc prefix
Martin Willi [Fri, 13 Dec 2013 14:33:42 +0000 (15:33 +0100)]
kernel-wfp: Install appropriate routes for tunnel mode policies
Martin Willi [Fri, 13 Dec 2013 11:52:06 +0000 (12:52 +0100)]
kernel-iph: Implement add/del_route()
Martin Willi [Thu, 12 Dec 2013 16:34:06 +0000 (17:34 +0100)]
kernel-iph: Implement get_nexthop()
Martin Willi [Thu, 12 Dec 2013 16:28:51 +0000 (17:28 +0100)]
kernel-iph: Implement get_source_addr()
Martin Willi [Thu, 12 Dec 2013 15:29:31 +0000 (16:29 +0100)]
kernel-iph: Implement address enumeration
Martin Willi [Thu, 12 Dec 2013 14:41:39 +0000 (15:41 +0100)]
kernel-iph: Implement get_interface() method
Martin Willi [Thu, 12 Dec 2013 14:37:21 +0000 (15:37 +0100)]
kernel-iph: Create and maintain a cache of interfaces and associated addresses
Martin Willi [Thu, 12 Dec 2013 08:35:36 +0000 (09:35 +0100)]
kernel-iph: Add a stub for a Windows IP Helper based networking backend
Martin Willi [Wed, 11 Dec 2013 15:02:11 +0000 (16:02 +0100)]
kernel-wfp: Disable IPsec policy updates
It seems that WFP requires an update of the SA context only, but not for the
filters. This allows us to omit support for (fallback) drop policies.
Martin Willi [Wed, 11 Dec 2013 14:57:46 +0000 (15:57 +0100)]
kernel-interface: Add a flag to indicate no policy updates required
Martin Willi [Wed, 11 Dec 2013 14:38:28 +0000 (15:38 +0100)]
kernel-wfp: Increment SPIs properly, that is while in host order
Martin Willi [Wed, 11 Dec 2013 14:14:55 +0000 (15:14 +0100)]
kernel-wfp: Triggering expire events for SAs to rekey/delete
Martin Willi [Wed, 11 Dec 2013 13:42:56 +0000 (14:42 +0100)]
kernel-wfp: Enforce hard lifetimes of SAs
Martin Willi [Wed, 11 Dec 2013 13:36:21 +0000 (14:36 +0100)]
kernel-wfp: Add some notes about query_sa/policy() support
Martin Willi [Tue, 10 Dec 2013 17:15:41 +0000 (18:15 +0100)]
kernel-wfp: Reference SA/SP sets by SPI and destination, not reqid
This allows us to have multiple CHILD_SAs for the same reqid, and brings
rekeying support.
Martin Willi [Wed, 11 Dec 2013 12:16:49 +0000 (13:16 +0100)]
kernel-wfp: Add support for tunnel mode connections
Martin Willi [Thu, 5 Dec 2013 13:29:05 +0000 (14:29 +0100)]
kernel-wfp: Register a WFP provider to manage IPsec tunnels
Martin Willi [Mon, 18 Nov 2013 11:57:36 +0000 (12:57 +0100)]
kernel-wfp: Preliminary support for transport mode connections
Martin Willi [Fri, 15 Nov 2013 11:09:46 +0000 (12:09 +0100)]
kernel-wfp: Fix/Complete some fwpuclnt functionality in MinGW
While MinGW declares all the required symbols, some of them are missing in the
library files. We provide missing variables locally, functions get a stub
that call the GetProcAddress()ed function from the DLL.
Also some MinGW headers define some enum values incorrectly, we overload these
using defines.
Martin Willi [Thu, 7 Nov 2013 14:50:46 +0000 (15:50 +0100)]
kernel-wfp: Open and close a WFP engine
Martin Willi [Fri, 1 Nov 2013 09:54:38 +0000 (10:54 +0100)]
kernel-wfp: Create userland state for SAs/policies to install in kernel
Martin Willi [Thu, 31 Oct 2013 13:58:43 +0000 (14:58 +0100)]
kernel-wfp: Add a stub for a Windows Filtering Platform based IPsec backend
Martin Willi [Wed, 4 Jun 2014 14:31:18 +0000 (16:31 +0200)]
Merge branch 'win-socket'
Adds a socket-win plugin providing an IKE socket implementation for Windows
based on the native Winsock2 API.
Martin Willi [Fri, 9 May 2014 12:48:19 +0000 (14:48 +0200)]
travis: Include socket backend in Windows build test
Martin Willi [Wed, 2 Apr 2014 09:33:07 +0000 (11:33 +0200)]
travis: Build "all" tests without Windows socket backend
Martin Willi [Wed, 30 Oct 2013 17:01:18 +0000 (18:01 +0100)]
socket-win: Implement a Windows socket plugin using Winsock2
Martin Willi [Wed, 4 Jun 2014 14:26:58 +0000 (16:26 +0200)]
Merge branch 'win'
Ports the strongSwan core libraries and some plugins to the Windows platform
using a MinGW based toolchain. Beside generic platform abstraction and
the windows.[ch] compatibility layer, this merge introduces a Windows native
threading backend and a charon-svc Windows IKE service.
Travis adds a MinGW cross-compile build to Windows, and further enables -Werror
to let builds fail for all compiler warnings with gcc and Clang.
Martin Willi [Thu, 8 May 2014 15:08:42 +0000 (17:08 +0200)]
travis: Define a Windows build test using MinGW
Martin Willi [Thu, 8 May 2014 13:14:33 +0000 (15:14 +0200)]
travis: Perform build tests with -Werror
Martin Willi [Tue, 3 Jun 2014 09:06:50 +0000 (11:06 +0200)]
windows: Compile with -mno-ms-bitfields if option not set explicitly
-mms-bitfields is the default in newer MinGWs, but it breaks
__attribute__((packed)).
Martin Willi [Thu, 8 May 2014 14:37:48 +0000 (16:37 +0200)]
configure: Fix attribute((packed)) test when using -Werror
Martin Willi [Thu, 8 May 2014 13:12:06 +0000 (15:12 +0200)]
configure: Mark conftest variable as unused to pass test with -Werror
When using -Werror, the warning for the unused variable would let the test fail,
even if in6addr_any is available.
Martin Willi [Thu, 8 May 2014 14:28:50 +0000 (16:28 +0200)]
configure: Don't use -rdynamic with the LLVM toolchain
Martin Willi [Wed, 28 May 2014 14:14:04 +0000 (16:14 +0200)]
charon-svc: Register for stop events not before reaching STATUS_RUNNING
MSDN SetServiceStatus(): "Do not register to accept controls while the status
is SERVICE_START_PENDING or the service can crash."
Martin Willi [Wed, 28 May 2014 13:55:34 +0000 (15:55 +0200)]
charon-svc: Check if daemon has been initialized before invoking shutdown alert
Martin Willi [Thu, 6 Mar 2014 10:22:19 +0000 (11:22 +0100)]
swanctl: Stop logging with Ctrl+C on Windows as well
Martin Willi [Thu, 20 Feb 2014 10:29:35 +0000 (11:29 +0100)]
vici: Add Windows support
Martin Willi [Fri, 9 May 2014 08:17:03 +0000 (10:17 +0200)]
windows: Provide POSIX supplement errno values missing in MinGW
MinGW headers do not define these values, but Windows system headers do.
Windows defines them for POSIX compatibility, we do the same locally.
Martin Willi [Wed, 9 Apr 2014 12:21:12 +0000 (14:21 +0200)]
windows: Provide shutdown(2) operation aliases mapping to those on Windows
Martin Willi [Thu, 3 Apr 2014 13:44:02 +0000 (15:44 +0200)]
x509: Check return value when signing attribute certificates
In addition that this lets AC generation fail properly if private key signing
fails, it also fixes an issue when compiling on Windows with MinGW 4.8.1, where
for some reason the attributeCertificateInfo got encoded incorrectly.
Martin Willi [Thu, 3 Apr 2014 10:25:38 +0000 (12:25 +0200)]
unit-tests: Support testable functions on Windows, avoid weak GCC symbols
Instead of using weak symbols, we use dlsym() on Windows to find an arbitrary
symbol in libtest to detect its linkage. Instead of creating the associated
hashtable in the test runner, we maintain it in libstrongswan, making it
significantly simpler.
Martin Willi [Thu, 3 Apr 2014 09:46:09 +0000 (11:46 +0200)]
unit-tests: Seed chunk_hash() only once, but before creating any hashtables
Due to the removal of pthread_once, we manually create the seed for
chunk_hash(). With the new testable functions interface, this won't work for
the hashtable initiated using __attribute__((constructor)). Enforce seeding
before creating that hashtable.
Martin Willi [Thu, 3 Apr 2014 09:15:51 +0000 (11:15 +0200)]
pki: Provide a fallback if strptime() not supported
For simplicity, we support the default pki datetime format only, but optionally
accept four digit years for longer lifetimes.
Martin Willi [Wed, 2 Apr 2014 13:16:15 +0000 (15:16 +0200)]
openssl: Don't re-enter FIPS mode if we are already using it
If FIPS mode has been enabled by other means, under some environments it can't
be entered again. It fails with "FIPS mode already set". To avoid it, we first
check the mode before changing it.
Martin Willi [Wed, 2 Apr 2014 10:29:32 +0000 (12:29 +0200)]
unit-tests: Force a CET/CEST timezone Windows understands
As it is currently unclear what the "three-letter-timezone" for CEST is, we
use the German timezone, which actually is CET/CEST. SetEnvironmentVariable()
"TZ" does not seem to affect localtime(), so we use _putenv() instead.
Martin Willi [Wed, 2 Apr 2014 09:31:41 +0000 (11:31 +0200)]
travis: Build "all" test without Windows specific charon-svc or dbghelp
Martin Willi [Mon, 10 Mar 2014 11:12:47 +0000 (12:12 +0100)]
utils: Add a wait_sigint() function to wait for SIGINT or equivalent
Martin Willi [Sat, 8 Mar 2014 13:57:54 +0000 (14:57 +0100)]
pki: Switch to binary mode on Windows when reading/writing DER to FDs
Martin Willi [Mon, 10 Mar 2014 16:35:06 +0000 (17:35 +0100)]
pki: Stop prompting for password when entering empty string
Martin Willi [Sat, 8 Mar 2014 13:37:28 +0000 (14:37 +0100)]
chunk: On Windows, use binary mode in chunk_write()
Martin Willi [Fri, 7 Mar 2014 11:53:19 +0000 (12:53 +0100)]
imv: Provide database table scheme for MySQL
Martin Willi [Fri, 7 Mar 2014 11:28:07 +0000 (12:28 +0100)]
libpts: Respect path separators when concatenating database filenames
As we can't use the system native directory separator on cross-platform
measurements, we determine the path separator from the base directory format.
Martin Willi [Fri, 7 Mar 2014 11:27:20 +0000 (12:27 +0100)]
attest: Properly separate and build absolute path names on Windows
Martin Willi [Thu, 6 Mar 2014 18:08:24 +0000 (19:08 +0100)]
libimcv: Pass TNC_SESSION_ID as argument instead as a environment variable
Doing so works on Windows as well.
Martin Willi [Thu, 6 Mar 2014 16:35:51 +0000 (17:35 +0100)]
libimcv: Be a little more verbose about the Windows system reported
Martin Willi [Thu, 6 Mar 2014 16:25:21 +0000 (17:25 +0100)]
imv: Return an empty enumerator instead of null, as expected by callers
Martin Willi [Thu, 6 Mar 2014 16:24:49 +0000 (17:24 +0100)]
imc-os: Add missing TNC_IMC_API definitions, fixes warnings on Windows
Martin Willi [Thu, 6 Mar 2014 16:24:27 +0000 (17:24 +0100)]
imv-os: Don't build pacman on Windows
Martin Willi [Wed, 5 Mar 2014 15:28:38 +0000 (16:28 +0100)]
file-logger: Emulate setlinebuf() if not supported by using fflush()
Martin Willi [Wed, 5 Mar 2014 14:45:42 +0000 (15:45 +0100)]
charon-svc: When running as service, change working directory to executable
Services get executed with system32 as current working directory. This does
not work for us, as we expect paths to be relative to the executable.
Martin Willi [Wed, 5 Mar 2014 11:18:33 +0000 (12:18 +0100)]
openssl: Be less verbose about FIPS mode when not running as daemon
While this is valuable information, printing it for pki and other tools is
annoying.
Martin Willi [Tue, 4 Mar 2014 13:00:11 +0000 (14:00 +0100)]
unit-tests: Adapt settings tests for Windows
Martin Willi [Thu, 15 May 2014 13:12:35 +0000 (15:12 +0200)]
swanctl: Concatenate relative certificate paths correctly on Windows
Martin Willi [Tue, 4 Mar 2014 12:59:04 +0000 (13:59 +0100)]
parser-helper: Detect absolute pathnames and concatenate paths on Windows
Martin Willi [Fri, 7 Mar 2014 11:25:31 +0000 (12:25 +0100)]
utils: Provide a path_absolute() function to check path for non-relativeness
The usually used trivial '/' check won't work on Windows platforms.
Martin Willi [Fri, 7 Mar 2014 13:16:50 +0000 (14:16 +0100)]
utils: Return plain drive letter as base/pathname for drive letters on Windows
Martin Willi [Fri, 7 Mar 2014 11:12:55 +0000 (12:12 +0100)]
utils: Support Windows path separators in path_basename/dirname
Martin Willi [Tue, 4 Mar 2014 12:58:20 +0000 (13:58 +0100)]
utils: Define a platform directory separator character used in paths
Martin Willi [Tue, 4 Mar 2014 11:24:52 +0000 (12:24 +0100)]
configure: Separate pki from --disable-tools
While pki builds and runs just fine on Windows, this is not true for scepclient.
Martin Willi [Thu, 20 Feb 2014 10:30:17 +0000 (11:30 +0100)]
windows: Provide a getpass() implementation
Martin Willi [Wed, 15 Jan 2014 16:01:24 +0000 (17:01 +0100)]
configure: Check if __attribute__((packed)) works as expected
This is really hard to detect if not, and is not unlikely. If -mms-bitfields
is given, the attribute does not work. Even worse, that switch is by default
on with GCC/MinGW 4.7+ for Windows targets.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52991
Martin Willi [Mon, 13 Jan 2014 15:21:36 +0000 (16:21 +0100)]
libpts: Use chunk_map() to load AIK blob