]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
AOSP: OpenSSL engine/keystore
authorJouni Malinen <j@w1.fi>
Thu, 9 Aug 2012 19:13:34 +0000 (22:13 +0300)
committerJouni Malinen <j@w1.fi>
Thu, 9 Aug 2012 20:18:31 +0000 (23:18 +0300)
hostapd/Android.mk
src/crypto/tls_openssl.c
wpa_supplicant/Android.mk

index 543c15231403bfd0cd385799d01dc23038cb43d5..9ce08162c1a2562623c3bbd82ad085378ea215ad 100644 (file)
@@ -32,14 +32,11 @@ endif
 # To allow non-ASCII characters in SSID
 L_CFLAGS += -DWPA_UNICODE_SSID
 
-# OpenSSL is configured without engines on Android
-L_CFLAGS += -DOPENSSL_NO_ENGINE
-
 INCLUDES = $(LOCAL_PATH)
 INCLUDES += $(LOCAL_PATH)/src
 INCLUDES += $(LOCAL_PATH)/src/utils
 INCLUDES += external/openssl/include
-INCLUDES += frameworks/base/cmds/keystore
+INCLUDES += system/security/keystore
 ifdef CONFIG_DRIVER_NL80211
 INCLUDES += external/libnl-headers
 endif
index 772f0b2f1ea5b9aff156e8aa7bf226c92e3e47d8..aaa920bf8bc3bd7fe731507e6c4ad1fc240950b0 100644 (file)
 
 #ifndef CONFIG_SMARTCARD
 #ifndef OPENSSL_NO_ENGINE
+#ifndef ANDROID
 #define OPENSSL_NO_ENGINE
 #endif
 #endif
+#endif
 
 #include <openssl/ssl.h>
 #include <openssl/err.h>
@@ -793,16 +795,21 @@ static int tls_engine_init(struct tls_connection *conn, const char *engine_id,
                wpa_printf(MSG_ERROR, "ENGINE: Engine ID not set");
                return -1;
        }
+#ifndef ANDROID
        if (pin == NULL) {
                wpa_printf(MSG_ERROR, "ENGINE: Smartcard PIN not set");
                return -1;
        }
+#endif
        if (key_id == NULL) {
                wpa_printf(MSG_ERROR, "ENGINE: Key Id not set");
                return -1;
        }
 
        ERR_clear_error();
+#ifdef ANDROID
+       ENGINE_load_dynamic();
+#endif
        conn->engine = ENGINE_by_id(engine_id);
        if (!conn->engine) {
                wpa_printf(MSG_ERROR, "ENGINE: engine %s not available [%s]",
@@ -817,11 +824,13 @@ static int tls_engine_init(struct tls_connection *conn, const char *engine_id,
        }
        wpa_printf(MSG_DEBUG, "ENGINE: engine initialized");
 
+#ifndef ANDROID
        if (ENGINE_ctrl_cmd_string(conn->engine, "PIN", pin, 0) == 0) {
                wpa_printf(MSG_ERROR, "ENGINE: cannot set pin [%s]",
                           ERR_error_string(ERR_get_error(), NULL));
                goto err;
        }
+#endif
        /* load private key first in-case PIN is required for cert */
        conn->private_key = ENGINE_load_private_key(conn->engine,
                                                    key_id, NULL, NULL);
index e611d36f23ffe5731e12b1c8ec443a6c9d7b62e6..8d2355738f96f754d9f9019c2f4f1a1862622ab5 100644 (file)
@@ -43,9 +43,6 @@ endif
 # To allow non-ASCII characters in SSID
 L_CFLAGS += -DWPA_UNICODE_SSID
 
-# OpenSSL is configured without engines on Android
-L_CFLAGS += -DOPENSSL_NO_ENGINE
-
 INCLUDES = $(LOCAL_PATH)
 INCLUDES += $(LOCAL_PATH)/src
 INCLUDES += $(LOCAL_PATH)/src/common
@@ -63,7 +60,7 @@ INCLUDES += $(LOCAL_PATH)/src/tls
 INCLUDES += $(LOCAL_PATH)/src/utils
 INCLUDES += $(LOCAL_PATH)/src/wps
 INCLUDES += external/openssl/include
-INCLUDES += frameworks/base/cmds/keystore
+INCLUDES += system/security/keystore
 ifdef CONFIG_DRIVER_NL80211
 INCLUDES += external/libnl-headers
 endif