Tobias Brunner [Mon, 7 Aug 2017 15:27:31 +0000 (17:27 +0200)]
apidoc: Update Doxyfile
Tobias Brunner [Mon, 7 Aug 2017 15:22:01 +0000 (17:22 +0200)]
Fixed some typos, courtesy of codespell
Tobias Brunner [Mon, 7 Aug 2017 14:52:01 +0000 (16:52 +0200)]
testing: Add -v option to do-tests to prefix commands with timestamps
Tobias Brunner [Mon, 7 Aug 2017 14:26:38 +0000 (16:26 +0200)]
testing: Move collector.db in tnc/tnccs-20-ev-pt-tls scenario to /etc/db.d
Also move initialization to the pretest script (it's way faster in the
in-memory database).
Tobias Brunner [Wed, 2 Aug 2017 09:39:31 +0000 (11:39 +0200)]
kernel-netlink: Wipe buffer used to read Netlink messages
When querying SAs the keys will end up in this buffer (the allocated
messages that are returned are already wiped). The kernel also returns
XFRM_MSG_NEWSA as response to XFRM_MSG_ALLOCSPI but we can't distinguish
this here as we only see the response.
References #2388.
Tobias Brunner [Wed, 2 Aug 2017 09:33:55 +0000 (11:33 +0200)]
sha2: Write final hash directly to output buffer
This avoids having the last output in internal memory that's not wiped.
References #2388.
Tobias Brunner [Tue, 25 Jul 2017 08:15:58 +0000 (10:15 +0200)]
prf-plus: Wipe seed and internal buffer
The buffer contains key material we handed out last and the seed can
contain the DH secret.
References #2388.
Eyal Birger [Fri, 28 Jul 2017 09:18:52 +0000 (12:18 +0300)]
child-sa: Allow requesting different unique marks for in/out
When requiring unique flags for CHILD_SAs, allow the configuration to
request different marks for each direction by using the %unique-dir keyword.
This is useful when different marks are desired for each direction but the
number of peers is not predefined.
An example use case is when implementing a site-to-site route-based VPN
without VTI devices.
A use of 0.0.0.0/0 - 0.0.0.0/0 traffic selectors with identical in/out marks
results in outbound traffic being wrongfully matched against the 'fwd'
policy - for which the underlay 'template' does not match - and dropped.
Using different marks for each direction avoids this issue as the 'fwd' policy
uses the 'in' mark will not match outbound traffic.
Closes strongswan/strongswan#78.
Tobias Brunner [Wed, 2 Aug 2017 12:32:32 +0000 (14:32 +0200)]
conf: Match more characters in _ and **
\w does not match e.g. / but \S does.
Tobias Brunner [Wed, 12 Jul 2017 09:36:59 +0000 (11:36 +0200)]
trap-manager: Don't require that remote is resolvable during installation
Initiation might later fail, of course, but we don't really
require an IP address when installing, that is, unless the remote
traffic selector is dynamic. As that would result in installing a
0.0.0.0/0 remote TS which is not ideal when a single IP is expected as
remote.
Tobias Brunner [Mon, 7 Aug 2017 11:59:37 +0000 (13:59 +0200)]
child-create: Don't log CHILD_SA initiation until we know the unique ID
Tobias Brunner [Mon, 7 Aug 2017 10:14:57 +0000 (12:14 +0200)]
child-rekey: Add CHILD_SA name and unique ID to collision log messages
Tobias Brunner [Mon, 7 Aug 2017 10:13:06 +0000 (12:13 +0200)]
child-sa: Suppress CHILD_SA state changes if there is no change
Tobias Brunner [Mon, 7 Aug 2017 08:46:45 +0000 (10:46 +0200)]
Merge commit 'child-sa-rekey-tkm'
This fixes CHILD_SA rekeying with TKM and changes how we switch to the
outbound IPsec SA with Netlink/XFRM (using SPIs on the outbound policy
instead of installing the outbound SA delayed).
For charon-tkm it changes when esa_select() and esa_reset() are called,
now with the outbound policy and the inbound SA, respectively, instead
of the outbound SA in both cases.
Also fixed is a potential traffic loss when a rekey collision is lost.
Tobias Brunner [Fri, 4 Aug 2017 12:02:42 +0000 (14:02 +0200)]
charon-tkm: Call esa_reset() when the inbound SA is deleted
After a rekeying the outbound SA and policy is deleted immediately, however,
the inbound SA is not removed until a few seconds later, so delayed packets
can still be processed.
This adds a flag to get_esa_id() that specifies the location of the
given SPI.
Tobias Brunner [Fri, 4 Aug 2017 11:59:40 +0000 (13:59 +0200)]
charon-tkm: Remove unused get_other_esa_id() method
Tobias Brunner [Fri, 4 Aug 2017 11:12:57 +0000 (13:12 +0200)]
child-rekey: Don't install outbound SA in case of lost collisions
This splits the SA installation also on the initiator, so we can avoid
installing the outbound SA if we lost a rekey collision, which might
have caused traffic loss depending on the timing of the DELETEs that are
sent in both directions.
Tobias Brunner [Fri, 14 Jul 2017 09:22:27 +0000 (11:22 +0200)]
testing: Also capture stderr during test cases
The output was not correct otherwise due to the reordering of commands.
Tobias Brunner [Thu, 13 Jul 2017 17:09:07 +0000 (19:09 +0200)]
testing: Clearly mark the tests that failed
Tobias Brunner [Thu, 13 Jul 2017 16:41:36 +0000 (18:41 +0200)]
testing: Add tkm/xfrmproxy-rekey scenario
Similar to the xfrmproxy-expire scenario but here the TKM host is the
responder to a rekeying.
Tobias Brunner [Fri, 14 Jul 2017 10:29:04 +0000 (12:29 +0200)]
testing: Add pfkey/net2net-rekey scenario
Tobias Brunner [Wed, 12 Jul 2017 14:58:11 +0000 (16:58 +0200)]
testing: Add ikev2/net2net-rekey scenario
Tobias Brunner [Wed, 12 Jul 2017 14:53:13 +0000 (16:53 +0200)]
testing: Add support for counting matching lines in tests
Specifying an integer instead of YES in evaltest.dat causes the number to get
compared against the actual number of lines matching the pattern.
This may be used to count matching packets or log lines.
Tobias Brunner [Wed, 12 Jul 2017 11:00:59 +0000 (13:00 +0200)]
bus: Don't trigger child_updown() for rekeyed CHILD_SAs
We don't trigger it either when they are deleted individually.
Tobias Brunner [Tue, 11 Jul 2017 12:05:01 +0000 (14:05 +0200)]
charon-tkm: Don't select new outbound SA until the policy is installed
This tries to avoid packet loss during rekeying by delaying the usage of
the new outbound IKE_SA until the old one is deleted.
Note that esa_select() is a no-op in the current TKM implementation. And
the implementation also doesn't benefit from the delayed deletion of the
inbound SA as it calls esa_reset() when the outbound SA is deleted.
Tobias Brunner [Tue, 11 Jul 2017 11:49:21 +0000 (13:49 +0200)]
charon-tkm: Claim to support SPIs on policies
This fixes rekeying as the delayed installation of the outbound SA
caused the nonce context to be expired already.
Tobias Brunner [Tue, 11 Jul 2017 11:42:06 +0000 (13:42 +0200)]
child-sa: Install outbound SA immediately if kernel supports SPIs on policies
Tobias Brunner [Tue, 11 Jul 2017 11:12:02 +0000 (13:12 +0200)]
child-sa: Use flags to track installation of outbound SA and policies separately
Tobias Brunner [Tue, 11 Jul 2017 08:59:11 +0000 (10:59 +0200)]
kernel-netlink: Set SPI on outbound policy
This should cause the right SA to get used if there are multiple outbound
SAs and the policies are installed properly.
Tobias Brunner [Tue, 11 Jul 2017 08:58:15 +0000 (10:58 +0200)]
kernel-interface: Not all kernel interfaces support SPIs on policies
Andreas Steffen [Fri, 4 Aug 2017 19:15:45 +0000 (21:15 +0200)]
Version bump to 5.6.0dr4
Andreas Steffen [Mon, 31 Jul 2017 11:06:59 +0000 (13:06 +0200)]
testing: Added tnc/tnccs-20-ev-pt-tls scenario
Andreas Steffen [Thu, 3 Aug 2017 07:00:59 +0000 (09:00 +0200)]
swid-gen: Share SWID generator between sw-collector, imc-swima and imc-swid
Andreas Steffen [Mon, 31 Jul 2017 15:21:03 +0000 (17:21 +0200)]
sw-collector: Added --full option
Andreas Steffen [Mon, 31 Jul 2017 12:48:37 +0000 (14:48 +0200)]
sw-collector: Added --installed/removed options
Tobias Brunner [Wed, 2 Aug 2017 14:51:40 +0000 (16:51 +0200)]
Merge branch 'appveyor'
Build and run unit tests on AppVeyor Windows containers.
Tobias Brunner [Fri, 28 Jul 2017 08:12:33 +0000 (10:12 +0200)]
appveyor: Build against OpenSSL
This is mainly for the RNG needed for the exchange tests.
Tobias Brunner [Fri, 28 Jul 2017 07:49:22 +0000 (09:49 +0200)]
unit-tests: Double escape backslashes in Windows paths in settings test
That's required when these are used as include paths in settings file
strings.
Tobias Brunner [Fri, 28 Jul 2017 07:46:02 +0000 (09:46 +0200)]
unit-tests: Stringify direction in message asserts early
x86_64-w64-mingw32-gcc on Windows requires this.
Tobias Brunner [Wed, 19 Jul 2017 12:46:21 +0000 (14:46 +0200)]
unit-tests: iv_gen_seq has a dependency on RNG_STRONG
We currently don't have an RNG in Windows builds.
Tobias Brunner [Wed, 19 Jul 2017 10:34:35 +0000 (12:34 +0200)]
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).
Tobias Brunner [Mon, 3 Jul 2017 13:57:49 +0000 (15:57 +0200)]
peer-cfg: Use an rwlock instead of a mutex to safely access child-cfgs
If multiple threads want to enumerate child-cfgs and potentially lock
other locks (e.g. check out IKE_SAs) while doing so a deadlock could
be caused (as was the case with VICI configs with start_action=start).
It should also improve performance for roadwarrior connections and lots
of clients connecting concurrently.
Fixes #2374.
Tobias Brunner [Fri, 14 Jul 2017 09:23:19 +0000 (11:23 +0200)]
credential-manager: Log issuer identity if not found
Tobias Brunner [Wed, 5 Jul 2017 15:17:13 +0000 (17:17 +0200)]
auth-cfg: Don't limit subjectAltName check to received certificates
Otherwise this won't work if the certificate is only locally available.
Tobias Brunner [Thu, 29 Jun 2017 08:09:47 +0000 (10:09 +0200)]
swanctl: Read default socket from swanctl.socket option
Also read from swanctl.plugins.vici.socket so we get
libstrongswan.plugins.vici.socket if it is defined.
Fixes #2372.
Tobias Brunner [Thu, 29 Jun 2017 07:32:25 +0000 (09:32 +0200)]
swanctl: Include config snippets from conf.d subdirectory
Fixes #2371.
Tobias Brunner [Thu, 29 Jun 2017 07:30:30 +0000 (09:30 +0200)]
conf: Add support to generate include statements in .conf files
Tobias Brunner [Mon, 26 Jun 2017 08:29:17 +0000 (10:29 +0200)]
curl: Enable following redirects
The maximum number of redirects can be limited. The functionality can also
be disabled.
Fixes #2366.
Tobias Brunner [Thu, 6 Jul 2017 13:51:29 +0000 (15:51 +0200)]
ikev2: AES-CMAC-PRF-128 only uses the first 64 bits of each nonce
References #2377.
Tobias Brunner [Thu, 13 Jul 2017 09:54:50 +0000 (11:54 +0200)]
error-notify: Don't stop sending notifies after removing a disconnected listener
This prevented new listeners from receiving notifies if they joined
after another listener disconnected previously, and if they themselves
disconnected their old connection would prevent them again from getting
notifies.
Tobias Brunner [Thu, 6 Jul 2017 12:14:06 +0000 (14:14 +0200)]
farp: Only remove one tracked entry
Multiple CHILD_SAs sharing the same traffic selectors (e.g. during
make-before-break reauthentication) also have the same reqid assigned.
If all matching entries are removed we could end up without entry even
though an SA exists that still uses these traffic selectors.
Fixes #2373.
Tobias Brunner [Tue, 20 Jun 2017 10:01:24 +0000 (12:01 +0200)]
ike: Trigger CHILD_INSTALLED state change after corresponding log message
This way we get the log message in stroke and swanctl as last message
when establishing a connection. It's already like this for the IKE_SA
where IKE_ESTABLISHED is set after the corresponding log message.
Fixes #2364.
Andreas Steffen [Wed, 19 Jul 2017 11:22:10 +0000 (13:22 +0200)]
sw-collector: sw-collector.first_file setting retrieves creation date from file stats
Tobias Brunner [Mon, 24 Jul 2017 09:34:39 +0000 (11:34 +0200)]
swima-collector: Fix compile error if SWID_DIRECTORY is not defined
Tobias Brunner [Mon, 24 Jul 2017 09:31:19 +0000 (11:31 +0200)]
libimcv: Add missing files to Android.mk
Andreas Steffen [Tue, 18 Jul 2017 18:53:35 +0000 (20:53 +0200)]
Version bump to 5.6.0dr3
Andreas Steffen [Tue, 18 Jul 2017 18:43:03 +0000 (20:43 +0200)]
testing: Fixed the path of pt-tls-client
Andreas Steffen [Tue, 18 Jul 2017 18:02:21 +0000 (20:02 +0200)]
checksum: Compile sw-collector before checksum
Andreas Steffen [Tue, 18 Jul 2017 05:25:31 +0000 (07:25 +0200)]
checksum: Added pt-tls-client and sw-collector
Andreas Steffen [Sun, 16 Jul 2017 07:52:52 +0000 (09:52 +0200)]
sw-collector: Moved to its own directory and added man page
Andreas Steffen [Sat, 15 Jul 2017 16:37:52 +0000 (18:37 +0200)]
pt-tls-client: Added man page
Andreas Steffen [Thu, 13 Jul 2017 12:22:50 +0000 (14:22 +0200)]
Version bump to 5.6.0dr2
Andreas Steffen [Thu, 13 Jul 2017 10:03:27 +0000 (12:03 +0200)]
sw-collector: strip arch suffix from package names
Andreas Steffen [Sun, 9 Jul 2017 21:17:22 +0000 (23:17 +0200)]
sw-collector: Check for epoch-less Debian package versions
Andreas Steffen [Wed, 12 Jul 2017 13:22:25 +0000 (15:22 +0200)]
libtpmtss: Support of Intel TABRMD interface
Andreas Steffen [Sat, 8 Jul 2017 21:21:56 +0000 (23:21 +0200)]
Version bump to 5.6.0dr1
This major version includes the new SWIMA IMC/IMV pair which
implements the "draft-ietf-sacm-nea-swima-patnc" Internet Draft.
Full compliance to the ISO 19770-2:2015 SWID tag standard has
been achieved.
Andreas Steffen [Sat, 8 Jul 2017 21:20:32 +0000 (23:20 +0200)]
Merge branch 'swima'
Andreas Steffen [Sat, 8 Jul 2017 20:36:51 +0000 (22:36 +0200)]
testing: Added tnc/tnccs-20-nea-pt-tls scenario
Andreas Steffen [Sat, 8 Jul 2017 14:39:45 +0000 (16:39 +0200)]
testing: Adaptation to ISO 19770-2:2015 SWID standard
Andreas Steffen [Fri, 7 Jul 2017 07:09:58 +0000 (09:09 +0200)]
pt-tls-client: Support for TPM keyids
Andreas Steffen [Thu, 29 Jun 2017 09:28:15 +0000 (11:28 +0200)]
imv-swima: Implemented SW event processing
Andreas Steffen [Mon, 26 Jun 2017 16:07:53 +0000 (18:07 +0200)]
sw-collector: Query central collector database
Andreas Steffen [Mon, 26 Jun 2017 16:07:11 +0000 (18:07 +0200)]
libimcv: Moved REST API from imv_swid and imv_swima to libimcv
Andreas Steffen [Thu, 22 Jun 2017 05:45:28 +0000 (07:45 +0200)]
swidtag: strongSwan swidtag file with double underscores
Andreas Steffen [Sun, 18 Jun 2017 21:24:18 +0000 (23:24 +0200)]
sw-collector: Collects endpoint software events
Andreas Steffen [Sat, 10 Jun 2017 08:23:28 +0000 (10:23 +0200)]
imv-swima: Created SWIMA IMV plugin
Andreas Steffen [Sat, 10 Jun 2017 08:22:01 +0000 (10:22 +0200)]
imc-swima: Created SWIMA IMC plugin
Andreas Steffen [Tue, 23 May 2017 05:05:45 +0000 (07:05 +0200)]
unit-tests: Added IETF SWIMA PA-TNC attribute tests
Andreas Steffen [Mon, 22 May 2017 14:04:06 +0000 (16:04 +0200)]
libimcv: Implemented IETF SW PA-TNC attributes
Andreas Steffen [Wed, 24 May 2017 04:35:32 +0000 (06:35 +0200)]
libimcv: Fixed memory leak
Andreas Steffen [Mon, 22 May 2017 14:00:43 +0000 (16:00 +0200)]
libimcv: Corrected order of subscription flags
Andreas Steffen [Mon, 22 May 2017 13:46:44 +0000 (15:46 +0200)]
libimcv: Added IETF Software PA-TNC attributes
Andreas Steffen [Mon, 22 May 2017 13:44:44 +0000 (15:44 +0200)]
libtncif: Added IETF Software PA-TNC message subtype
Andreas Steffen [Thu, 20 Apr 2017 09:41:15 +0000 (11:41 +0200)]
libimcv: SWID tag generation and discovery
Andreas Steffen [Fri, 31 Mar 2017 11:12:57 +0000 (13:12 +0200)]
libimcv: Update database to ISO 19770-2:2015 SWID standard
Andreas Steffen [Sat, 8 Jul 2017 21:19:18 +0000 (23:19 +0200)]
testing: Fixed typo in openssl-ikev2/rw-suite-b-192 scenario
Tobias Brunner [Fri, 7 Jul 2017 07:23:14 +0000 (09:23 +0200)]
testing: Support running multiple tests with * as wildcard (e.g. ikev2/ocsp-*)
Tobias Brunner [Fri, 7 Jul 2017 06:53:32 +0000 (08:53 +0200)]
x509: Correctly encode nonce in OCSP request
The nonce value is encoded as OCTET STRING, however, the extension
values themselves must also be encoded as OCTET STRING.
Tobias Brunner [Wed, 5 Jul 2017 15:55:06 +0000 (17:55 +0200)]
swanctl: Document eap_id in remote sections
Tobias Brunner [Tue, 20 Jun 2017 10:16:56 +0000 (12:16 +0200)]
kernel-pfroute: Make sure there is a netmask when enumerating subnets
Tobias Brunner [Thu, 15 Jun 2017 12:36:40 +0000 (14:36 +0200)]
pki: Load pubkey plugin to print public keys
Since
3317d0e77b1a the public keys are printed via certificate printer,
but that only works if the public key is actually wrapped, which
requires the pubkey plugin.
Fixes:
3317d0e77b1a ("Standardized printing of certificate information")
Tobias Brunner [Thu, 15 Jun 2017 12:36:19 +0000 (14:36 +0200)]
pki: Fix typo in --print man page
Tobias Brunner [Mon, 12 Jun 2017 07:58:31 +0000 (09:58 +0200)]
sql: Use qualified names in SQL query statements
VIRTUAL is a new reserved keyword in MySQL 5.7.6 that caused some of these
queries to fail.
Fixes #2359.
Tobias Brunner [Tue, 30 May 2017 16:27:20 +0000 (18:27 +0200)]
stroke: Don't load configs with invalid proposals
References #2347.
Tobias Brunner [Tue, 30 May 2017 16:23:12 +0000 (18:23 +0200)]
ikev1: Determine transform ID before mapping integrity algorithm ID
Due to the lookup based on the mapped algorithm ID the resulting AH
proposals were invalid.
Fixes #2347.
Fixes:
8456d6f5a8e9 ("ikev1: Don't require AH mapping for integrity algorithm when generating proposal")
Tobias Brunner [Tue, 16 May 2017 15:34:02 +0000 (17:34 +0200)]
eap-aka-3gpp: Add plugin that implements 3GPP MILENAGE algorithm in software
This is similar to the eap-aka-3gpp2 plugin. K (optionally concatenated
with OPc) may be configured as binary EAP secret in ipsec.secrets or
swanctl.conf.
Based on a patch by Thomas Strangert.
Fixes #2326.
Tobias Brunner [Tue, 16 May 2017 15:30:38 +0000 (17:30 +0200)]
utils: Make second argument to memxor() const
Tobias Brunner [Tue, 4 Jul 2017 09:52:34 +0000 (11:52 +0200)]
android: New release after fixing issues with older Android versions and DB upgrade
Tobias Brunner [Tue, 4 Jul 2017 09:44:47 +0000 (11:44 +0200)]
android: Fix database update from older versions
Tobias Brunner [Tue, 4 Jul 2017 09:10:45 +0000 (11:10 +0200)]
android: Fix version string on older Android releases
SECURITY_PATCH is apparently only available since Android 6.