Commit Graph
100 Commits
Author SHA1 Message Date
Tobias Brunner 24aa55867e Initialize g and p in create_dh factory method 2012-09-28 15:48:09 +02:00
Tobias Brunner 10b116aa13 Properly initialize chunk for extension OID when parsing CRLs 2012-09-28 15:41:32 +02:00
Tobias Brunner 43e0cb6519 Fix parsing of IPv6 headers in ip_packet_t 2012-09-28 15:15:07 +02:00
Tobias Brunner 9fa335cb1b Properly cleanup varargs in LDAP fetcher's set_option() 2012-09-28 15:13:17 +02:00
Tobias Brunner b5835ee530 Properly cleanup varargs in enumerators of both SQL backends 2012-09-28 15:10:29 +02:00
Tobias Brunner a79af394a0 Allow replay windows smaller than the default of 32 2012-09-27 12:43:39 +02:00
Tobias Brunner 9845391a95 Properly initialize cached address map in kernel-pfroute plugin 2012-09-27 12:43:36 +02:00
Tobias Brunner 45178362c8 Clarified error message if enabling UDP decapsulation fails 2012-09-27 10:49:17 +02:00
Tobias Brunner bfd2cc1cd7 Fixed compilation of kernel-pfroute plugin 2012-09-27 09:23:58 +02:00
Tobias Brunner 358104a47f Added description for flush_auth_cfg and acct_port plus some minor editorial changes 2012-09-25 12:22:05 +02:00
Tobias Brunner 2d39f79b9b IKE_AUTH_LIFETIME task is not defined if IKEv2 is disabled
Fixes #229.
2012-09-25 09:31:47 +02:00
Tobias Brunner 012d7382b0 New Android release after fixing private key issues on Jelly Bean 2012-09-24 17:16:29 +02:00
Tobias Brunner 94106ddc85 android: Leak the private key reference on Jelly Bean to avoid a bug in the framework
A bug in the framework on Android Jelly Bean causes a SIGSEGV when the private
key object returned from KeyChain.getPrivateKey is garbage collected.
Leaking the global reference to that object prevents the garbage
collection and thereby the crash.
2012-09-24 17:16:29 +02:00
Tobias Brunner dfefa2f6dc android: Added a global variable to check the current SDK version 2012-09-24 17:12:18 +02:00
Tobias Brunner 2e2feffb67 Don't check interface of inbound message if interfaces are not filtered
We don't have a proper kernel-net interface on Android yet, so the check
for a usable interface does not work there.
2012-09-24 17:12:18 +02:00
Tobias Brunner 64595464b2 android: Load the private key and certificates separately in android_creds_t 2012-09-24 17:12:18 +02:00
Tobias Brunner 406d680e45 android: Added a method to get the user's private key via JNI 2012-09-24 17:12:18 +02:00
Tobias Brunner c35d468fb1 android: Added a JNI backed private key implementation
This is required because private keys are provided by an OpenSSL engine
in Jelly Bean, which makes them inaccessible directly via getEncoding.
2012-09-24 17:12:18 +02:00
Tobias Brunner 31990a19cc Documentation about some time values clarified 2012-09-24 16:02:03 +02:00
Tobias Brunner f65ec0aa90 Make sure the if_name member of cached route entries is initialized to NULL 2012-09-22 08:23:56 +02:00
Tobias Brunner 4a025539ef NEWS about kernel interface changes 2012-09-21 18:16:27 +02:00
Tobias Brunner e811cf152a Properly handle thread cancelation in rwlock_condvar_t 2012-09-21 18:16:27 +02:00
Tobias Brunner bdf36dac71 Use an rwlock in kernel-pfroute too 2012-09-21 18:16:27 +02:00
Tobias Brunner a25d536eea Use rwlock and rwlock_condvar to increase concurrency in kernel-netlink plugin 2012-09-21 18:16:27 +02:00
Tobias Brunner 16d62305c2 Use a separate mutex for cached routes in kernel-netlink plugin 2012-09-21 18:16:27 +02:00
Tobias Brunner 60dc44648f Added a condvar implementation that works with rwlock_t 2012-09-21 18:16:27 +02:00
Tobias Brunner 4134108c77 Use a lock to safely check and update the time for the next roam event 2012-09-21 18:16:27 +02:00
Tobias Brunner e8e9048fee Added an option to configure the interface on which virtual IP addresses are installed 2012-09-21 18:16:26 +02:00
Tobias Brunner c6b401581a Changed how kernel-netlink handles virtual IP addresses
Also tried to avoid the use of enumerators.
2012-09-21 18:16:26 +02:00
Tobias Brunner 4106aea8e4 Made IP address enumeration more flexible
Also added an option to enumerate addresses on ignored interfaces.
2012-09-21 18:16:26 +02:00
Tobias Brunner 308ec0b7df Avoid calculating the hash if hashtable is empty 2012-09-21 18:16:26 +02:00
Tobias Brunner 1f97e1aaca Use a hashtable to quickly check for usable IP addresses/interfaces 2012-09-21 18:16:26 +02:00
Tobias Brunner 090c556ce8 Drop packets received on ignored interfaces 2012-09-21 18:16:26 +02:00
Tobias Brunner 940e1b0f66 Filter ignored interfaces in kernel interfaces (for events, address enumeration, etc.) 2012-09-21 18:16:26 +02:00
Tobias Brunner 645d7a5ef3 %any is never on a local interface 2012-09-21 18:16:26 +02:00
Tobias Brunner e9a7779003 Avoid memset in is_anyaddr() 2012-09-21 18:16:26 +02:00
Tobias Brunner 9ba36c0f7f Make it easy to check if an address is locally usable via changed get_interface() method 2012-09-21 18:16:26 +02:00
Tobias Brunner aed33805ce Don't ignore loopback devices and allow addresses on them being enumerated 2012-09-21 18:16:26 +02:00
Tobias Brunner 9513225e6b Added options and a lookup function that will allow filtering of network interfaces 2012-09-21 18:16:26 +02:00
Tobias Brunner a2a28d90ac Make streq() and strcaseeq() static inline functions so they can be used as callbacks 2012-09-21 18:16:26 +02:00
Tobias Brunner dad6d904ee Use source address in get_nexthop() call
Otherwise the nexthop returned might belong to a different route than
the one actually used with the current source address.
2012-09-21 18:16:25 +02:00
Tobias Brunner 662534657f Source address lookup refactored
Routes matching the destination are now first parsed and sorted by network
prefix length.  This list is then used to search for the best route with
a matching preferred source address (if one is specified).  This makes sure
we really check all routes for that address.
2012-09-21 18:16:25 +02:00
Tobias Brunner cef0a8118e Check routes with equal prefix if preferred source is specified 2012-09-21 18:16:25 +02:00
Tobias Brunner 9d6b02d6c1 Try to find preferred source on interface if returned source does not match 2012-09-21 18:16:25 +02:00
Tobias Brunner da6d86dd94 Try to keep the given source address when looking up routes
This allows to pin the local end of an IKE_SA to an address that is not the
physical address of an interface.  Without this patch the local address would
change to the physical address when roam events occur.
2012-09-21 18:16:25 +02:00
Tobias Brunner 6676769e8c Make sure we propose a dynamic TS if we don't have hosts to derive a TS from
7ee37114 removed this behavior.
2012-09-21 18:14:17 +02:00
Tobias Brunner 0d33f428d1 Move rw-eap-dynamic scenario to its proper location 2012-09-21 09:34:10 +02:00
Tobias Brunner 8c19323c37 Make stroke user-creds work with XAuth configs 2012-09-18 16:56:17 +02:00
Tobias Brunner 4e16d2e864 Fix Doxygen comment for proposal_keywords_t
Two dots seem to mark the end of a list.
2012-09-18 16:13:23 +02:00
Tobias Brunner 4157a40b45 New Android release after fixing IDr problems 2012-09-18 15:29:29 +02:00
Tobias Brunner af16b5afb0 Use random ports in NetworkManager backend 2012-09-18 14:57:05 +02:00
Tobias Brunner 35e2afd459 Fix equality comparison of auth_cfg_t
We previously only confirmed that rules contained in the first config are also
contained in the second, but since the number of rules does not have to
be equal, it might be that the second config contains rules that the
first one doesn't.
2012-09-18 14:40:41 +02:00
Tobias Brunner b7a500e985 Set AUTH_RULE_IDENTITY_LOOSE for rightid=%<identity> 2012-09-18 14:40:41 +02:00
Tobias Brunner e6fcc172f8 Use AUTH_RULE_IDENTITY_LOOSE in NetworkManager backend 2012-09-18 14:40:40 +02:00
Tobias Brunner e596d0ef1e android: Use AUTH_RULE_IDENTITY_LOOSE 2012-09-18 11:21:49 +02:00
Tobias Brunner 3a8852c76f Add AUTH_RULE_IDENTITY_LOOSE which allows to use IDr loosely as initiator
If it is set on an auth config IDr will not be sent, and later the configured
identity will not only be checked against the returned IDr, but also
against other identities contained in the responder's certificate.
2012-09-18 11:16:10 +02:00
Tobias Brunner cf1ec85207 New Android release after fixing Unicode conversion bug 2012-09-17 10:55:10 +02:00
Tobias Brunner b7c54cf226 android: Fix conversion of actual Unicode strings (i.e. bytes!=chars) 2012-09-17 10:30:39 +02:00
Tobias Brunner 6d30954ae8 Removed the unneeded socket-raw plugin 2012-09-14 14:10:14 +02:00
Tobias Brunner a889cfe5e1 Change traffic selectors during Quick Mode in case of a NAT in transport mode
Windows 7 sends its internal address as TSi.  While we don't support the
NAT-T drafts as used by Windows XP it is interesting to note that the
client there omits the TSi payload which then would automatically get set
to the public IP address of the client.

