aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2012-10-11 13:50:18 +0200
committerTobias Brunner <tobias@strongswan.org>2013-07-08 18:49:26 +0200
commit933155fae6bb47d914a1444e77490e3796315930 (patch)
treef2bc5baf5dcb1005103f6d5a48af11e990ad9faa
parentc9df0f989d3d56116684fe7e3e96686a3e667f20 (diff)
downloadstrongswan-933155fae6bb47d914a1444e77490e3796315930.tar.bz2
strongswan-933155fae6bb47d914a1444e77490e3796315930.tar.xz
android: Build option added to load BYOD related plugins and libraries in the Android app
-rw-r--r--src/frontends/android/jni/Android.mk37
-rw-r--r--src/frontends/android/src/org/strongswan/android/logic/CharonVpnService.java8
-rw-r--r--src/frontends/android/src/org/strongswan/android/ui/MainActivity.java2
3 files changed, 39 insertions, 8 deletions
diff --git a/src/frontends/android/jni/Android.mk b/src/frontends/android/jni/Android.mk
index 0ae18fc4b..781d8a1c4 100644
--- a/src/frontends/android/jni/Android.mk
+++ b/src/frontends/android/jni/Android.mk
@@ -1,10 +1,18 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
+# use "bring your own device" (BYOD) features (also see USE_BYOD in
+# MainActivity.java)
+strongswan_USE_BYOD := true
+
strongswan_CHARON_PLUGINS := android-log openssl fips-prf random nonce pubkey \
pkcs1 pkcs8 pem xcbc hmac socket-default kernel-netlink \
eap-identity eap-mschapv2 eap-md5 eap-gtc
+ifneq ($(strongswan_USE_BYOD),)
+strongswan_CHARON_PLUGINS += eap-ttls eap-tnc tnc-imc tnc-tnccs tnccs-20
+endif
+
strongswan_PLUGINS := $(strongswan_CHARON_PLUGINS)
include $(LOCAL_PATH)/strongswan/Android.common.mk
@@ -52,12 +60,25 @@ strongswan_CFLAGS := \
-DDEV_RANDOM=\"/dev/random\" \
-DDEV_URANDOM=\"/dev/urandom\"
+ifneq ($(strongswan_USE_BYOD),)
+strongswan_CFLAGS += -DUSE_BYOD
+endif
+
+strongswan_BUILD := \
+ vstr \
+ openssl \
+ libandroidbridge \
+ strongswan/src/libipsec \
+ strongswan/src/libcharon \
+ strongswan/src/libhydra \
+ strongswan/src/libstrongswan
+
+ifneq ($(strongswan_USE_BYOD),)
+strongswan_BUILD += \
+ strongswan/src/libtnccs \
+ strongswan/src/libtncif \
+ strongswan/src/libimcv
+endif
+
include $(addprefix $(LOCAL_PATH)/,$(addsuffix /Android.mk, \
- vstr \
- openssl \
- libandroidbridge \
- strongswan/src/libipsec \
- strongswan/src/libcharon \
- strongswan/src/libhydra \
- strongswan/src/libstrongswan \
-))
+ $(strongswan_BUILD)))
diff --git a/src/frontends/android/src/org/strongswan/android/logic/CharonVpnService.java b/src/frontends/android/src/org/strongswan/android/logic/CharonVpnService.java
index 02db8c494..5670131ab 100644
--- a/src/frontends/android/src/org/strongswan/android/logic/CharonVpnService.java
+++ b/src/frontends/android/src/org/strongswan/android/logic/CharonVpnService.java
@@ -600,6 +600,14 @@ public class CharonVpnService extends VpnService implements Runnable
{
System.loadLibrary("crypto");
System.loadLibrary("strongswan");
+
+ if (MainActivity.USE_BYOD)
+ {
+ System.loadLibrary("tncif");
+ System.loadLibrary("tnccs");
+ System.loadLibrary("imcv");
+ }
+
System.loadLibrary("hydra");
System.loadLibrary("charon");
System.loadLibrary("ipsec");
diff --git a/src/frontends/android/src/org/strongswan/android/ui/MainActivity.java b/src/frontends/android/src/org/strongswan/android/ui/MainActivity.java
index d7c1cc4ef..3cf395054 100644
--- a/src/frontends/android/src/org/strongswan/android/ui/MainActivity.java
+++ b/src/frontends/android/src/org/strongswan/android/ui/MainActivity.java
@@ -58,6 +58,8 @@ public class MainActivity extends Activity implements OnVpnProfileSelectedListen
public static final String CONTACT_EMAIL = "android@strongswan.org";
public static final String START_PROFILE = "org.strongswan.android.action.START_PROFILE";
public static final String EXTRA_VPN_PROFILE_ID = "org.strongswan.android.VPN_PROFILE_ID";
+ /** Use "bring your own device" (BYOD) features */
+ public static final boolean USE_BYOD = true;
private static final int PREPARE_VPN_SERVICE = 0;
private static final String PROFILE_NAME = "org.strongswan.android.MainActivity.PROFILE_NAME";
private static final String PROFILE_REQUIRES_PASSWORD = "org.strongswan.android.MainActivity.REQUIRES_PASSWORD";