# this is the list of plugins that are built into libstrongswan and charon
# also these plugins are loaded by default (if not changed in strongswan.conf)
-strongswan_PLUGINS := aes des sha1 sha2 md5 fips-prf random x509 pubkey pkcs1 \
- pem xcbc hmac gmp kernel-netlink socket-default attr android
+strongswan_PLUGINS := openssl fips-prf random pubkey pkcs1 \
+ pem xcbc hmac kernel-netlink socket-default android \
+ eap-identity eap-mschapv2 eap-md5
# helper macros to only add source files for plugins included in the list above
+# source files are relative to the android.mk that called the macro
plugin_enabled = $(findstring $(1), $(strongswan_PLUGINS))
add_plugin = $(if $(call plugin_enabled,$(1)), \
- $(addprefix plugins/$(subst -,_,$(strip $(1))/),$(2)))
+ $(patsubst $(LOCAL_PATH)/%,%, \
+ $(wildcard \
+ $(subst %,$(subst -,_,$(strip $(1))), \
+ $(LOCAL_PATH)/plugins/%/%*.c \
+ ) \
+ ) \
+ ) \
+ )
# includes
strongswan_PATH := $(LOCAL_PATH)
-DHAVE_STRUCT_SADB_X_POLICY_SADB_X_POLICY_PRIORITY \
-DHAVE_IPSEC_MODE_BEET \
-DHAVE_IPSEC_DIR_FWD \
+ -DOPENSSL_NO_EC \
+ -DOPENSSL_NO_ECDSA \
+ -DOPENSSL_NO_ECDH \
+ -DOPENSSL_NO_ENGINE \
+ -DCAPABILITIES \
+ -DCAPABILITIES_NATIVE \
-DMONOLITHIC \
-DUSE_VSTR \
-DROUTING_TABLE=0 \
-DROUTING_TABLE_PRIO=220 \
-DVERSION=\"@PACKAGE_VERSION@\" \
-DPLUGINS='"$(strongswan_PLUGINS)"' \
+ -DPLUGINDIR=\"/system/bin/ipsec\" \
-DIPSEC_DIR=\"/system/bin\" \
-DIPSEC_PIDDIR=\"/data/misc/vpn\" \
-DSTRONGSWAN_CONF=\"/system/etc/strongswan.conf\" \
include $(addprefix $(LOCAL_PATH)/src/,$(addsuffix /Android.mk, \
charon \
libcharon \
+ libhydra \
libstrongswan \
+ libtncif \
))