Fixes #220.
2012-09-14 09:40:18 +02:00
Tobias Brunner 7d786057b4 Merge branch 'custom-crypto'
This provides plugins with an interface to register keywords for
proposals (e.g. when parsing the esp and ike options from ipsec.conf)
and the possibility to register identifiers for kernel algorithms.

It is based on patches contributed by Nanoteq Pty Ltd.
2012-09-13 15:50:52 +02:00
Tobias Brunner 08ad639f32 Added algorithm lookup via kernel_interface_t to the various kernel interfaces 2012-09-13 15:48:49 +02:00
Tobias Brunner 524fb37ccd Added possibility to register custom kernel algorithms to kernel interface 2012-09-13 15:44:47 +02:00
Tobias Brunner 4c57c63062 Added possibility to register custom proposal keywords
Keyword lookup and registration are handled via the new lib->proposal object.
2012-09-13 15:44:46 +02:00
Tobias Brunner 995875210a Removed len argument from proposal_get_token()
Also use enumerators instead of lexparser.h to parse proposal strings.
2012-09-13 15:44:01 +02:00
Tobias Brunner 1962e12fd3 Make arguments for enumerator_create_token|directory const 2012-09-13 15:42:38 +02:00
Tobias Brunner bc6ec4de73 Option added to enforce a configured destination address for DHCP packets 2012-09-13 10:59:24 +02:00
Tobias Brunner 4a4d20de9d Allow calls to set_address() for any host-sized TS, not only dynamic ones
This fixes CHILD_SA updates (e.g. due to MOBIKE), which were broken
since 4cb0783.
2012-09-12 18:14:01 +02:00
Tobias Brunner 455accc687 Ensure traffic selectors are dynamic before calling set_address() when deriving them 2012-09-12 18:13:47 +02:00
Tobias Brunner fa96a350c2 Consistently log XFRM mark masks with 0 prefix in kernel-netlink plugin 2012-09-12 17:40:36 +02:00
Tobias Brunner dc80ef0cde starter: Added --nolog option to suppress logging in starter itself
Fixes #224.
2012-09-12 17:15:14 +02:00
Tobias Brunner 629cdca82c Updates to strongswan.conf(5) man page (added several missing options) 2012-09-12 16:53:45 +02:00
Tobias Brunner 72970b458d Some updates to ipsec.conf(5) man page 2012-09-12 16:53:45 +02:00
Tobias Brunner 23b4d3a52f starter: Allow %any also for protocol in left|rightprotoport 2012-09-12 16:53:45 +02:00
Tobias Brunner f4cc7ea11b Add uniqueids=never to ignore INITIAL_CONTACT notifies
With uniqueids=no the daemon still deletes any existing IKE_SA with the
same peer if an INITIAL_CONTACT notify is received.  With this new option
it also ignores these notifies.
2012-09-10 17:37:18 +02:00
Tobias Brunner 4065e2504c Use the proper types for comma separated attributes read from strongswan.conf
Attributes of different address families previously were mapped to
the same attribute type (the one derived from the address family of the
first address).
2012-09-10 15:17:17 +02:00
Tobias Brunner 383c174a79 Print the name of mem pools instead of the confusing <base>/<size> 2012-09-10 12:42:09 +02:00
Tobias Brunner 747fd544a7 Properly remove broadcast address from mem pools 2012-09-10 11:44:18 +02:00
Tobias Brunner bcf8cdd556 Only initiate an exchange from send_dpd() if a task was actually queued
Otherwise, the initiator would prematurely initiate Quick Mode if it has
DPD enabled and XAuth is used.
2012-09-07 18:05:22 +02:00
Tobias Brunner ccba4f1533 android: New release after adding certificate authentication and reauth fix 2012-09-06 14:54:37 +02:00
Tobias Brunner 3babde90bb Trigger ike_updown event caused by retransmits only after reestablish() has been called
This allows listeners to migrate to the new IKE_SA with the
ike_reestablish event without having to worry about an ike_updown event
for the old IKE_SA.
2012-09-06 11:27:28 +02:00
Tobias Brunner d7d2a5ec38 android: Properly handle reauthentication initiated by the client 2012-09-06 11:27:07 +02:00
Tobias Brunner 0326ceda64 android: Create a new VpnService.Builder after VPN has been established 2012-09-06 11:25:24 +02:00
Tobias Brunner 4dbb193190 Add ike_reestablish() event that is triggered when an IKE_SA is reestablished
This is particularly useful during reauthentication to get the new
IKE_SA.
2012-09-06 11:25:14 +02:00
Tobias Brunner 873b63b771 Add a new condition to mark IKE_SAs that are currently being reauthenticated 2012-09-06 11:23:11 +02:00
Tobias Brunner 4c91845452 starter: Load config again when restarting charon
This got lost in 041e763b.
2012-09-05 16:43:34 +02:00
Tobias Brunner d2e8f20d94 Clear virtual IPs before storing assigned ones on the IKE_SA
Otherwise we'll end up with duplicate or invalid VIPs stored on the
IKE_SA.
2012-09-05 14:35:57 +02:00
Tobias Brunner d1604d0551 Merge branch 'android-client-cert'
Introduces IKEv2 client certificate authentication for the Android App.
2012-09-04 13:58:49 +02:00
Tobias Brunner c89cc22692 android: Native parts handle ikev2-cert VPN type 2012-08-31 18:24:46 +02:00
Tobias Brunner 094a059bcf android: android_creds_t can provide a user's private key and certificate 2012-08-31 18:24:46 +02:00
Tobias Brunner 3aba33868b android: Added JNI method to retrieve user certificate and private key
To simplify things the private key, the user certificate and the CA
certificates are all put into the same list.
2012-08-31 18:24:46 +02:00
Tobias Brunner 38e866c3dd android: Don't show the password dialog if not required 2012-08-31 18:24:46 +02:00
Tobias Brunner 69f731a9d8 android: Enable pkcs8 plugin 2012-08-31 18:24:46 +02:00
Tobias Brunner 5eb7ad3a38 android: Pass the type of VPN to the native parts 2012-08-31 18:24:46 +02:00
Tobias Brunner 655362464e android: Make sure NULL jstrings are converted properly 2012-08-31 18:24:45 +02:00
Tobias Brunner 6de38fe88a android: Display the selected certificate alias in the profile list 2012-08-31 18:24:45 +02:00
Tobias Brunner f46da851ab android: Allow configuration of a user certificate 2012-08-31 18:24:43 +02:00
Tobias Brunner 3f9e90f618 android: Remove NOT NULL constraint from username column 2012-08-31 18:24:23 +02:00
Tobias Brunner d0f6481eb0 android: Separate view added to select certificates 2012-08-31 18:24:23 +02:00
Tobias Brunner 7fedacb2e7 android: Don't try to load the profile with ID 0 2012-08-31 18:24:22 +02:00