Tobias Brunner
08fe609ce2
android: Actually add Android.mk for libtpmtss
2016-06-28 14:34:13 +02:00
Tobias Brunner
6b726b6fb2
android: Fix build after adding libtpmtss
2016-06-28 11:28:15 +02:00
Andreas Steffen
b031593641
libtpmtss: Added to integrity checks
2016-06-26 18:19:05 +02:00
Andreas Steffen
2343c48341
aikpub2: Output AIK signature algorithm
2016-06-26 18:19:05 +02:00
Andreas Steffen
721ed31b39
Refactoring to tpm_tss_quote_info object
2016-06-26 18:19:05 +02:00
Andreas Steffen
12e1a06987
libimcv: Changed debug level for functional components from 2 to 3
2016-06-26 18:19:05 +02:00
Andreas Steffen
57e80492eb
libtpmtss: Implemented TSS2 quote() method
2016-06-26 18:19:05 +02:00
Andreas Steffen
bc67802ac8
libtpmtss: Implemented TSS2 read_pcr() method
2016-06-22 15:33:44 +02:00
Andreas Steffen
30d4989aec
libimcv: migrate pts to tpm_tss
2016-06-22 15:33:44 +02:00
Andreas Steffen
8301dc859c
libtpmtss: Get TPM 2.0 capabilities
2016-06-22 15:33:44 +02:00
Andreas Steffen
fedc6769dc
libtpmtss: Retrieve TPM 1.2 version info
2016-06-22 15:33:43 +02:00
Andreas Steffen
c08753bdf4
Created libtpmtss library handling access to v1.2 and v2.0 TPMs
2016-06-22 15:33:43 +02:00
Andreas Steffen
6337770845
aikpub2: --handle option retrieves public key from TPM 2.0 NVRAM
2016-06-22 15:33:43 +02:00
Andreas Steffen
87d356dc47
aikpub2: Convert TSS 2.0 AIK public key blob into PKCS#1 format
2016-06-22 15:33:43 +02:00
Tobias Brunner
5435a9a062
unit-tests: Add tests for expires after CHILD_SA rekeying
2016-06-17 18:48:08 +02:00
Tobias Brunner
15cea08adc
child-rekey: Only rekey installed CHILD_SAs
...
Depending on the lifetimes a CHILD_SA we rekeyed as responder might
expire shortly afterwards. We don't want to rekey it again.
When retrying due to an INVALID_KE_PAYLOAD notify the expected state
is CHILD_REKEYING if it is anything else (e.g. due to a collision) we
ignore it.
We also abort the exchange properly if we don't find the CHILD_SA, no
need for an empty INFORMATIONAL exchange anymore.
2016-06-17 18:48:08 +02:00
Tobias Brunner
de4e4687ff
Report test coverage of libcharon and starter
2016-06-17 18:48:08 +02:00
Tobias Brunner
d707a19733
unit-tests: Add test for CHILD_SA rekey if a retry due to an INVALID_KE_PAYLOAD is delayed
2016-06-17 18:48:08 +02:00
Tobias Brunner
6d8041d46b
child-rekey: Ignore failed colliding CHILD_SA rekeyings
...
If a passive rekeying fails due to an INVALID_KE_PAYLOAD we don't want
to consider this task later when resolving collisions. This previously
might have caused the wrong SA to get deleted/installed based on the nonces
in the unsuccessful exchange.
2016-06-17 18:48:08 +02:00
Tobias Brunner
b4f24ac0f6
unit-tests: Add test for collision between IKE_SA rekey and CHILD_SA creation
2016-06-17 18:48:08 +02:00
Tobias Brunner
b92f11c3bd
child-create: Retry creating the CHILD_SA if TEMPORARY_FAILURE is received
...
We queue a delayed task that is initiated after a while.
2016-06-17 18:48:07 +02:00
Tobias Brunner
208678e6e1
ikev2: Add possibility to delay initiation of a queued task
...
Such a task is not initiated unless a certain time has passed. This
allows delaying certain tasks but avoids problems if we'd do this
via a scheduled job (e.g. if the IKE_SA is rekeyed in the meantime).
If the IKE_SA is rekeyed the delay of such tasks is reset when the
tasks are adopted i.e. they get executed immediately on the new IKE_SA.
This hasn't been implemented for IKEv1 yet.
2016-06-17 18:48:07 +02:00
Tobias Brunner
4e2e7d4fec
ike: Reduce RETRY_INTERVAL a bit
...
Retry exchanges between 5 and 15 seconds after a temporary failure.
2016-06-17 18:48:07 +02:00
Tobias Brunner
2045cadc1c
ike-rekey: Return TEMPORARY_FAILURE when concurrently creating a CHILD_SA
2016-06-17 18:48:07 +02:00
Tobias Brunner
46cbdcace9
unit-tests: Add tests for IKE rekeying if INVALID_KE_PAYLOAD notifies are received
2016-06-17 18:48:07 +02:00
Tobias Brunner
0a954d6789
ike: Add configuration option to switch to preferring supplied proposals over local ones
2016-06-17 18:48:07 +02:00
Tobias Brunner
f2ea230b91
child-cfg: Add option to prefer supplied proposals over locally configured ones
2016-06-17 18:48:07 +02:00
Tobias Brunner
3a40d572c6
ike-cfg: Add option to prefer supplied proposals over locally configured ones
2016-06-17 18:48:07 +02:00
Tobias Brunner
f5e8bc18fd
proposal: Remove MODP_NONE from IKE proposals parsed from strings
2016-06-17 18:48:07 +02:00
Tobias Brunner
aae9510148
proposal: Handle MODP_NONE in both directions when selecting proposals
2016-06-17 18:48:07 +02:00
Tobias Brunner
2f211ced9c
proposal: Parse modpnone as MODP_NONE(0)
2016-06-17 18:48:07 +02:00
Tobias Brunner
09711198a7
ike-rekey: Make sure to ignore task when detecting collisions if ike-init subtask failed
...
For instance, if INVALID_KE_PAYLOAD is returned we don't want this task
to affect any active rekeying (no new SA has been established so far).
2016-06-17 18:48:06 +02:00
Tobias Brunner
2e33d1f9ae
unit-tests: Add test for rekey collision if one CREATE_CHILD_SA response is delayed
2016-06-17 18:48:06 +02:00
Tobias Brunner
566134b25a
unit-tests: Add tests for IKE_SA rekeying if collision is not detected by one peer
2016-06-17 18:48:06 +02:00
Tobias Brunner
f67199378d
ike-rekey: Handle undetected collisions also if delete is delayed
...
If the peer does not detect the rekey collision and deletes the old
IKE_SA and then receives the colliding rekey request it will respond with
TEMPORARY_FAILURE. That notify may arrive before the DELETE does, in
which case we may just conclude the rekeying initiated by the peer.
Also, since the IKE_SA is destroyed in any case when we receive a delete
there is no point in storing the delete task in collide() as process_i()
in the ike-rekey task will never be called.
2016-06-17 18:48:06 +02:00
Tobias Brunner
7426576184
ike-rekey: There is no passive reauth task, so it will never collide with one
2016-06-17 18:48:06 +02:00
Tobias Brunner
724d65900c
ike-rekey: Ignore colliding rekey tasks that did not create an IKE_SA
...
This simplifies collision handling and we don't need to know about these
tasks when concluding the rekeying we initiated.
2016-06-17 18:48:06 +02:00
Tobias Brunner
1b989dd4c5
ike-rekey: Properly handle situation if the peer did not notice the rekey collision
...
We conclude the rekeying before deleting the IKE_SA. Waiting for the
potential TEMPORARY_FAILURE notify is no good because if that response
does not reach us the peer will not retransmit it upon our retransmits
of the rekey request if it already deleted the IKE_SA after receiving
our response to the delete.
2016-06-17 18:48:06 +02:00
Tobias Brunner
6270bbde6a
ike-delete: Handle deletes while rekeying differently if there was a collision
...
We treat these as if we concluded the rekeying, the active ike-rekey task
will handle the collision afterwards.
2016-06-17 18:48:06 +02:00
Tobias Brunner
13da616118
ike-rekey: Add method to check if there was a rekey collision
2016-06-17 18:48:06 +02:00
Tobias Brunner
1cca20705a
ikev2: Check for collisions after handling IKE deletion
2016-06-17 18:48:06 +02:00
Tobias Brunner
0a2cad40a6
unit-tests: Add tests for IKE/CHILD delete collisions
2016-06-17 18:48:06 +02:00
Tobias Brunner
144bebe4b2
child-delete: Reply as usual when concurrently rekeying the IKE_SA
...
As per RFC 7296, 2.25.2 (what we did before was the behavior described
in RFC 4718).
2016-06-17 18:48:06 +02:00
Tobias Brunner
7b3eccfff4
unit-tests: Add tests for IKE/CHILD rekey collisions
2016-06-17 18:48:05 +02:00
Tobias Brunner
869b7075fc
child-create: Respond with TEMPORARY_FAILURE while rekeying/deleting IKE_SA
2016-06-17 18:48:05 +02:00
Tobias Brunner
83191e56b2
ike-rekey: Respond with TEMPORARY_FAILURE if CHILD_SAs are currently rekeyed/deleted/established
2016-06-17 18:48:05 +02:00
Tobias Brunner
7015994a94
unit-tests: Add tests for collisions between IKE_SA rekeying and deletion
2016-06-17 18:48:05 +02:00
Tobias Brunner
8a78e41f29
ike-rekey: Handle TEMPORARY_FAILURE notify
2016-06-17 18:48:05 +02:00
Tobias Brunner
c0976a5e01
ike-rekey: Respond with TEMPORARY_FAILURE if we are deleting the SA
2016-06-17 18:48:05 +02:00
Tobias Brunner
72c295df5b
unit-tests: Add tests for IKE SA deletion
2016-06-17 18:48:05 +02:00