Commit Graph
100 Commits
Author SHA1 Message Date
Martin Willi 0b0191e143 Ignore additional TRANSACTION request if we already queued one 2012-03-20 17:31:21 +01:00
Martin Willi fce566a876 Keep a history of received response hashes to detect late retransmissions
If we receive an old response and we already sent out the next request,
we must be able to identify that it is not the response to the new
request.
2012-03-20 17:31:20 +01:00
Martin Willi 3643179535 Narrow down received and configured traffic selector to a common subset 2012-03-20 17:31:20 +01:00
Martin Willi 7b34de45c3 Don't send a retransmit for a request we never have sent a response 2012-03-20 17:31:20 +01:00
Martin Willi f5ef357791 Print unsigned IKEv1 message IDs 2012-03-20 17:31:20 +01:00
Martin Willi 9f10b95a3b Added a bunch of well known IKEv1 vendor IDs to database 2012-03-20 17:31:20 +01:00
Martin Willi 156cd8827f Use a generic IKEv1 vendor ID database to send and receive vendor IDs 2012-03-20 17:31:20 +01:00
Martin Willi 360c3394cf Fixed compiler warning (set but unused variable) 2012-03-20 17:31:20 +01:00
Martin Willi f91b6ac77a Queue a TRANSACTION message for later processing if Main Mode not yet completed 2012-03-20 17:31:20 +01:00
Martin Willi e33510f8a3 Fixed leak of shared keys in xauth-generic plugin 2012-03-20 17:31:20 +01:00
Martin Willi 45956d15ea Free list after removing the last local credential set, fixes a leak report 2012-03-20 17:31:19 +01:00
Martin Willi 226b0f36c7 Fixed SPI size calculation in DELETE payload 2012-03-20 17:31:19 +01:00
Martin Willi 41fbde4544 Reset task manager state when build() completes an exchange (quick mode) 2012-03-20 17:31:19 +01:00
Martin Willi 92aa6e0255 Include COOKIES in IKEv1 delete payloads 2012-03-20 17:31:19 +01:00
Martin Willi 0acb520758 Support IKEv1 SPIs in IKEv1 delete payload 2012-03-20 17:31:19 +01:00
Martin Willi c9fc577a8a Use version specific DELETE payload identifier in ike_delete task 2012-03-20 17:31:19 +01:00
Martin Willi 8ef2bae4db Activate DELETE tasks when queued 2012-03-20 17:31:19 +01:00
Martin Willi 5dec456b69 Fix IKEv1 DELETE subtask creation and processing 2012-03-20 17:31:19 +01:00
Martin Willi 10e18713f1 Handle DELETE as responder as INFORMATIONAL subtask 2012-03-20 17:31:19 +01:00
Martin Willi 46505067c7 Close SA immediately after sending an INFORMATIONAL error 2012-03-20 17:31:18 +01:00
Martin Willi 97933967a0 Moved responder informational handling to task 2012-03-20 17:31:18 +01:00
Martin Willi 1477ab157c Remove unused status type 2012-03-20 17:31:18 +01:00
Martin Willi 1cc3e92ccc Check if IKEv1 exchange type matches before handling it as response 2012-03-20 17:31:18 +01:00
Martin Willi e7ae90c194 Use informational task in quick mode to send notifies 2012-03-20 17:31:18 +01:00
Martin Willi b47052694f Cleaned up notification sending in IKEv1 task manager 2012-03-20 17:31:18 +01:00
Martin Willi accf46129a Use informational taks to send notify errors 2012-03-20 17:31:18 +01:00
Martin Willi f492907667 Added a task stub to create and process IKEv1 informational exchanges 2012-03-20 17:31:18 +01:00
Martin Willi 590ca1d482 Allow IKEv1 tasks to return ALREADY_DONE to flush all active or passive tasks 2012-03-20 17:31:18 +01:00
Martin Willi 0f61964ed7 Support flushing of single tasks queues in IKEv1 task manager 2012-03-20 17:31:18 +01:00
Martin Willi 9862852823 Double check if we have a packet before retransmitting it 2012-03-20 17:31:18 +01:00
Martin Willi cc6b03bb5a If no IKEv1 shared key found for hosts, try to find one based on config identities 2012-03-20 17:31:17 +01:00
Martin Willi 033dfba01f Log peer cfg enumeration externally for flexibility 2012-03-20 17:31:17 +01:00
Martin Willi d7376e2ab4 Accept NULL identities passed to peer config enumeration 2012-03-20 17:31:17 +01:00
Martin Willi 0e2cc3fed9 Fixed authentication method selection for main mode PSK authentication 2012-03-20 17:31:17 +01:00
Martin Willi ea9e047bc5 Use virtual IP to substitute dynamic traffic selectors in quick mode 2012-03-20 17:31:17 +01:00
Martin Willi 156b8662a6 Queue Mode Config tasks when required 2012-03-20 17:31:16 +01:00
Martin Willi b155084c42 Added IKEv1 Mode Config task based on IKEv2 ike_config 2012-03-20 17:31:16 +01:00
Martin Willi 21c916886d Added missing XAuth auth_class enum name 2012-03-20 17:31:16 +01:00
Martin Willi a22b9e4f33 Reject quick modes if IKE_SA not yet established 2012-03-20 17:31:16 +01:00
Martin Willi 67a753b95c Use a common function to set IKE_SA to established 2012-03-20 17:31:16 +01:00
Martin Willi f223a28ae7 Be less verbose if plugin dependecy not satisfied 2012-03-20 17:31:16 +01:00
Martin Willi 9626164e9a Don't complain when receiving XAuth or Unity configuration attributes 2012-03-20 17:31:16 +01:00
Martin Willi c9e5998d7f Interpret attribute format correctly in IKEv1 configuration format 2012-03-20 17:31:16 +01:00
Martin Willi 9f43868a01 Implemented responder part of XAUTH task 2012-03-20 17:31:16 +01:00
Martin Willi d192cc9dc8 Implemented initiator part of xauth task 2012-03-20 17:31:16 +01:00
Martin Willi 081b6dd3ed Ask for a username/password in xauth-null as XAUTH initiator 2012-03-20 17:31:16 +01:00
Martin Willi 59ee898326 Get first XAuth backend if none configured 2012-03-20 17:31:16 +01:00
Martin Willi cbda13f6fe Accept a xauth backend name appended to left/rightauth 2012-03-20 17:31:15 +01:00
Martin Willi 6ebcbc654c Added auth_cfg option to select XAUTH backend to use 2012-03-20 17:31:15 +01:00
Martin Willi 89afbe58bb Remove unused task swap_initiator method 2012-03-20 17:31:15 +01:00
Martin Willi 1fe6cdfac2 Use a string to identify xauth backends, no need for integer types 2012-03-20 17:31:15 +01:00
Martin Willi 4e73f85b81 Remove xauth_authenticator, we handle it in the task 2012-03-20 17:31:15 +01:00
Martin Willi 96c9159d96 Use a second authentication config to configure XAUTH authentication 2012-03-20 17:31:15 +01:00
Martin Willi 69adeb5bf2 Replace xauth_request task with a new stub where we reimplement it 2012-03-20 17:31:15 +01:00
Martin Willi c6d0098c1b Added missing auth_method_t enum names 2012-03-20 17:31:15 +01:00
Martin Willi a0eea1a7ac Defined hybrid IKEv1 authentication methods 2012-03-20 17:31:15 +01:00
Martin Willi 1755ac0617 Cleaned up quick mode notify processing 2012-03-20 17:31:14 +01:00
Martin Willi 5adf855e3d Add support for KE payloads in IKEv1 quick mode (PFS) 2012-03-20 17:31:14 +01:00
Martin Willi 9bb4de1d83 En- and decode DH group attribute in quick mode SA payloads 2012-03-20 17:31:14 +01:00
Martin Willi fb8bc6a764 Use authenticators in IKEv1 main mode 2012-03-20 17:31:14 +01:00
Martin Willi 76fe7de3fd Added a factory function for IKEv1 authenticators 2012-03-20 17:31:14 +01:00
Martin Willi 7c27c914d4 Implemented IKEv1 pubkey SIG payload processing in an authenticator 2012-03-20 17:31:14 +01:00
Martin Willi 2792587875 Implemented IKEv1 PSK HASH payload processing in separated authenticator 2012-03-20 17:31:14 +01:00
Martin Willi c64a4b4f8e Implemented post-authentication certificate handling for IKEv1 2012-03-20 17:31:13 +01:00
Martin Willi 9ad5b8fa95 Cleanup CERT payload constructors 2012-03-20 17:31:13 +01:00
Martin Willi 0bcdb8e571 Implemented pre-authentication certificate handling for IKEv1 2012-03-20 17:31:13 +01:00
Martin Willi 8c33850615 Added task types for IKEv1 certificate handling 2012-03-20 17:31:13 +01:00
Martin Willi df06ef2098 Cleaned up certreq payload for IKEv2/IKEv1 use 2012-03-20 17:31:13 +01:00
Martin Willi 6ccabe2561 Reverted ike_cert tasks to IKEv2 only, we use dedicated IKEv1 tasks 2012-03-20 17:31:13 +01:00
Martin Willi aaa8f88906 Fix support for plain RSA authentication in IKEv1, both as initiator and responder 2012-03-20 17:31:13 +01:00
Martin Willi a974700fc0 Fix referencing of multiple CERTREQ payload with IKEv1, other cleanups 2012-03-20 17:31:12 +01:00
Martin Willi 695aff41f5 Encode a single IP traffic selector as ID_IPV?_ADDRESS identity 2012-03-20 17:31:12 +01:00
Martin Willi caa6f772c8 Added missing break;s when converting ID_IP_ADDRESS types to ts, extracted function 2012-03-20 17:31:12 +01:00
Martin Willi bd8700f055 Don't use unportable htobe64 macro directly 2012-03-20 17:31:12 +01:00
Martin Willi f4e25e602b Implement htoun/untoh64 with potentially faster htobe64/be64toh macros, if available 2012-03-20 17:31:12 +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 eeca2af81c Removed obsolete transform attribute setters 2012-03-20 17:30:53 +01:00
Martin Willi 914ec2dbf2 Implemented IKEv1 attribute encoding in SA payload 2012-03-20 17:30:53 +01:00
Martin Willi fbebc2a068 Implemented encoding of additional IKEv1 proposal attributes 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
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
Martin Willi c4c5950458 Create host-to-host traffic selectors if quick mode identities missing 2012-03-20 17:30:51 +01:00
Martin Willi d020d4d695 Print message payload names after prepending IKEv1 HASH payload 2012-03-20 17:30:50 +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
Martin Willi 7a7f486df6 Include hardcoded tunnel mode attribute in porposal, remove ESN attribute 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