Commit Graph
1145 Commits
Author SHA1 Message Date
Tobias Brunner 68c6863bbb Moved main part of message processing to task managers.
This will allow individual error handling for each IKE version and should
allow better handling of IKEv1 retransmits.
2012-03-20 17:31:08 +01:00
Tobias Brunner 44ff1153e8 Addded ike_sa_t.set_statistic to set timestamps from task manager. 2012-03-20 17:31:08 +01:00
Clavister OpenSource 52ac2cebe2 IKEv1 XAuth: Fix XAuth task so that it reinitiates. 2012-03-20 17:31:07 +01:00
Clavister OpenSource e63cb7f816 Revert "IKEv1 XAuth: Temporarilty add an "initiate_later" flag to the task manager. When set to TRUE it will cause "initiate" to be called when the current process_response call is finished. This change should be reverted once we have a better method in place."
This reverts commit c6c28f4ac522dd8afb457847bca79eee77f78706.

Revert "IKEv1 XAuth: Added temporary "initiate_xauth" public method to ike_sa_t.  This allows us to initiate an XAuth password authentication exchange after responding to the final message of Main Mode.  This change should be reverted once we have a better method to initiate this exchange."

This reverts commit 5529dc50477e25df9dd5f3c442bb1521c0baf225.
2012-03-20 17:31:07 +01:00
Clavister OpenSource 2c49c53186 IKEv1 XAuth: Fix main mode to work with XAuth PSK. 2012-03-20 17:31:07 +01:00
Martin Willi a2f8fc9711 Use a dedicated IKEv1 vendor ID task to fix using IKEv2 payloads in IKEv1 2012-03-20 17:31:07 +01:00
Martin Willi abf9784786 Pass concrete auth_method to key derivation, as we have that as a responder 2012-03-20 17:30:53 +01:00
Martin Willi b4e815354c Map auth_class to auth method and IKEv1 proposal attribute 2012-03-20 17:30:53 +01:00
Martin Willi cd0017d452 Exchange IKEv1 ESP SA proposal information 2012-03-20 17:30:53 +01:00
Martin Willi 132d5c56de Exchange IKEv1 SA specific proposal data with SA payload 2012-03-20 17:30:52 +01:00
Martin Willi e174e0d445 Added not-yet used sa_payload parameters used in IKEv1 2012-03-20 17:30:52 +01:00
Martin Willi d08269c700 Added a get_rekey/reauth_time() jitter parameter to get time without randomization 2012-03-20 17:30:52 +01:00
Clavister OpenSource b03c700d08 IKEv1 XAuth: Changed the xauth_request task to use the new MIGRATE status. 2012-03-20 17:30:52 +01:00
Clavister OpenSource b94f248ea9 IKEv1 XAuth: Added new MIGRATE status type to status_t.
When a task returns this status from a build or process method, it is a signal to the task manager that it should treat it as if the task returned SUCCESS.
  Additionally it will migrate all remaining tasks from the current queue to a different one, calling swap_initiator for each applicable task.
  Finally, the task manager will call "initiate", if applicable, to kick off tasks in the "queued_tasks" queue.
  Task queue relocation mapping:
	  passive_tasks moves to queued_tasks (which is then fed to active by the initiate call).
	  active_tasks moves to passive_tasks
