Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | message: Limit maximum number of IKEv2 fragments | Tobias Brunner | 2014-10-10 | 1 | -1/+11 |
| | | | | | | | | The maximum for IKEv1 is already 255 due to the 8-bit fragment number. With an overhead of 17 bytes (x64) per fragment and a default maximum of 10000 bytes per packet the maximum memory required is 14 kB for a fragmented message. | ||||
* | packet: Define a global default maximum size for IKE packets | Tobias Brunner | 2014-10-10 | 1 | -6/+1 |
| | |||||
* | message: Ensure a minimum fragment length | Tobias Brunner | 2014-10-10 | 1 | -8/+18 |
| | |||||
* | message: Fragment and reassemble IKEv2 messages | Tobias Brunner | 2014-10-10 | 2 | -133/+366 |
| | |||||
* | message: Handle encrypted fragment payload similar to the encrypted payload | Tobias Brunner | 2014-10-10 | 1 | -16/+91 |
| | |||||
* | ikev2: Add encrypted fragment payload | Tobias Brunner | 2014-10-10 | 4 | -12/+454 |
| | |||||
* | encrypted_payload: Encrypted payload can be constructed from plaintext | Tobias Brunner | 2014-10-10 | 2 | -0/+38 |
| | |||||
* | encrypted_payload: Expose generate() to generate the plaintext | Tobias Brunner | 2014-10-10 | 2 | -1/+17 |
| | |||||
* | encrypted_payload: Extract some utility functions | Tobias Brunner | 2014-10-10 | 1 | -74/+110 |
| | |||||
* | message: Split generate() in multiple functions | Tobias Brunner | 2014-10-10 | 1 | -67/+122 |
| | |||||
* | ikev2: Add notify for IKEv2 fragmentation | Tobias Brunner | 2014-10-10 | 2 | -7/+15 |
| | |||||
* | ikev1: Move defragmentation to message_t | Tobias Brunner | 2014-10-10 | 2 | -2/+224 |
| | |||||
* | message: fragment() generates message and fragments and caches them | Tobias Brunner | 2014-10-10 | 2 | -27/+98 |
| | |||||
* | message: Make packet argument optional in generate() | Tobias Brunner | 2014-10-10 | 1 | -1/+4 |
| | |||||
* | ikev1: Move fragment generation to message_t | Tobias Brunner | 2014-10-10 | 2 | -2/+125 |
| | |||||
* | ike: Rename encryption_payload to encrypted_payload | Tobias Brunner | 2014-10-10 | 7 | -99/+95 |
| | |||||
* | encoding: Accept all exchange types for non IKEv1/IKEv2 major versions | Martin Willi | 2014-09-22 | 1 | -5/+11 |
| | |||||
* | ikev1: Don't cache last block of INFORMATIONAL messages as IV | Tobias Brunner | 2014-09-12 | 1 | -2/+2 |
| | | | | | | | | | We don't expect a response with the same MID, but apparently some devices (e.g. FRITZ!Box) do that for DPDs, while still treating the response as a new exchange. By storing the last message block as IV we can't decrypt the first block of such a response. Fixes #661. | ||||
* | ikev1: Log IV when encrypting messages | Tobias Brunner | 2014-09-12 | 1 | -0/+1 |
| | |||||
* | ikev1: Skip unusable IPComp proposals | Tobias Brunner | 2014-09-12 | 1 | -1/+1 |
| | | | | Fixes #661. | ||||
* | ikev1: Properly handle different proposal numbering schemes | Tobias Brunner | 2014-09-12 | 1 | -5/+10 |
| | | | | | | | | | | | | | | | | | | While the examples in RFC 2408 show proposal numbers starting at 1 and increasing by one for each subsequent proposal this is not mandatory. Actually, IKEv1 proposals may start at any number, the only requirement is that the proposal numbers increase monotonically they don't have to do so consecutively. Most implementations follow the examples and start numbering at 1 (charon, racoon, Shrew, Cisco, Windows XP, FRITZ!Box) but pluto was one of the implementations that started with 0 and there might be others out there. The previous assumption that implementations always start numbering proposals at 0 caused problems with clients that start numbering with 1 and whose first proposal consists of multiple protocols (e.g. ESP+IPComp). Fixes #661. | ||||
* | encoding: Don't explicitly include <arpa/inet.h> | Martin Willi | 2014-06-04 | 2 | -2/+0 |
| | |||||
* | payload: Use common prefixes for all payload type identifiers | Martin Willi | 2014-06-04 | 43 | -681/+681 |
| | | | | | The old identifiers did not use a proper namespace and often clashed with other defines. | ||||
* | ikev1: Add an option to accept unencrypted ID/HASH payloads | Martin Willi | 2014-04-17 | 1 | -1/+20 |
| | | | | | | | | | Even in Main Mode, some Sonicwall boxes seem to send ID/HASH payloads in unencrypted form, probably to allow PSK lookup based on the ID payloads. We by default reject that, but accept it if the charon.accept_unencrypted_mainmode_messages option is set in strongswan.conf. Initial patch courtesy of Paul Stewart. | ||||
* | ikev1: Accept SPI size of any length <= 16 in ISAKMP proposal | Tobias Brunner | 2014-03-31 | 1 | -4/+12 |
| | | | | Fixes #533. | ||||
* | ike: Support encoding of attribute certificates in CERT payloads | Martin Willi | 2014-03-31 | 1 | -1/+6 |
| | |||||
* | Added IFOM_CAPABILITY notify message type | Andreas Steffen | 2013-11-01 | 2 | -6/+10 |
| | |||||
* | iv_gen: Provide external sequence number (IKE, ESP) | Tobias Brunner | 2013-10-11 | 3 | -5/+7 |
| | | | | This prevents duplicate sequential IVs in case of a HA failover. | ||||
* | ikev2: Use IV generator to encrypt encrypted payload | Tobias Brunner | 2013-10-11 | 1 | -1/+9 |
| | |||||
* | ikev1: Support parsing of AH+IPComp proposals | Martin Willi | 2013-10-11 | 1 | -9/+11 |
| | |||||
* | ikev1: Accept more than two certificate payloads | Martin Willi | 2013-10-11 | 1 | -2/+2 |
| | |||||
* | ikev1: Support en-/decoding of SA payloads with AH algorithms | Martin Willi | 2013-10-11 | 1 | -31/+99 |
| | |||||
* | message: print type of configuration payload | Martin Willi | 2013-09-03 | 1 | -1/+21 |
| | |||||
* | message: print attributes for IKEv1 configuration payloads as well | Martin Willi | 2013-09-03 | 1 | -1/+2 |
| | |||||
* | Fix various API doc issues and typos | Tobias Brunner | 2013-07-18 | 1 | -5/+5 |
| | | | | Partially based on an old patch by Adrian-Ken Rueegsegger. | ||||
* | linked-list: Remove barely used has_more() method | Tobias Brunner | 2013-07-17 | 1 | -83/+105 |
| | | | | | | | | This required some refactoring when handling encrypted payloads. Also changed log messages so that "encrypted payload" is logged instead of "encryption payload" (even if we internally still call it that) as that's the name used in RFC 5996. | ||||
* | Fix crash if the initiator has no suitable proposal available | Tobias Brunner | 2013-06-21 | 1 | -0/+5 |
| | | | | Could be triggered with a typo in the ike or esp options when ! is used. | ||||
* | proposals: try next if IKEv2 algorithm could not be mapped to IKEv1 | Martin Willi | 2013-05-06 | 1 | -2/+4 |
| | |||||
* | Allow up to 10 NAT-D payloads in IKEv1 messages | Tobias Brunner | 2013-03-20 | 1 | -1/+1 |
| | |||||
* | added ERX_SUPPORTED IKEv2 Notify | Andreas Steffen | 2013-03-02 | 2 | -7/+11 |
| | |||||
* | Merge branch 'opaque-ports' | Martin Willi | 2013-03-01 | 1 | -1/+5 |
|\ | | | | | | | | | Adds a %opaque port option and support for port ranges in left/rightprotoport. Currently not supported by any of our kernel backends. | ||||
| * | Don't reject OPAQUE ports while verifying traffic selector substructure | Martin Willi | 2013-02-21 | 1 | -1/+5 |
| | | |||||
* | | Allow more than one CERTREQ payload for IKEv2 | Tobias Brunner | 2013-02-08 | 1 | -2/+2 |
|/ | | | | | | There is no reason not to do so (RFC 5996 explicitly mentions multiple CERTREQ payloads) and some implementations seem to use the same behavior as had to be used with IKEv1 (i.e. each CA in its own CERTREQ payload). | ||||
* | Merge branch 'ikev1-fragmentation' | Tobias Brunner | 2013-01-12 | 5 | -11/+356 |
|\ | | | | | | | | | | | | | This adds support for the proprietary IKEv1 fragmentation extension. Conflicts: NEWS | ||||
| * | Add support to create IKE fragments | Tobias Brunner | 2012-12-24 | 2 | -0/+30 |
| | | | | | | | | | | All fragments currently use the same fragment ID (1) as that's what other implementations are doing. | ||||
| * | Add message rules to properly handle IKE fragments | Tobias Brunner | 2012-12-24 | 1 | -0/+8 |
| | | | | | | | | | | These are sent in unencrypted messages and are the only payload contained in such messages. | ||||
| * | Reset the encrypted flag when handling IKE messages that contain a fragment | Tobias Brunner | 2012-12-24 | 1 | -0/+6 |
| | | | | | | | | | | Racoon sets the encrypted bit for messages containing a fragment, but these messages are not really encrypted (the fragmented message is though). | ||||
| * | Payload added to handle IKE fragments | Tobias Brunner | 2012-12-24 | 4 | -11/+312 |
| | | |||||
* | | Don't use bio_writer_t.skip() to write length field when appending more data | Martin Willi | 2013-01-11 | 1 | -4/+4 |
| | | | | | | | | | | If the writer reallocates its buffer, the length pointer might not be valid anymore, or even worse, point to an arbitrary allocation. | ||||
* | | IKEv1 support for PKCS#7 wrapped certificates | Volker RĂ¼melin | 2013-01-11 | 2 | -0/+26 |
| | |