2012-03-20 17:30:52 +01:00
Clavister OpenSource 46897273d7 IKEv1 XAuth: Added new "swap_initiator" method to the standard task_t interface. This is needed for when we move a task from the passive queue to the active one. I'm not a huge fan of this method of doing things. Perhaps we should change task_t to have build_i, build_r, process_i, and process_r methods, and call the appropriate one from the task manager, since we have these methods for most tasks anyways. 2012-03-20 17:30:52 +01:00
Clavister OpenSource cc50df9e6c IKEv1 XAuth: XAuthInitPreShared working for XAuth initiator (Main Mode responder). Creates USER/PASS request, retrieves the result and sends status. 2012-03-20 17:30:52 +01:00
Clavister OpenSource 2d97ec0d35 IKEv1 XAuth: Added ability to initiate the XAuth transactions under a flag, default not to initiate XAuth. 2012-03-20 17:30:52 +01:00
Clavister OpenSource 01685247b0 IKEv1 XAuth: Added ike_vendor task to the ID_PROT exchange type processing. We need to process vendor payloads to check to see if our peer understands XAuth before using any of these payload types. 2012-03-20 17:30:51 +01:00
Clavister OpenSource e3bb68841a IKEv1 XAuth: Added temporary "initiate_xauth" public method to ike_sa_t. This allows us to initiate an XAuth password authentication exchange after responding to the final message of Main Mode. This change should be reverted once we have a better method to initiate this exchange. 2012-03-20 17:30:51 +01:00
Clavister OpenSource adf7b76f4c IKEv1 XAuth: Temporarilty add an "initiate_later" flag to the task manager. When set to TRUE it will cause "initiate" to be called when the current process_response call is finished. This change should be reverted once we have a better method in place. 2012-03-20 17:30:51 +01:00
Martin Willi 9cc38c8efb Use quick mode task initiator flag instead of passing it as parameter 2012-03-20 17:30:51 +01:00
Martin Willi 4e0bc9af22 Add quick mode ID payloads only if establishing a non-host2host tunnel 2012-03-20 17:30:51 +01:00
Martin Willi c4b8539f93 Refactored traffic selector handling in quick mode 2012-03-20 17:30:51 +01:00
Martin Willi 818330aafe Refactored NONCE payload handling in quick mode 2012-03-20 17:30:51 +01:00
Tobias Brunner 78f7728c30 No need to build a HASH payload in XAUTH task.
It gets added automatically when the message is generated.
2012-03-20 17:30:51 +01:00
Martin Willi c4c5950458 Create host-to-host traffic selectors if quick mode identities missing 2012-03-20 17:30:51 +01:00
Martin Willi da063ec95e Fixed task_manager_v1 compiler warnings 2012-03-20 17:30:50 +01:00
Martin Willi 3e246c4883 Generate a new mid only after we start a new task (and exchange) 2012-03-20 17:30:50 +01:00
Martin Willi a7910b1c6e Derive IKEv1 CHILD_SA keymat twice, once for each IPsec SA 2012-03-20 17:30:50 +01:00
Martin Willi 85f5c478bf Fix seed construction for IKEv1 key derivation 2012-03-20 17:30:50 +01:00
Martin Willi 9cc8bd4fd2 Use a dedicated message hash to detect IKEv1 retransmissions 2012-03-20 17:30:50 +01:00
Tobias Brunner cd200cb821 Authenticate and verify Phase 2 IKEv1 messages with appropriate hashes. 2012-03-20 17:30:50 +01:00
Martin Willi b6016fcab3 Fixed a config reference leak in IKEv2 initiate 2012-03-20 17:30:49 +01:00
Martin Willi 384c1a32a2 XAUTH is initiated based on configuration, no need to call externally 2012-03-20 17:30:49 +01:00
Martin Willi 017d98bf39 Merged IKEv1 attribute payload/data into configuration payload/attribute 2012-03-20 17:30:49 +01:00
Clavister OpenSource df99e976be Temp fix for compile error with XAUTH code. 2012-03-20 17:30:49 +01:00
Clavister OpenSource 23f4e4b42d IKEv1 XAUTH: Added ability to configure XAUTH+PSK. Added task to handle XAUTH requests. Modified task_manager_v1 to enable it to initiate new tasks immediately after finishing a response. 2012-03-20 17:30:49 +01:00
Clavister OpenSource 79e9f776dc Updates ike_cert_post task with modifications needed for dealing with updated cert_payload class. 2012-03-20 17:30:49 +01:00
Martin Willi 5351d63c79 Install negotiated IKEv1 CHILD_SA negotiated in quick mode 2012-03-20 17:30:48 +01:00
Martin Willi ff2a2ad33a Implemented IKEv1 keymat CHILD_SA key derivation function 2012-03-20 17:30:48 +01:00
Martin Willi 6cd72730bf Moved keymat key length lookup functions to keymat.c 2012-03-20 17:30:48 +01:00
Martin Willi d4f6686c69 Extended PRF+ by a non-counting variant as used by IKEv1 2012-03-20 17:30:48 +01:00
Martin Willi a0b52db079 Refactored main mode NONCE/KE payload processing 2012-03-20 17:30:47 +01:00
Martin Willi a0f851cfe0 Refactored main mode HASH payload processing 2012-03-20 17:30:47 +01:00
Martin Willi 73380c8685 Skip any payloads in front of SA to extract initiators SA bytes 2012-03-20 17:30:47 +01:00
Martin Willi 21b7db99c6 Implemented quick mode protocol handling, no CHILD_SA or HASH payloads yet 2012-03-20 17:30:47 +01:00
Martin Willi 12b6a68a5f Add missing keymat cast to avoid compiler warning 2012-03-20 17:30:47 +01:00
Martin Willi 17ec1c74de Don't compare initiator flag in IKE_SA manager, pass initiator parameter to IKE_SA constructor 2012-03-20 17:30:47 +01:00
Martin Willi 1b99befac3 Create and verify PSK HASH payloads in IKEv1 main mode 2012-03-20 17:30:47 +01:00
Martin Willi 4eee34ac49 Added keymat_v1_t.get_hash() to calculate authentication hashes 2012-03-20 17:30:46 +01:00