Refactored Tizen Facet ID Rule Verification 12/71512/3 accepted/tizen/mobile/20160602.091822 accepted/tizen/wearable/20160602.091815 submit/tizen_mobile/20160602.020514 submit/tizen_wearable/20160602.020525
authorManasij Sur Roy <manasij.r@samsung.com>
Wed, 25 May 2016 15:10:46 +0000 (20:40 +0530)
committerManasij Sur Roy <manasij.r@samsung.com>
Thu, 26 May 2016 10:43:47 +0000 (16:13 +0530)
Change-Id: I55806b520645f14f0d670630732f2c271099ea0a
Signed-off-by: Manasij Sur Roy <manasij.r@samsung.com>
20 files changed:
packaging/fido-client.spec
server/CMakeLists.txt
server/fido_app_id_handler.c
test/3_0_Sample_App/FIDOSample/.cproject [new file with mode: 0644]
test/3_0_Sample_App/FIDOSample/.exportMap [new file with mode: 0644]
test/3_0_Sample_App/FIDOSample/.package-stamp [new file with mode: 0644]
test/3_0_Sample_App/FIDOSample/.project [new file with mode: 0644]
test/3_0_Sample_App/FIDOSample/.sdk_delta.info [new file with mode: 0644]
test/3_0_Sample_App/FIDOSample/.sign/.manifest.tmp [new file with mode: 0644]
test/3_0_Sample_App/FIDOSample/.sign/author-signature.xml [new file with mode: 0644]
test/3_0_Sample_App/FIDOSample/.sign/signature1.xml [new file with mode: 0644]
test/3_0_Sample_App/FIDOSample/.tproject [new file with mode: 0644]
test/3_0_Sample_App/FIDOSample/inc/fidosample.h [new file with mode: 0644]
test/3_0_Sample_App/FIDOSample/project_def.prop [new file with mode: 0644]
test/3_0_Sample_App/FIDOSample/res/auth_req.json [new file with mode: 0644]
test/3_0_Sample_App/FIDOSample/res/dereg_req.json [new file with mode: 0644]
test/3_0_Sample_App/FIDOSample/res/reg_req.json [new file with mode: 0644]
test/3_0_Sample_App/FIDOSample/shared/res/fidosample.png [new file with mode: 0644]
test/3_0_Sample_App/FIDOSample/src/fidosample.c [new file with mode: 0644]
test/3_0_Sample_App/FIDOSample/tizen-manifest.xml [new file with mode: 0644]

index 1b5bb74..90ce681 100644 (file)
@@ -35,6 +35,7 @@ BuildRequires:  pkgconfig(gobject-2.0)
 ##BuildRequires:  pkgconfig(capi-appfw-application)
 BuildRequires:  pkgconfig(capi-appfw-app-manager)
 BuildRequires:  pkgconfig(capi-appfw-package-manager)
+BuildRequires:  pkgconfig(pkgmgr-info)
 BuildRequires:  pkgconfig(libsoup-2.4)
 BuildRequires:  pkgconfig(elementary)
 BuildRequires:  pkgconfig(efl-extension)
@@ -270,7 +271,7 @@ This is a dummy ASM for testing FIDO client.
 %{_libdir}/fido/asm/dummy_asm.json
 %endif
 
-%if "%{?tizen_version}" == "2.3.1"
+%if "%{?tizen_version}" == "230" || "%{?tizen_version}" == "2.3.1"
 #################################################################################
 ## Fido Sample App
 
index 7dd8eda..2a18b24 100755 (executable)
@@ -15,6 +15,7 @@ pkg_check_modules(SERVER_pkgs REQUIRED
                libsoup-2.4
                capi-appfw-app-manager
                capi-appfw-package-manager
+               pkgmgr-info
                openssl
                bundle
                libtzplatform-config
@@ -31,6 +32,7 @@ pkg_check_modules(SERVER_pkgs REQUIRED
                                libsoup-2.4
                                capi-appfw-app-manager
                                capi-appfw-package-manager
+                               pkgmgr-info
                                openssl
                                bundle
 )
index 70e347d..9aa01c0 100644 (file)
 #include <string.h>
 #include <app_manager.h>
 #include <package_manager.h>
+#include <openssl/buffer.h>
+#include <openssl/sha.h>
+#include <openssl/evp.h>
+#include <openssl/bio.h>
+#include <openssl/err.h>
+#include <openssl/x509.h>
+#include <pkgmgr-info.h>
+#include <aul.h>
 
 #include "fido_internal_types.h"
 #include "fido_json_handler.h"
@@ -54,6 +62,9 @@ typedef struct _cert_match_info {
        bool is_matched;
 } cert_match_info_s;
 
+#ifdef WITH_JSON_BUILDER
+static uid_t __get_uid_of_dbus_caller(GDBusMethodInvocation *invocation);
+#endif
 
 static inline int
 __read_proc(const char *path, char *buf, int size)
@@ -85,6 +96,29 @@ __read_proc(const char *path, char *buf, int size)
        return ret;
 }
 
+
+static char*
+__get_appid(GDBusMethodInvocation *invocation, pid_t pid)
+{
+       char *app_id = calloc(1024, sizeof(char));
+
+#ifdef WITH_JSON_BUILDER
+       uid_t uid = __get_uid_of_dbus_caller(invocation);
+       int ret = aul_app_get_appid_bypid_for_uid(pid, app_id, 1023, uid);
+#else
+       int ret = aul_app_get_appid_bypid(pid, app_id, 1023);
+#endif
+
+       if (ret != AUL_R_OK) {
+               _ERR("AUL Get App ID failed [%d]", ret);
+               free(app_id);
+
+               return NULL;
+       }
+
+       return app_id;
+}
+
 static char*
 __get_appid_of_dbus_caller(GDBusMethodInvocation *invocation)
 {
@@ -128,33 +162,47 @@ __get_appid_of_dbus_caller(GDBusMethodInvocation *invocation)
 
        g_variant_unref(response);
 
-       char *app_id = NULL;
-       int ret = app_manager_get_app_id(remote_pid, &app_id);
+       return __get_appid(invocation, remote_pid);
+}
 
-       if (app_id == NULL) {
-               _ERR("app_manager_get_app_id for %d failed = %d", remote_pid, ret);
+#ifdef WITH_JSON_BUILDER
+static uid_t
+__get_uid_of_dbus_caller(GDBusMethodInvocation *invocation)
+{
+       GError *error = NULL;
+       GDBusConnection *connection = NULL;
+       const gchar *sender = NULL;
+
+       sender = g_dbus_method_invocation_get_sender(invocation);
+       if (!sender) {
+               _ERR("Failed to get sender");
+               return 0;
+       }
 
-               /* Exception case : Daemons will not have app-ids, for them path will be set : /usr/bin/sample-service */
-               char buf[128];
-               int ret = 0;
+       connection = g_dbus_method_invocation_get_connection(invocation);
+       if (connection == NULL) {
+               _ERR("Failed to open connection for the invocation");
+               return 0;
+       }
 
-               snprintf(buf, sizeof(buf), "/proc/%d/cmdline", upid);
-               ret = __read_proc(buf, buf, sizeof(buf));
-               if (ret <= 0) {
-                       _ERR("No proc directory (%d)\n", upid);
-                       return NULL;
-               }
+       GVariant *result = g_dbus_connection_call_sync(connection,
+               "org.freedesktop.DBus", "/org/freedesktop/DBus", "org.freedesktop.DBus",
+               "GetConnectionUnixUser", g_variant_new("(s)", sender), G_VARIANT_TYPE("(u)"),
+               G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error);
 
-               _INFO("Caller=[%s]", buf);
+       if (result != NULL) {
+               uid_t uid;
+               g_variant_get(result, "(u)", &uid);
+               g_variant_unref(result);
 
-               app_id = strdup(buf);
+               return uid;
        }
 
-
-       return app_id;
+       return 0;
 }
+#endif
 
-/*tizen:pkg-key-hash:<sha256_hash-of-public-key-of-pkg-author-cert>*/
+/*"tizen:pkg-key-hash:B64Encode(Sha256Digest(<Author Root Cert Public Key>))"*/
 const char*
 __get_pub_key(const char *json_id_str)
 {
@@ -189,79 +237,6 @@ __get_pub_key(const char *json_id_str)
        return pub_key;
 }
 
-static bool
-__cert_cb(package_info_h handle, package_cert_type_e cert_type, const char *cert_value, void *user_data)
-{
-       _INFO("__cert_cb start");
-
-       cert_match_info_s *cert_match_info = user_data;
-
-
-       _INFO("cert type = [%d]", cert_type);
-       _INFO("cert value = [%s]", cert_value);
-
-       if (strcmp(cert_value, cert_match_info->cert_str) == 0) {
-               cert_match_info->is_matched = true;
-               _INFO("Comparison success");
-               return false;
-       }
-
-       return true;
-}
-
-static bool
-__verify_caller_id_with_author_cert(const char *caller_app_id, const char *json_id_str)
-{
-       _INFO("__verify_caller_id_with_author_cert start");
-
-       RET_IF_FAIL(caller_app_id != NULL, false);
-       RET_IF_FAIL(json_id_str != NULL, false);
-
-       app_info_h app_info = NULL;
-       int ret = app_info_create(caller_app_id, &app_info);
-       if (ret != APP_MANAGER_ERROR_NONE) {
-               _ERR("app_info_create failed [%d]", ret);
-               return false;
-       }
-
-       package_info_h pkg_info = NULL;
-       char *pkg_name = NULL;
-
-       cert_match_info_s cert_match_info;
-       cert_match_info.is_matched = false;
-
-       cert_match_info.cert_str = __get_pub_key(json_id_str);
-       CATCH_IF_FAIL(cert_match_info.cert_str != NULL);
-
-
-       _INFO("Before app_info_get_package");
-
-       ret = app_info_get_package(app_info, &pkg_name);
-       CATCH_IF_FAIL(ret == APP_MANAGER_ERROR_NONE);
-
-       _INFO("Before package_info_create [%s]", pkg_name);
-       ret = package_info_create(pkg_name, &pkg_info);
-       CATCH_IF_FAIL(ret == APP_MANAGER_ERROR_NONE);
-
-       _INFO("Before package_info_foreach_cert_info");
-       package_info_foreach_cert_info(pkg_info, __cert_cb, &cert_match_info);
-
-       _INFO("After foreach_cert_info");
-
-CATCH :
-       app_info_destroy(app_info);
-       _INFO("After app_info_destroy");
-
-       package_info_destroy(pkg_info);
-       _INFO("After package_info_destroy");
-
-       SAFE_DELETE(pkg_name);
-
-       _INFO("Before return");
-
-       return cert_match_info.is_matched;
-}
-
 static void
 __soup_cb(SoupSession *session, SoupMessage *msg, gpointer user_data)
 {
@@ -295,24 +270,15 @@ __soup_cb(SoupSession *session, SoupMessage *msg, gpointer user_data)
        GList *app_id_list_iter = app_id_list;
        while (app_id_list_iter != NULL) {
                char *id = (char *)(app_id_list_iter->data);
-
-               /*Try Rule = tizen:pkg-key-hash:<sha256_hash-of-public-key-of-pkg-author-cert>*/
-               bool is_cert_matched =
-                               __verify_caller_id_with_author_cert(cb_data->caller_app_id, id);
-               if (is_cert_matched == true) {
+               _INFO("%s", id);
+               /*Rule = tizen:pkg-key-hash:<sha256_hash-of-public-key-of-pkg-author-cert>*/
+               if (strcmp(cb_data->caller_app_id, id) == 0) {
                        real_app_id = strdup(id);
                        error_code = FIDO_ERROR_NONE;
+
+                       _INFO("Match found");
                        break;
-               } else {
-                       /*Try Rule = String comparison*/
-                       if (strcmp(cb_data->caller_app_id, id) == 0) {
-                               real_app_id = strdup(id);
-                               error_code = FIDO_ERROR_NONE;
-                               break;
-                       }
                }
-
-
                app_id_list_iter = app_id_list_iter->next;
        }
 
@@ -355,6 +321,233 @@ __timer_expired(gpointer data)
        return FALSE;
 }
 
+static char*
+__b64_encode(unsigned char *input, int ip_len)
+{
+       RET_IF_FAIL(input != NULL, NULL);
+       RET_IF_FAIL(ip_len > 0, NULL);
+
+       unsigned char *output = calloc(ip_len * 1.5, sizeof(char));
+
+       BIO *bmem = NULL;
+       BIO *b64 = NULL;
+       BUF_MEM *bptr = NULL;
+       b64 = BIO_new(BIO_f_base64());
+       if (b64 == NULL) {
+               _ERR("BIO_new failed \n");
+               free(output);
+               return NULL;
+       }
+
+       BIO_set_flags(b64, BIO_FLAGS_BASE64_NO_NL);
+
+       bmem = BIO_new(BIO_s_mem());
+       b64 = BIO_push(b64, bmem);
+       BIO_write(b64, input, ip_len);
+       BIO_flush(b64);
+       BIO_get_mem_ptr(b64, &bptr);
+
+       memcpy(output, bptr->data, bptr->length);
+       output[bptr->length] = 0;
+
+       if(b64)
+               BIO_free_all(b64);
+
+       return (char*)output;
+}
+
+static int
+__b64_decode(const char *encoded_data, int encoded_size, unsigned char **decoded_data, int *decoded_size)
+{
+       RET_IF_FAIL(encoded_data != NULL, -1);
+
+       //_INFO("%s", encoded_data);
+
+       int len = 0;
+       *decoded_size = encoded_size;
+
+       (*decoded_data) = (unsigned char *) calloc((*decoded_size) * 1.5, sizeof(char));
+
+       BIO *bmem = BIO_new_mem_buf((void *) encoded_data, (*decoded_size));
+
+       BIO *bioCmd = BIO_new(BIO_f_base64());
+
+       BIO_set_flags(bioCmd, BIO_FLAGS_BASE64_NO_NL);
+
+       bmem = BIO_push(bioCmd, bmem);
+
+       len = BIO_read(bmem, (void *) (*decoded_data), (*decoded_size));
+       _INFO("%d", len);
+
+       *decoded_size = len;
+
+       BIO_free_all(bmem);
+
+       _INFO("");
+
+       return 0;
+}
+
+static char*
+__get_pub_key_from_cert(const char *cert_b64)
+{
+       RET_IF_FAIL(cert_b64 != NULL, NULL);
+
+       unsigned char pubkey_der_digest[SHA256_DIGEST_LENGTH] = {0, };
+
+       unsigned char* cert_raw = NULL;//calloc(strlen(cert_b64) * 1.5, sizeof(char));
+
+       int cert_raw_len = 0;
+
+       int ret = __b64_decode(cert_b64, strlen(cert_b64), &cert_raw, &cert_raw_len);
+       if (ret != 0) {
+               _ERR("__b64_decode failed");
+               free(cert_raw);
+
+               return NULL;
+       }
+
+       X509 *x509 = d2i_X509(NULL, (const unsigned char **)(&cert_raw), cert_raw_len);
+       if (x509 == NULL) {
+               _ERR("d2i_X509 failed");
+               free(cert_raw);
+               return NULL;
+       }
+
+       int der_len = i2d_X509_PUBKEY(X509_get_X509_PUBKEY(x509), NULL);
+       if (der_len <= 0) {
+               _ERR("i2d_X509_PUBKEY failed");
+               free(cert_raw);
+               return NULL;
+       }
+
+       unsigned char* der_pubkey  = NULL;
+
+       unsigned char* der_pubkey_temp = NULL;
+
+       int hashed_len = 0;
+
+       der_pubkey_temp = der_pubkey = (unsigned char*)OPENSSL_malloc(der_len);
+
+       i2d_X509_PUBKEY(X509_get_X509_PUBKEY(x509), (unsigned char **)&der_pubkey_temp);
+
+       ret = EVP_Digest(der_pubkey, der_len, pubkey_der_digest, (unsigned int*)&hashed_len, EVP_sha256(), NULL);
+
+       if (ret != 1 ) {
+               _ERR("EVP_Digest failed");
+               OPENSSL_free(der_pubkey);
+
+               return NULL;
+       }
+
+       char *pub_key =  __b64_encode(pubkey_der_digest, (int)hashed_len);
+
+       OPENSSL_free(der_pubkey);
+
+       return pub_key;
+}
+
+/*tizen:pkg-key-hash:<sha256_hash-of-public-key-of-pkg-author-cert>*/
+static char*
+__get_tz_facet_id_of_caller(const char *caller_app_id, GDBusMethodInvocation *invocation)
+{
+       RET_IF_FAIL(caller_app_id != NULL, NULL);
+
+#ifdef WITH_JSON_BUILDER
+       uid_t uid = __get_uid_of_dbus_caller(invocation);
+       _INFO("Caller uid =[%d]", uid);
+#endif
+
+       pkgmgrinfo_pkginfo_h handle = NULL;
+
+#ifdef WITH_JSON_BUILDER
+       int ret = pkgmgrinfo_pkginfo_get_usr_pkginfo(caller_app_id, uid, &handle);
+#else
+       int ret = pkgmgrinfo_pkginfo_get_pkginfo(caller_app_id, &handle);
+#endif
+
+       if (ret < 0) {
+               _ERR("Get Pkg Info Failed failed [%d]", ret);
+               return NULL;
+       }
+
+       _INFO("");
+
+       char *pkgid = NULL;
+       ret = pkgmgrinfo_pkginfo_get_pkgid(handle, &pkgid);
+       if (ret != PMINFO_R_OK) {
+
+               _ERR("pkgmgrinfo_pkginfo_get_pkgid failed [%d]", ret);
+               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+               return NULL;
+       }
+
+       _INFO("");
+
+       pkgmgrinfo_certinfo_h cert_handle;
+       const char *author_cert = NULL;
+       ret = pkgmgrinfo_pkginfo_create_certinfo(&cert_handle);
+       if (ret != PMINFO_R_OK) {
+               _ERR("");
+               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+               return NULL;
+       }
+
+       _INFO("");
+
+#ifdef WITH_JSON_BUILDER
+       ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, cert_handle, uid);
+#else
+       ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, cert_handle);
+#endif
+
+       if (ret != PMINFO_R_OK) {
+               _ERR("");
+               pkgmgrinfo_pkginfo_destroy_certinfo(cert_handle);
+               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+               return NULL;
+       }
+
+       _INFO("");
+
+       ret = pkgmgrinfo_pkginfo_get_cert_value(cert_handle, PMINFO_AUTHOR_ROOT_CERT, &author_cert);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_pkginfo_destroy_certinfo(cert_handle);
+               _ERR("");
+               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+               return NULL;
+       }
+
+       /*_INFO("Author Root Cert=%s", author_cert);*/
+
+       _INFO("");
+
+       char *author_cert_hash = NULL;
+       char *tz_facet_id = NULL;
+       int tz_facet_id_max_len = -1;
+
+
+       author_cert_hash = __get_pub_key_from_cert(author_cert);
+       _INFO("");
+       CATCH_IF_FAIL(author_cert_hash != NULL);
+
+       tz_facet_id_max_len = strlen(author_cert_hash) + 128;
+       tz_facet_id = (char*)(calloc(1, tz_facet_id_max_len));
+       snprintf(tz_facet_id, tz_facet_id_max_len, "%s:%s", "tizen:pkg-key-hash",
+                        author_cert_hash);
+       _INFO("");
+
+
+CATCH :
+
+       _INFO("Before return");
+
+       pkgmgrinfo_pkginfo_destroy_certinfo(cert_handle);
+       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+       _INFO("");
+       return tz_facet_id;
+}
+
 int
 _verify_and_get_facet_id(const char *uaf_app_id, GDBusMethodInvocation *invocation, _facet_id_cb cb, void *user_data)
 {
@@ -369,31 +562,49 @@ _verify_and_get_facet_id(const char *uaf_app_id, GDBusMethodInvocation *invocati
        if (cb_data == NULL)
                return FIDO_ERROR_OUT_OF_MEMORY;
 
-       cb_data->caller_app_id = app_id;
+       /* Tizen Facet Id is:
+       *  "tizen:pkg-key-hash:B64Encode(Sha256Digest(<Author Root Cert Public Key>))"
+       */
+       cb_data->caller_app_id = __get_tz_facet_id_of_caller(app_id, invocation);
+       if (cb_data->caller_app_id == NULL) {
+               SAFE_DELETE(cb_data);
+               return FIDO_ERROR_PERMISSION_DENIED;
+       }
+       _INFO("Caller's Facet Id=%s", cb_data->caller_app_id);
+
        cb_data->cb = cb;
        cb_data->user_data = user_data;
 
+       /*Case 1: UAF JSON does not have appID, so no check is required, put facetid*/
        if (uaf_app_id == NULL) {
-                cb_data->real_app_id = strdup(app_id);
-                g_timeout_add(2, __timer_expired, cb_data);
-                return FIDO_ERROR_NONE;
+               _INFO("UAF msg does not have appID");
+               cb_data->real_app_id = __get_tz_facet_id_of_caller(app_id, invocation);
+               g_timeout_add(2, __timer_expired, cb_data);
+               return FIDO_ERROR_NONE;
        }
 
+       /*Case 2: Try assuming UAF JSON is not URL, so string comparison check is required*/
+       if (strcmp(cb_data->caller_app_id, uaf_app_id) == 0) {
+               _INFO("UAF msg has direct appID");
 
-       SoupURI *parsed_uri = soup_uri_new(uaf_app_id);
+               cb_data->real_app_id = strdup(uaf_app_id);
+               g_timeout_add(2, __timer_expired, cb_data);
 
+               return FIDO_ERROR_NONE;
+       }
+
+       SoupURI *parsed_uri = soup_uri_new(uaf_app_id);
        if (parsed_uri == NULL) {
 
-               if (strcmp(app_id, uaf_app_id) == 0) {
-                       cb_data->real_app_id = strdup(uaf_app_id);
-                       g_timeout_add(2, __timer_expired, cb_data);
-                       return FIDO_ERROR_NONE;
-               } else {
-                       _free_app_id_cb_data(cb_data);
-                       return FIDO_ERROR_PERMISSION_DENIED;
-               }
+               _INFO("soup_uri_new failed");
+               _free_app_id_cb_data(cb_data);
+               return FIDO_ERROR_PERMISSION_DENIED;
        }
 
+       _INFO("UAF msg has appID url");
+       /* Case 3: UAF JSON is URL, so fetch the json from this url, then look for
+       * tizen:pkg-key-hash in "ids" array, allow only if its matched with the caller's value.
+       */
        const char *scheme = soup_uri_get_scheme(parsed_uri);
        if (scheme == NULL) {
                 _free_app_id_cb_data(cb_data);
diff --git a/test/3_0_Sample_App/FIDOSample/.cproject b/test/3_0_Sample_App/FIDOSample/.cproject
new file mode 100644 (file)
index 0000000..66188ab
--- /dev/null
@@ -0,0 +1,576 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+       <storageModule moduleId="org.eclipse.cdt.core.settings">
+               <cconfiguration id="org.tizen.nativecore.config.sbi.gcc45.app.debug.1294257923">
+                       <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.app.debug.1294257923" moduleId="org.eclipse.cdt.core.settings" name="Debug">
+                               <externalSettings/>
+                               <extensions>
+                                       <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+                                       <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.tizen.nativecore.NativeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                               </extensions>
+                       </storageModule>
+                       <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+                               <configuration artifactName="fidosample" buildArtefactType="org.tizen.nativecore.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecore.buildArtefactType.app,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" description="" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;" id="org.tizen.nativecore.config.sbi.gcc45.app.debug.1294257923" name="Debug" parent="org.tizen.nativecore.config.sbi.gcc45.app.debug">
+                                       <folderInfo id="org.tizen.nativecore.config.sbi.gcc45.app.debug.1294257923." name="/" resourcePath="">
+                                               <toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.app.debug.457270679" name="Tizen Native Toolchain" superClass="org.tizen.nativecore.toolchain.sbi.gcc45.app.debug">
+                                                       <targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.841483355" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+                                                       <builder autoBuildTarget="all" buildPath="${workspace_loc:/FIDOSample}/Debug" enableAutoBuild="true" id="org.tizen.nativecore.target.sbi.gnu.builder.822651865" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Tizen Application Builder" superClass="org.tizen.nativecore.target.sbi.gnu.builder"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.1098807218" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
+                                                       <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.187309063" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
+                                                               <option id="gnu.cpp.compiler.option.optimization.level.1553252788" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
+                                                               <option defaultValue="gnu.cpp.compiler.debugging.level.max" id="sbi.gnu.cpp.compiler.option.debugging.level.core.223559038" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core" valueType="enumerated"/>
+                                                               <option defaultValue="false" id="sbi.gnu.cpp.compiler.option.misc.pic.core.1433401865" name="-fPIC option" superClass="sbi.gnu.cpp.compiler.option.misc.pic.core" valueType="boolean"/>
+                                                               <option id="sbi.gnu.cpp.compiler.option.1365099980" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="mobile-3.0-emulator.core_llvm36.i386.core.app"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.531304528" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.core" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/attach-panel&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/chromium-ewk&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-buffer-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ector-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/emile-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/feedback&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/harfbuzz&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/iotcon&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/nsd/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/service-adaptor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.core.57168434" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value=" -fPIE"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.compiler.option.include.paths.601576279" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks.core.385644722" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.core" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="Native_API"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.174572190" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+                                                       </tool>
+                                                       <tool command="clang" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.339330986" name="C Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.c.compiler">
+                                                               <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.option.optimization.level.1576375117" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
+                                                               <option defaultValue="gnu.c.debugging.level.max" id="sbi.gnu.c.compiler.option.debugging.level.core.1263845907" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core" valueType="enumerated"/>
+                                                               <option defaultValue="false" id="sbi.gnu.c.compiler.option.misc.pic.core.1428784412" name="-fPIC option" superClass="sbi.gnu.c.compiler.option.misc.pic.core" valueType="boolean"/>
+                                                               <option id="sbi.gnu.c.compiler.option.1757898274" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="mobile-3.0-emulator.core_llvm36.i386.core.app"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks_inc.core.1506326638" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.c.compiler.option.frameworks_inc.core" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/attach-panel&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/chromium-ewk&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-buffer-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ector-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/emile-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/feedback&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/harfbuzz&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/iotcon&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/nsd/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/service-adaptor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks_cflags.core.1367628143" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.c.compiler.option.frameworks_cflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value=" -fPIE"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                               </option>
+                                                               <option id="gnu.c.compiler.option.include.paths.2039918584" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks.core.173800772" name="Tizen-Frameworks" superClass="sbi.gnu.c.compiler.option.frameworks.core" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="Native_API"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.536039701" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.1842917047" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
+                                                       <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.linker.943053959" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
+                                                               <option defaultValue="false" id="sbi.gnu.cpp.linker.option.shared_flag.core.285663499" name="Linker.Shared" superClass="sbi.gnu.cpp.linker.option.shared_flag.core" valueType="boolean"/>
+                                                               <option defaultValue="false" id="sbi.gnu.cpp.linker.option.noundefined.core.963915080" name="Report unresolved symbol references (-Wl,--no-undefined)" superClass="sbi.gnu.cpp.linker.option.noundefined.core" valueType="boolean"/>
+                                                               <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.core.1031658708" name="Tizen-Frameworks-Other-Lflags" superClass="sbi.gnu.cpp.linker.option.frameworks_lflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_LINKER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_LINKER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="-pie -lpthread "/>
+                                                                       <listOptionValue builtIn="false" value="-Xlinker -rpath=&quot;/home/developer/sdk_tools/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-Xlinker --version-script=&quot;${PROJ_PATH}/.exportMap&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-L&quot;${SBI_SYSROOT}/usr/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="$(RS_LIBRARIES)"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.link.option.paths.2010106666" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib}&quot;"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.545062717" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+                                                                       <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+                                                                       <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+                                                               </inputType>
+                                                       </tool>
+                                                       <tool command="i386-linux-gnueabi-as" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.754264914" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+                                                               <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1105641169" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativecore.tool.fnmapgen.177084884" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
+                                                       <tool id="org.tizen.nativecore.tool.fnmapgen.cpp.781762655" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
+                                                       <tool id="org.tizen.nativecore.tool.ast.498860237" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
+                                                       <tool id="org.tizen.nativecore.tool.ast.cpp.1320375851" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.2073726469" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.po.compiler.311931961" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.edc.compiler.541771488" name="EDC Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.edc.compiler"/>
+                                               </toolChain>
+                                       </folderInfo>
+                                       <sourceEntries>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="inc"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="res"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="shared"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
+                                       </sourceEntries>
+                               </configuration>
+                       </storageModule>
+                       <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+               </cconfiguration>
+               <cconfiguration id="org.tizen.nativecore.config.sbi.gcc45.app.release.1136749094">
+                       <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.app.release.1136749094" moduleId="org.eclipse.cdt.core.settings" name="Release">
+                               <externalSettings/>
+                               <extensions>
+                                       <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+                                       <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.tizen.nativecore.NativeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                               </extensions>
+                       </storageModule>
+                       <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+                               <configuration artifactName="org.example.fidosample" buildArtefactType="org.tizen.nativecore.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecore.buildArtefactType.app,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" description="" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;" id="org.tizen.nativecore.config.sbi.gcc45.app.release.1136749094" name="Release" parent="org.tizen.nativecore.config.sbi.gcc45.app.release">
+                                       <folderInfo id="org.tizen.nativecore.config.sbi.gcc45.app.release.1136749094." name="/" resourcePath="">
+                                               <toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.app.release.862843768" name="Tizen Native Toolchain" superClass="org.tizen.nativecore.toolchain.sbi.gcc45.app.release">
+                                                       <targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.1276891174" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+                                                       <builder buildPath="${workspace_loc:/FIDOSample}/Release" id="org.tizen.nativecore.target.sbi.gnu.builder.1375695689" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Tizen Application Builder" superClass="org.tizen.nativecore.target.sbi.gnu.builder"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.830485332" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
+                                                       <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.489116302" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
+                                                               <option id="gnu.cpp.compiler.option.optimization.level.987691966" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
+                                                               <option defaultValue="gnu.cpp.compiler.debugging.level.default" id="sbi.gnu.cpp.compiler.option.debugging.level.core.1505762988" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core" valueType="enumerated"/>
+                                                               <option defaultValue="false" id="sbi.gnu.cpp.compiler.option.misc.pic.core.1396241771" name="-fPIC option" superClass="sbi.gnu.cpp.compiler.option.misc.pic.core" valueType="boolean"/>
+                                                               <option id="sbi.gnu.cpp.compiler.option.1352110291" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="mobile-3.0-emulator.core_llvm36.i386.core.app"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.1143506565" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.core" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/attach-panel&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/chromium-ewk&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-buffer-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ector-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/emile-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/feedback&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/harfbuzz&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/iotcon&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/nsd/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/service-adaptor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.core.726631054" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value=" -fPIE"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.compiler.option.include.paths.2089387549" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks.core.348988531" superClass="sbi.gnu.cpp.compiler.option.frameworks.core" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="Native_API"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.2137121011" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+                                                       </tool>
+                                                       <tool command="clang" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.290338780" name="C Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.c.compiler">
+                                                               <option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.option.optimization.level.2063485939" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
+                                                               <option defaultValue="gnu.c.debugging.level.default" id="sbi.gnu.c.compiler.option.debugging.level.core.1542993472" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core" valueType="enumerated"/>
+                                                               <option defaultValue="false" id="sbi.gnu.c.compiler.option.misc.pic.core.1145941581" name="-fPIC option" superClass="sbi.gnu.c.compiler.option.misc.pic.core" valueType="boolean"/>
+                                                               <option id="sbi.gnu.c.compiler.option.1096690980" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="mobile-3.0-emulator.core_llvm36.i386.core.app"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks_inc.core.1911420229" superClass="sbi.gnu.c.compiler.option.frameworks_inc.core" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/attach-panel&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/chromium-ewk&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-buffer-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ector-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/emile-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/feedback&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/harfbuzz&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/iotcon&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/nsd/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/service-adaptor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks_cflags.core.385200874" superClass="sbi.gnu.c.compiler.option.frameworks_cflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value=" -fPIE"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                               </option>
+                                                               <option id="gnu.c.compiler.option.include.paths.1471856880" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks.core.486551532" superClass="sbi.gnu.c.compiler.option.frameworks.core" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="Native_API"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1956535695" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.1853168940" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
+                                                       <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.linker.1827165968" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
+                                                               <option defaultValue="false" id="sbi.gnu.cpp.linker.option.shared_flag.core.1633414702" name="Linker.Shared" superClass="sbi.gnu.cpp.linker.option.shared_flag.core" valueType="boolean"/>
+                                                               <option defaultValue="false" id="sbi.gnu.cpp.linker.option.noundefined.core.288964063" name="Report unresolved symbol references (-Wl,--no-undefined)" superClass="sbi.gnu.cpp.linker.option.noundefined.core" valueType="boolean"/>
+                                                               <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.core.1019604882" superClass="sbi.gnu.cpp.linker.option.frameworks_lflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_LINKER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_LINKER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="-pie -lpthread "/>
+                                                                       <listOptionValue builtIn="false" value="-Xlinker -rpath=&quot;/home/developer/sdk_tools/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-Xlinker --version-script=&quot;${PROJ_PATH}/.exportMap&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-L&quot;${SBI_SYSROOT}/usr/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="$(RS_LIBRARIES)"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.link.option.paths.2062157365" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib}&quot;"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.9051221" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+                                                                       <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+                                                                       <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+                                                               </inputType>
+                                                       </tool>
+                                                       <tool command="i386-linux-gnueabi-as" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.1118617402" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+                                                               <inputType id="cdt.managedbuild.tool.gnu.assembler.input.619942447" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativecore.tool.fnmapgen.360602832" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
+                                                       <tool id="org.tizen.nativecore.tool.fnmapgen.cpp.170508763" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
+                                                       <tool id="org.tizen.nativecore.tool.ast.943270127" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
+                                                       <tool id="org.tizen.nativecore.tool.ast.cpp.805127209" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.279942213" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.po.compiler.1770447282" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.edc.compiler.115316938" name="EDC Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.edc.compiler"/>
+                                               </toolChain>
+                                       </folderInfo>
+                                       <sourceEntries>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="inc"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="res"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="shared"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
+                                       </sourceEntries>
+                               </configuration>
+                       </storageModule>
+                       <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+               </cconfiguration>
+       </storageModule>
+       <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+               <project id="FIDOSample.org.tizen.nativecore.target.sbi.gcc45.app.813732158" name="Tizen Native Application" projectType="org.tizen.nativecore.target.sbi.gcc45.app"/>
+       </storageModule>
+       <storageModule moduleId="scannerConfiguration">
+               <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+               <scannerConfigBuildInfo instanceId="org.tizen.nativecore.config.sbi.gcc45.app.debug.1294257923">
+                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+               </scannerConfigBuildInfo>
+               <scannerConfigBuildInfo instanceId="org.tizen.nativecore.config.sbi.gcc45.app.release.1136749094">
+                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+               </scannerConfigBuildInfo>
+       </storageModule>
+       <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
+       <storageModule moduleId="refreshScope" versionNumber="2">
+               <configuration configurationName="Debug">
+                       <resource resourceType="PROJECT" workspacePath="/FIDOSample"/>
+               </configuration>
+               <configuration configurationName="Release">
+                       <resource resourceType="PROJECT" workspacePath="/FIDOSample"/>
+               </configuration>
+       </storageModule>
+</cproject>
diff --git a/test/3_0_Sample_App/FIDOSample/.exportMap b/test/3_0_Sample_App/FIDOSample/.exportMap
new file mode 100644 (file)
index 0000000..43e310e
--- /dev/null
@@ -0,0 +1,4 @@
+{
+       global: main;
+       local: *;
+};
diff --git a/test/3_0_Sample_App/FIDOSample/.package-stamp b/test/3_0_Sample_App/FIDOSample/.package-stamp
new file mode 100644 (file)
index 0000000..40cbe59
--- /dev/null
@@ -0,0 +1 @@
+TPK
\ No newline at end of file
diff --git a/test/3_0_Sample_App/FIDOSample/.project b/test/3_0_Sample_App/FIDOSample/.project
new file mode 100644 (file)
index 0000000..606d4fa
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>FIDOSample</name>
+       <comment></comment>
+       <projects>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+                       <triggers>full,incremental,</triggers>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.cdt.core.cnature</nature>
+               <nature>org.eclipse.cdt.core.ccnature</nature>
+               <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+               <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+       </natures>
+</projectDescription>
diff --git a/test/3_0_Sample_App/FIDOSample/.sdk_delta.info b/test/3_0_Sample_App/FIDOSample/.sdk_delta.info
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/test/3_0_Sample_App/FIDOSample/.sign/.manifest.tmp b/test/3_0_Sample_App/FIDOSample/.sign/.manifest.tmp
new file mode 100644 (file)
index 0000000..bbf5cfa
--- /dev/null
@@ -0,0 +1,7 @@
+bin/fidosample__DEL__WgEhVSg9CcEzEcnArIp4RnttTZSJLY8JtuzjawtTMjk=
+res/auth_req.json__DEL__+VGOAwyOy463TeKoSBSvfJ5VI2Ia3Mph3MM+AO7CHgQ=
+res/dereg_req.json__DEL__ZDmm6IvrmTiIUD1eBplxELwAvl7QZq/zgHzsWWdv1IU=
+res/reg_req.json__DEL__5tGbcOSBn3LIbI0yLSbPYLB/25zDzUnw4Kf34csq9U4=
+shared/res/fidosample.png__DEL__1d0oEZHqPn+QzNzGIHwj9ODby6x9ggFs9uOsav6jPNs=
+tizen-manifest.xml__DEL__SztCZl9ir1jfrq9evt5W6XsJvDCfK7aEw4rWyS4/YA8=
+author-signature.xml__DEL__JmdZWtHNu+p3bArd3tN6tW057xgoaLOGpAbYKDzQqKM=
diff --git a/test/3_0_Sample_App/FIDOSample/.sign/author-signature.xml b/test/3_0_Sample_App/FIDOSample/.sign/author-signature.xml
new file mode 100644 (file)
index 0000000..900db8f
--- /dev/null
@@ -0,0 +1,78 @@
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="AuthorSignature">
+<SignedInfo>
+<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></CanonicalizationMethod>
+<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"></SignatureMethod>
+<Reference URI="bin%2Ffidosample">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>WgEhVSg9CcEzEcnArIp4RnttTZSJLY8JtuzjawtTMjk=</DigestValue>
+</Reference>
+<Reference URI="res%2Fauth_req.json">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>+VGOAwyOy463TeKoSBSvfJ5VI2Ia3Mph3MM+AO7CHgQ=</DigestValue>
+</Reference>
+<Reference URI="res%2Fdereg_req.json">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>ZDmm6IvrmTiIUD1eBplxELwAvl7QZq/zgHzsWWdv1IU=</DigestValue>
+</Reference>
+<Reference URI="res%2Freg_req.json">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>5tGbcOSBn3LIbI0yLSbPYLB/25zDzUnw4Kf34csq9U4=</DigestValue>
+</Reference>
+<Reference URI="shared%2Fres%2Ffidosample.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>1d0oEZHqPn+QzNzGIHwj9ODby6x9ggFs9uOsav6jPNs=</DigestValue>
+</Reference>
+<Reference URI="tizen-manifest.xml">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>SztCZl9ir1jfrq9evt5W6XsJvDCfK7aEw4rWyS4/YA8=</DigestValue>
+</Reference>
+<Reference URI="#prop">
+<Transforms>
+<Transform Algorithm="http://www.w3.org/2006/12/xml-c14n11"></Transform>
+</Transforms>
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>lpo8tUDs054eLlBQXiDPVDVKfw30ZZdtkRs1jd7H5K8=</DigestValue>
+</Reference>
+</SignedInfo>
+<SignatureValue>
+cqfDRPjCXXaU1E04ZxNJl3rRdQnUh3G8Vk5+TmfzkmZYDyGxnTUoWPhOR7SJTfw8X99nyIvBhh73
+Kodr3bcDk6tnLC9gTwpfNLtVED2iaf/x6xeVhr5SHy8zzLjp8+sCwJSTopF+4NTH4CaTQSXozcbX
+KmqJ86Rx8ZMpg6gNUW4=
+</SignatureValue>
+<KeyInfo>
+<X509Data>
+<X509Certificate>
+MIIClTCCAX2gAwIBAgIGAVS+MxueMA0GCSqGSIb3DQEBBQUAMFYxGjAYBgNVBAoMEVRpemVuIEFz
+c29jaWF0aW9uMRowGAYDVQQLDBFUaXplbiBBc3NvY2lhdGlvbjEcMBoGA1UEAwwTVGl6ZW4gRGV2
+ZWxvcGVycyBDQTAeFw0xMjExMDEwMDAwMDBaFw0xOTAxMDEwMDAwMDBaMBExDzANBgNVBAMMBmF1
+dGhvcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAl7bGdyZXMKz7qjMuDZ7jyYsib6xtlTgi
+X6tVTwFoKF+NFAhhe6PDGOkQORdzSTXa0JbDNr58M2VbR1hA0ZMu4WOvrp0WQ/F9hm+DGKOrp7M1
+nIxSlI+mZc29ihoP5VV1BwB+Ua//7tE8dy3TdMgd+ynvIAC1H1Pct4ZbfHf+tIcCAwEAAaMyMDAw
+DAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMwDQYJKoZIhvcN
+AQEFBQADggEBAEpEhLMr7bbrHev5xc1YdTUUbA21iBSvcSDKo1iOUWIM0LlAYe2TVKbFWD5yR7ax
+ICBpsjHAPVyWHavEPHMYKK2ML3/vZp+i4kZ/PI04hK3wAeRdmlFOsnfIAIKy+4TnJREU7YhmUWsn
+8lmt6xfpDwwFZXo1Nu35U/raHw/vCAjQhtkcoUmzstl8UAsjihhGFRG3Zf3wh/gZU3M2bAMgAJdw
+uaoMpWSe7SbhGY+xUD27sN0xPZUE7iqT9L/jS2SfklwoSgj7bB8UR9wNlQ1p+47YH7pkdsO8jlZ9
+B1VCzUBgSK1/4kiO4ReI4oAkPrJixa8C2cTasHEFww1Eo2lqyVM=
+</X509Certificate>
+<X509Certificate>
+MIIDOTCCAiGgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMRowGAYDVQQKDBFUaXplbiBBc3NvY2lh
+dGlvbjEaMBgGA1UECwwRVGl6ZW4gQXNzb2NpYXRpb24xHjAcBgNVBAMMFVRpemVuIERldmVsb3Bl
+cnMgUm9vdDAeFw0xMjAxMDEwMDAwMDBaFw0yNzAxMDEwMDAwMDBaMFYxGjAYBgNVBAoMEVRpemVu
+IEFzc29jaWF0aW9uMRowGAYDVQQLDBFUaXplbiBBc3NvY2lhdGlvbjEcMBoGA1UEAwwTVGl6ZW4g
+RGV2ZWxvcGVycyBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANVGhRGmMIUyBA7o
+PCz8Sxut6z6HNkF4oDIuzuKaMzRYPeWodwe9O0gmqAkToQHfwg2giRhE5GoPld0fq+OYMMwSasCu
+g8dwODx1eDeSYVuOLWRxpAmbTXOsSFi6VoWeyaPEm18JBHvZBsU5YQtgZ6Kp7MqzvQg3pXOxtajj
+vyHxiatJl+xXrHgcXC1wgyG3buty7u/Fi2mvKXJ0PRJcCjjK81dqe/Vr20sRUCrbk02zbm5ggFt/
+jIEhV8wbFRQpliobc7J4dSTKhFfrqGM8rdd54LYhD7gSI1CFSe16pUXfcVR7FhJztRaiGLnCrwBE
+dyTZ248+D4L/qR/D0axb3jcCAwEAAaMQMA4wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOC
+AQEAnOXXQ/1O/QTDHyrmQDtFziqPY3xWlJBqJtEqXiT7Y+Ljpe66e+Ee/OjQMlZe8gu21/8cKklH
+95RxjopMWCVedXDUbWdvS2+CdyvVW/quT2E0tjqIzXDekUTYwwhlPWlGxvfj3VsxqSFq3p8Brl04
+1Gx5RKAGyKVsMfTLhbbwSWwApuBUxYfcNpKwLWGPXkysu+HctY03OKv4/xKBnVWiN8ex/Sgesi0M
++OBAOMdZMPK32uJBTeKFx1xZgTLIhk45V0hPOomPjZloiv0LSS11eyd451ufjW0iHRE7WlpR6EvI
+W6TFyZgMpQq+kg4hWl2SBTf3s2VI8Ygz7gj8TMlClg==
+</X509Certificate>
+</X509Data>
+</KeyInfo>
+<Object Id="prop"><SignatureProperties xmlns:dsp="http://www.w3.org/2009/xmldsig-properties"><SignatureProperty Id="profile" Target="#AuthorSignature"><dsp:Profile URI="http://www.w3.org/ns/widgets-digsig#profile"></dsp:Profile></SignatureProperty><SignatureProperty Id="role" Target="#AuthorSignature"><dsp:Role URI="http://www.w3.org/ns/widgets-digsig#role-author"></dsp:Role></SignatureProperty><SignatureProperty Id="identifier" Target="#AuthorSignature"><dsp:Identifier></dsp:Identifier></SignatureProperty></SignatureProperties></Object>
+</Signature>
\ No newline at end of file
diff --git a/test/3_0_Sample_App/FIDOSample/.sign/signature1.xml b/test/3_0_Sample_App/FIDOSample/.sign/signature1.xml
new file mode 100644 (file)
index 0000000..919c9c2
--- /dev/null
@@ -0,0 +1,80 @@
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="DistributorSignature">
+<SignedInfo>
+<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></CanonicalizationMethod>
+<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"></SignatureMethod>
+<Reference URI="author-signature.xml">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>JmdZWtHNu+p3bArd3tN6tW057xgoaLOGpAbYKDzQqKM=</DigestValue>
+</Reference>
+<Reference URI="bin%2Ffidosample">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>WgEhVSg9CcEzEcnArIp4RnttTZSJLY8JtuzjawtTMjk=</DigestValue>
+</Reference>
+<Reference URI="res%2Fauth_req.json">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>+VGOAwyOy463TeKoSBSvfJ5VI2Ia3Mph3MM+AO7CHgQ=</DigestValue>
+</Reference>
+<Reference URI="res%2Fdereg_req.json">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>ZDmm6IvrmTiIUD1eBplxELwAvl7QZq/zgHzsWWdv1IU=</DigestValue>
+</Reference>
+<Reference URI="res%2Freg_req.json">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>5tGbcOSBn3LIbI0yLSbPYLB/25zDzUnw4Kf34csq9U4=</DigestValue>
+</Reference>
+<Reference URI="shared%2Fres%2Ffidosample.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>1d0oEZHqPn+QzNzGIHwj9ODby6x9ggFs9uOsav6jPNs=</DigestValue>
+</Reference>
+<Reference URI="tizen-manifest.xml">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>SztCZl9ir1jfrq9evt5W6XsJvDCfK7aEw4rWyS4/YA8=</DigestValue>
+</Reference>
+<Reference URI="#prop">
+<Transforms>
+<Transform Algorithm="http://www.w3.org/2006/12/xml-c14n11"></Transform>
+</Transforms>
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>u/jU3U4Zm5ihTMSjKGlGYbWzDfRkGphPPHx3gJIYEJ4=</DigestValue>
+</Reference>
+</SignedInfo>
+<SignatureValue>
+iWznpDhncdeAURt1FwyK7CQyy8KyO5lEba/rUrzZVoYJwkgAM209CQS50LlXU+PkMiHXsBX3h/yy
+WbWzZqAhCtpluG4pD6PdINeHlBzgvppAIwOq9e/M5ff5QDKdiIa1WzWEaPDXAEb11Jsb7D53iZJW
+MR2VefMT89GBwcfJweQ=
+</SignatureValue>
+<KeyInfo>
+<X509Data>
+<X509Certificate>
+MIICmzCCAgQCCQDXI7WLdVZwiTANBgkqhkiG9w0BAQUFADCBjzELMAkGA1UEBhMCS1IxDjAMBgNV
+BAgMBVN1d29uMQ4wDAYDVQQHDAVTdXdvbjEWMBQGA1UECgwNVGl6ZW4gVGVzdCBDQTEiMCAGA1UE
+CwwZVGl6ZW4gRGlzdHJpYnV0b3IgVGVzdCBDQTEkMCIGA1UEAwwbVGl6ZW4gUHVibGljIERpc3Ry
+aWJ1dG9yIENBMB4XDTEyMTAyOTEzMDMwNFoXDTIyMTAyNzEzMDMwNFowgZMxCzAJBgNVBAYTAktS
+MQ4wDAYDVQQIDAVTdXdvbjEOMAwGA1UEBwwFU3V3b24xFjAUBgNVBAoMDVRpemVuIFRlc3QgQ0Ex
+IjAgBgNVBAsMGVRpemVuIERpc3RyaWJ1dG9yIFRlc3QgQ0ExKDAmBgNVBAMMH1RpemVuIFB1Ymxp
+YyBEaXN0cmlidXRvciBTaWduZXIwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALtMvlc5hENK
+90ZdA+y66+Sy0enD1gpZDBh5T9RP0oRsptJv5jjNTseQbQi0SZOdOXb6J7iQdlBCtR343RpIEz8H
+mrBy7mSY7mgwoU4EPpp4CTSUeAuKcmvrNOngTp5Hv7Ngf02TTHOLK3hZLpGayaDviyNZB5PdqQdB
+hokKjzAzAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAvGp1gxxAIlFfhJH1efjb9BJK/rtRkbYn9+Ez
+GEbEULg1svsgnyWisFimI3uFvgI/swzr1eKVY3Sc8MQ3+Fdy3EkbDZ2+WAubhcEkorTWjzWz2fL1
+vKaYjeIsuEX6TVRUugHWudPzcEuQRLQf8ibZWjbQdBmpeQYBMg5x+xKLCJc=
+</X509Certificate>
+<X509Certificate>
+MIICtDCCAh2gAwIBAgIJAMDbehElPNKvMA0GCSqGSIb3DQEBBQUAMIGVMQswCQYDVQQGEwJLUjEO
+MAwGA1UECAwFU3V3b24xDjAMBgNVBAcMBVN1d29uMRYwFAYDVQQKDA1UaXplbiBUZXN0IENBMSMw
+IQYDVQQLDBpUVGl6ZW4gRGlzdHJpYnV0b3IgVGVzdCBDQTEpMCcGA1UEAwwgVGl6ZW4gUHVibGlj
+IERpc3RyaWJ1dG9yIFJvb3QgQ0EwHhcNMTIxMDI5MTMwMjUwWhcNMjIxMDI3MTMwMjUwWjCBjzEL
+MAkGA1UEBhMCS1IxDjAMBgNVBAgMBVN1d29uMQ4wDAYDVQQHDAVTdXdvbjEWMBQGA1UECgwNVGl6
+ZW4gVGVzdCBDQTEiMCAGA1UECwwZVGl6ZW4gRGlzdHJpYnV0b3IgVGVzdCBDQTEkMCIGA1UEAwwb
+VGl6ZW4gUHVibGljIERpc3RyaWJ1dG9yIENBMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDe
+OTS/3nXvkDEmsFCJIvRlQ3RKDcxdWJJp625pFqHdmoJBdV+x6jl1raGK2Y1sp2Gdvpjc/z92yzAp
+bE/UVLPh/tRNZPeGhzU4ejDDm7kzdr2f7Ia0U98K+OoY12ucwg7TYNItj9is7Cj4blGfuMDzd2ah
+2AgnCGlwNwV/pv+uVQIDAQABoxAwDjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBACqJ
+KO33YdoGudwanZIxMdXuxnnD9R6u72ltKk1S4zPfMJJv482CRGCI4FK6djhlsI4i0Lt1SVIJEed+
+yc3qckGm19dW+4xdlkekon7pViEBWuyHw8OWv3RXtTum1+PGHjBJ2eYY4ZKIpz73U/1NC16sTB/0
+VhfnkHwPltmrpYVe
+</X509Certificate>
+</X509Data>
+</KeyInfo>
+<Object Id="prop"><SignatureProperties xmlns:dsp="http://www.w3.org/2009/xmldsig-properties"><SignatureProperty Id="profile" Target="#DistributorSignature"><dsp:Profile URI="http://www.w3.org/ns/widgets-digsig#profile"></dsp:Profile></SignatureProperty><SignatureProperty Id="role" Target="#DistributorSignature"><dsp:Role URI="http://www.w3.org/ns/widgets-digsig#role-distributor"></dsp:Role></SignatureProperty><SignatureProperty Id="identifier" Target="#DistributorSignature"><dsp:Identifier></dsp:Identifier></SignatureProperty></SignatureProperties></Object>
+</Signature>
\ No newline at end of file
diff --git a/test/3_0_Sample_App/FIDOSample/.tproject b/test/3_0_Sample_App/FIDOSample/.tproject
new file mode 100644 (file)
index 0000000..56660b2
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<tproject xmlns="http://www.tizen.org/tproject">
+    <platforms>
+        <platform>
+            <name>mobile-3.0</name>
+        </platform>
+    </platforms>
+    <package>
+        <blacklist/>
+        <resFallback autoGen="true"/>
+    </package>
+</tproject>
diff --git a/test/3_0_Sample_App/FIDOSample/inc/fidosample.h b/test/3_0_Sample_App/FIDOSample/inc/fidosample.h
new file mode 100644 (file)
index 0000000..f38f214
--- /dev/null
@@ -0,0 +1,37 @@
+#ifndef __fidosample_H__
+#define __fidosample_H__
+
+#include <stdio.h>
+#include <app.h>
+#include <Elementary.h>
+#include <system_settings.h>
+#include <dlog.h>
+#include <efl_extension.h>
+
+#ifdef  LOG_TAG
+#undef  LOG_TAG
+#endif
+#define LOG_TAG "fidosample"
+
+#if !defined(PACKAGE)
+#define PACKAGE "org.example.fidosample"
+#endif
+
+typedef struct appdata {
+       Evas_Object *win;
+       Evas_Object *conform;
+       Evas_Object *layout;
+       Evas_Object *nf;
+       Evas_Object *datetime;
+       Evas_Object *popup;
+       Evas_Object *button;
+       struct tm saved_time;
+} appdata_s;
+
+void start_discover(void *data, Evas_Object *obj, void *event_info);
+void start_check_policy(void *data, Evas_Object *obj, void *event_info);
+void start_registration(void *data, Evas_Object *obj, void *event_info);
+void start_auth(void *data, Evas_Object *obj, void *event_info);
+void start_de_registration(void *data, Evas_Object *obj, void *event_info);
+
+#endif /* __fidosample_H__ */
diff --git a/test/3_0_Sample_App/FIDOSample/project_def.prop b/test/3_0_Sample_App/FIDOSample/project_def.prop
new file mode 100644 (file)
index 0000000..eb187b9
--- /dev/null
@@ -0,0 +1,11 @@
+APPNAME = fidosample
+
+type = app
+profile = mobile-3.0
+
+USER_SRCS = src/fidosample.c
+USER_DEFS =
+USER_INC_DIRS = inc
+USER_OBJS =
+USER_LIBS =
+USER_EDCS =
diff --git a/test/3_0_Sample_App/FIDOSample/res/auth_req.json b/test/3_0_Sample_App/FIDOSample/res/auth_req.json
new file mode 100644 (file)
index 0000000..a88c287
--- /dev/null
@@ -0,0 +1,49 @@
+[
+       {
+               "header": {
+                       "upv": {
+                               "major": 1,
+                               "minor": 0
+                       },
+                       "op": "Auth",
+                       "serverData": "emKubKMS8RxYOth7J8enT_x7dQWBaO1CiC0fGmSEhX56kq2RYo1LRpwvfHlzYRI3p9Ay-l4zJcV3lX6rQ0CYNWi5nNDabClFm3k0pPj0kX5V-db9ejN_05y2J6wqztSD"
+               },
+               "challenge": "1AM2yZY4-9SG4Ns7-hMdB8IV_FTDKFFiUqNJNVbsVoo",
+               "transaction": [
+                       {
+                               "contentType": "text/plain",
+                               "content": "VHJhbnNhY3Rpb24gQ29udGVudCBmb3IgVGVzdC4",
+                               "tcDisplayPNGCharacteristics": [
+                                       {
+                                               "width": 320,
+                                               "height": 240,
+                                               "bitDepth": 16,
+                                               "colorType": 2,
+                                               "compression": 0,
+                                               "filter": 0,
+                                               "interlace": 0
+                                       }
+                               ]
+                       }
+               ],
+               "policy": {
+                       "accepted": [
+                               [
+                                       {
+                                               "aaid": [
+                                                       "0001#8001"
+                                               ]
+                                       }
+                               ],
+                               [
+                                       {
+                                               "aaid": [
+                                                       "DDDD#F001"
+                                               ]
+                                       }
+                               ]
+                       ]
+               }
+       }
+]
+
diff --git a/test/3_0_Sample_App/FIDOSample/res/dereg_req.json b/test/3_0_Sample_App/FIDOSample/res/dereg_req.json
new file mode 100644 (file)
index 0000000..97e5ce7
--- /dev/null
@@ -0,0 +1,17 @@
+[
+    {
+        "header": {
+            "upv": {
+                "major": "1",
+                "minor": "0"
+            },
+            "op": "Dereg"
+        },
+        "authenticators": [
+            {
+                "aaid": "0001#8001",
+                "keyID": "uWrbo_8JI1HmPESrNAStTVV8ZbBrzLsf_kZu1QKX2YY"
+            }
+        ]
+    }
+]
diff --git a/test/3_0_Sample_App/FIDOSample/res/reg_req.json b/test/3_0_Sample_App/FIDOSample/res/reg_req.json
new file mode 100644 (file)
index 0000000..954e0e7
--- /dev/null
@@ -0,0 +1,32 @@
+[
+    {
+        "header": {
+            "upv": {
+                "major": 1,
+                "minor": 0
+            },
+"op":"Reg",
+            "serverData": "nwV8EPqS5raZdAgH3GD9Z-ytCA9MkiiWaCsr1GHHNJ2yUh3HaV1HHxd4Z67FefJOD5sQYZvipfg5BavhdWPMecD2SH39aJixoXN9ZaNwRlcftJe9WbtPNDC9q5V9WX7Z5jCwkAwehcI"
+        },
+        "challenge": "9pIcUwwrY5eD9o3OwfhkeHLnoIl0vaeJUbxSHMe_XgE",
+"username":"ryan",
+        "policy": {
+            "accepted": [
+                [
+                    {
+                        "aaid": [
+                            "0001#8001"
+                        ]
+                    }
+                ],
+                [
+                    {
+                        "aaid": [
+                            "DDDD#F001"
+                        ]
+                    }
+                ]
+            ]
+        }
+    }
+]
diff --git a/test/3_0_Sample_App/FIDOSample/shared/res/fidosample.png b/test/3_0_Sample_App/FIDOSample/shared/res/fidosample.png
new file mode 100644 (file)
index 0000000..9765b1b
Binary files /dev/null and b/test/3_0_Sample_App/FIDOSample/shared/res/fidosample.png differ
diff --git a/test/3_0_Sample_App/FIDOSample/src/fidosample.c b/test/3_0_Sample_App/FIDOSample/src/fidosample.c
new file mode 100644 (file)
index 0000000..3f22bca
--- /dev/null
@@ -0,0 +1,638 @@
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *               http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+#include "fidosample.h"
+#include "fido.h"
+#include <dlog.h>
+
+#define _REG_REQ_FILE_NAME "/home/owner/apps_rw/org.example.fidosample/res/reg_req.json"
+#define _AUTH_REQ_FILE_NAME "/home/owner/apps_rw/org.example.fidosample/res/auth_req.json"
+#define _DEREG_REQ_FILE_NAME "/home/owner/apps_rw/org.example.fidosample/res/dereg_req.json"
+
+static char *json_reg = NULL;
+static char *json_auth = NULL;
+static char *json_dereg = NULL;
+
+static char*
+__read(const char *file_name)
+{
+       FILE *file = fopen(file_name, "rb");
+       if (file == NULL)
+               return NULL;
+
+       fseek(file, 0, SEEK_END);
+       long size = ftell(file);
+       if (size <= 0) {
+               fclose(file);
+               return NULL;
+       }
+
+       fseek(file, 0, SEEK_SET);
+
+       char *json = calloc(1, size + 1);
+       int num_bytes = fread(json, size, 1, file);
+       if (num_bytes <= 0) {
+               free(json);
+               fclose(file);
+               return NULL;
+       }
+
+       json[size] = 0;
+
+       fclose(file);
+
+       return json;
+
+}
+
+static void _response_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       evas_object_del(data);
+}
+
+static void create_popup(char *popup_str, appdata_s *ad)
+{
+       dlog_print(DLOG_INFO, "org.tizen.Fidosample", "fido %s", popup_str);
+
+       Evas_Object *popup = elm_popup_add(ad->win);
+       Evas_Object *btn;
+
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_object_text_set(popup, popup_str);
+
+       btn = elm_button_add(popup);
+       elm_object_style_set(btn, "popup");
+       evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_object_text_set(btn, "OK");
+       elm_object_part_content_set(popup, "button1", btn);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, eext_popup_back_cb, NULL);
+       evas_object_smart_callback_add(btn, "clicked", _response_cb, popup);
+       evas_object_show(popup);
+
+       return;
+}
+
+char *get_error_code(fido_error_e error_code)
+{
+
+       char *error_str = calloc(1,128);
+
+       if(error_code == FIDO_ERROR_NONE)
+               strcpy(error_str, "SUCCESS");
+       else if (error_code == FIDO_ERROR_OUT_OF_MEMORY)
+               strcpy(error_str, "FIDO_ERROR_OUT_OF_MEMORY");
+       else if (error_code == FIDO_ERROR_INVALID_PARAMETER)
+               strcpy(error_str, "FIDO_ERROR_INVALID_PARAMETER");
+       else if (error_code == FIDO_ERROR_NO_DATA)
+               strcpy(error_str, "FIDO_ERROR_NO_DATA");
+       else if (error_code == FIDO_ERROR_PERMISSION_DENIED)
+               strcpy(error_str, "FIDO_ERROR_PERMISSION_DENIED");
+       else if (error_code == FIDO_ERROR_NOT_SUPPORTED)
+               strcpy(error_str, "FIDO_ERROR_NOT_SUPPORTED");
+       else if (error_code == FIDO_ERROR_USER_ACTION_IN_PROGRESS)
+               strcpy(error_str, "FIDO_ERROR_USER_ACTION_IN_PROGRESS");
+       else if (error_code == FIDO_ERROR_USER_CANCELLED)
+               strcpy(error_str, "FIDO_ERROR_USER_CANCELLED");
+       else if (error_code == FIDO_ERROR_UNSUPPORTED_VERSION)
+               strcpy(error_str, "FIDO_ERROR_UNSUPPORTED_VERSION");
+       else if (error_code == FIDO_ERROR_NO_SUITABLE_AUTHENTICATOR)
+               strcpy(error_str, "FIDO_ERROR_NO_SUITABLE_AUTHENTICATOR");
+       else if (error_code == FIDO_ERROR_PROTOCOL_ERROR)
+               strcpy(error_str, "FIDO_ERROR_PROTOCOL_ERROR");
+       else if (error_code == FIDO_ERROR_UNTRUSTED_FACET_ID)
+               strcpy(error_str, "FIDO_ERROR_UNTRUSTED_FACET_ID");
+       else
+               strcpy(error_str, "FIDO_ERROR_UNKNOWN");
+       return error_str;
+}
+
+static void
+__show_error(int tizen_error_code, appdata_s *app_data)
+{
+       char *error_string = get_error_code(tizen_error_code);
+       create_popup(error_string, app_data);
+       free(error_string);
+}
+
+void fido_attestation_type_cb_list(fido_auth_attestation_type_e att_type, void *user_data)
+{
+       char *str = (char *) user_data;
+
+       char tmp[1024] = {0,};
+       sprintf(tmp, " | Attestation Type = [%d]", att_type);
+       strcat(str, tmp);
+}
+
+static void
+__print_authinfo(const fido_authenticator_h auth, appdata_s *ad)
+{
+       dlog_print(DLOG_INFO, "org.tizen.Fidosample", "fido __print_authinfo");
+
+       char str[5000] = {0,};
+       str[0] = '\0';
+       strcpy(str, "DISCOVER RESPONSE");
+       char tmp[1024] = {0,};
+
+       char *title =  NULL;
+       fido_authenticator_get_title(auth, &title);
+       if(title) {
+               sprintf(tmp, " | Title = [%s]", title);
+               strcat(str, tmp);
+       }
+       free(title);
+
+       char *aaid = NULL;
+       fido_authenticator_get_aaid(auth, &aaid);
+       if(aaid) {
+               sprintf(tmp, " | AAID = [%s]", aaid);
+               strcat(str, tmp);
+       }
+       free(aaid);
+
+       char *description = NULL;
+       fido_authenticator_get_description(auth, &description);
+       if(description) {
+               sprintf(tmp, " | Description = [%s]", description);
+               strcat(str, tmp);
+       }
+       free(description);
+
+       char *scheme = NULL;
+       fido_authenticator_get_assertion_scheme(auth, &scheme);
+       if(scheme) {
+               sprintf(tmp, " | Scheme = [%s]", scheme);
+               strcat(str, tmp);
+       }
+       free(scheme);
+
+       fido_authenticator_foreach_attestation_type(auth, fido_attestation_type_cb_list, str);
+
+       fido_auth_algo_e get_algo = -1;
+       fido_authenticator_get_algorithm(auth, &get_algo);
+       if(get_algo != -1) {
+               sprintf(tmp, " | Algo = [%d]", get_algo);
+               strcat(str, tmp);
+       }
+
+       fido_auth_user_verify_type_e user_ver = -1;
+       fido_authenticator_get_verification_method(auth, &user_ver);
+       if(user_ver != -1) {
+               sprintf(tmp, " | Verification = [%d]", user_ver);
+               strcat(str, tmp);
+       }
+
+       fido_auth_key_protection_type_e key_protection = -1;
+       fido_authenticator_get_key_protection_method(auth, &key_protection);
+       if(key_protection != -1) {
+               sprintf(tmp, " | Key Protection = [%d]", key_protection);
+               strcat(str, tmp);
+       }
+
+       fido_auth_matcher_protection_type_e matcher_protection = -1;
+       fido_authenticator_get_matcher_protection_method(auth, &matcher_protection);
+       if(matcher_protection != -1) {
+               sprintf(tmp, " | Matcher Protection = [%d]", matcher_protection);
+               strcat(str, tmp);
+       }
+
+       fido_auth_attachment_hint_e attachment_hint = -1;
+       fido_authenticator_get_attachment_hint(auth, &attachment_hint);
+       if(attachment_hint != -1) {
+               sprintf(tmp, " | Attachment Hint = [%d]", attachment_hint);
+               strcat(str, tmp);
+       }
+
+       fido_auth_tc_display_type_e tc_discplay = -1;
+       fido_authenticator_get_tc_discplay(auth, &tc_discplay);
+       if(tc_discplay != -1) {
+               sprintf(tmp, " | Tc Display = [%d]", tc_discplay);
+               strcat(str, tmp);
+       }
+
+       char *tc_display_type = NULL;
+       fido_authenticator_get_tc_display_type(auth, &tc_display_type);
+       if(tc_display_type) {
+               sprintf(tmp, " | Tc Display Type = [%s]", tc_display_type);
+               strcat(str, tmp);
+       }
+       free(tc_display_type);
+
+       char *icon = NULL;
+       fido_authenticator_get_icon(auth, &icon);
+       if(icon) {
+               sprintf(tmp, " | Icon = [%s]", icon);
+               strcat(str, tmp);
+       }
+       free(icon);
+
+       create_popup(str, ad);
+}
+
+static void
+auth_list_cb(const fido_authenticator_h auth, void *user_data)
+{
+       dlog_print(DLOG_INFO, "org.tizen.Fidosample", "fido auth_list_cb");
+
+       appdata_s *ad = user_data;
+       __print_authinfo(auth, ad);
+}
+
+void
+start_discover(void *data, Evas_Object *obj, void *event_info)
+{
+       int ret = fido_foreach_authenticator(auth_list_cb, data);
+       dlog_print(DLOG_INFO, "org.tizen.Fidosample", "fido_get_available_authenticators = [%d]", ret);
+
+       if (ret != FIDO_ERROR_NONE)
+               __show_error(ret, (appdata_s *)data);
+
+}
+
+void
+start_check_policy(void *data, Evas_Object *obj, void *event_info)
+{
+       bool is_supported = false;
+       int ret = fido_uaf_is_supported(json_reg, &is_supported);
+       dlog_print(DLOG_INFO, "org.tizen.Fidosample", "fido_uaf_is_supported = [%d]", ret);
+
+       char str[2048] = {0,};
+       str[0] = '\0';
+
+       strcpy(str, "CHECK POLICY RESPONSE | ");
+
+       if (ret != FIDO_ERROR_NONE) {
+               char *error_string = get_error_code(ret);
+
+               sprintf(str, "[%s]", error_string);
+               create_popup(str, (appdata_s *) data);
+               free(error_string);
+       }
+       else {
+               if (is_supported == true)
+                       sprintf(str, "TRUE");
+               else
+                       sprintf(str, "FALSE");
+
+               create_popup(str, (appdata_s *) data);
+       }
+}
+
+static void
+_process_cb(fido_error_e tizen_error_code, const char *uaf_response, void *user_data)
+{
+    dlog_print(DLOG_INFO, "org.tizen.Fidosample", "process response = [%d]", tizen_error_code);
+
+       if (tizen_error_code == 0 && uaf_response != NULL) {
+               dlog_print(DLOG_INFO, "org.tizen.Fidosample", "uaf response = %s", uaf_response);
+
+               const int max_popup_str_len = strlen(uaf_response) + 500;
+               char *popup_str = calloc(1, max_popup_str_len);
+
+               snprintf(popup_str, max_popup_str_len - 1, "UAF Response =%s", uaf_response);
+
+               create_popup(popup_str, (appdata_s *) user_data);
+               free(popup_str);
+       }
+       else {
+               __show_error(tizen_error_code, (appdata_s *)user_data);
+       }
+}
+
+void
+start_registration(void *data, Evas_Object *obj, void *event_info)
+{
+       if (json_reg != NULL) {
+               int ret = fido_uaf_get_response_message(json_reg, NULL, _process_cb, data);
+               dlog_print(DLOG_INFO, "org.tizen.Fidosample", "fido_request_get_registration_response = [%d]", ret);
+               if (ret != FIDO_ERROR_NONE)
+                       __show_error(ret, (appdata_s *)data);
+       }
+}
+
+void
+start_auth(void *data, Evas_Object *obj, void *event_info)
+{
+       if (json_auth != NULL) {
+               int ret = fido_uaf_get_response_message(json_auth, NULL, _process_cb, data);
+               dlog_print(DLOG_INFO, "org.tizen.Fidosample", "fido_request_get_authentication_response = [%d]", ret);
+
+               if (ret != FIDO_ERROR_NONE)
+                       __show_error(ret, (appdata_s *)data);
+       }
+}
+
+static void
+_process_dereg_cb(fido_error_e tizen_error_code, const char *uaf_response, void *user_data)
+{
+       dlog_print(DLOG_INFO, "org.tizen.Fidosample", "process response = [%d]", tizen_error_code);
+
+       if (uaf_response)
+               dlog_print(DLOG_INFO, "org.tizen.Fidosample", "uaf_response = [%s]", uaf_response);
+       else
+               dlog_print(DLOG_INFO, "org.tizen.Fidosample", "uaf_response = [NULL]");
+
+       char *error_string = get_error_code(tizen_error_code);
+       create_popup(error_string, (appdata_s *) user_data);
+       free(error_string);
+}
+
+void
+start_de_registration(void *data, Evas_Object *obj, void *event_info)
+{
+       if (json_reg != NULL) {
+               int ret = fido_uaf_get_response_message(json_dereg, NULL, _process_dereg_cb, data);
+               dlog_print(DLOG_INFO, "org.tizen.Fidosample", "fido_request_get_deregistration_response = [%d]", ret);
+
+               if (ret != FIDO_ERROR_NONE)
+                       __show_error(ret, (appdata_s *)data);
+       }
+}
+
+static void
+_process_cb_for_notify_pos(fido_error_e tizen_error_code, const char *uaf_response, void *user_data)
+{
+       dlog_print(DLOG_INFO, "org.tizen.Fidosample", "process response = [%d]", tizen_error_code);
+
+       if (tizen_error_code == 0) {
+               dlog_print(DLOG_INFO, "org.tizen.Fidosample", "uaf response = %s", uaf_response);
+
+               int ret = fido_uaf_set_server_result(FIDO_SERVER_STATUS_CODE_OK, uaf_response);
+        dlog_print(DLOG_INFO, "org.tizen.Fidosample", "fido_uaf_set_server_result =[%d]", ret);
+
+               char *error_string = get_error_code(tizen_error_code);
+               create_popup(error_string, (appdata_s *) user_data);
+               free(error_string);
+       }
+       else {
+               __show_error(tizen_error_code, (appdata_s *)user_data);
+       }
+}
+
+static void
+_process_cb_for_notify_neg(fido_error_e tizen_error_code, const char *uaf_response, void *user_data)
+{
+    dlog_print(DLOG_INFO, "org.tizen.Fidosample", "process response = [%d]", tizen_error_code);
+
+       if (tizen_error_code == 0) {
+               dlog_print(DLOG_INFO, "org.tizen.Fidosample", "uaf response = %s", uaf_response);
+
+               int ret = fido_uaf_set_server_result(0, uaf_response);
+        dlog_print(DLOG_INFO, "org.tizen.Fidosample", "fido_uaf_set_server_result =[%d]", ret);
+
+               char *error_string = get_error_code(tizen_error_code);
+               create_popup(error_string, (appdata_s *) user_data);
+               free(error_string);
+       }
+       else {
+               __show_error(tizen_error_code, (appdata_s *)user_data);
+       }
+}
+
+void
+start_notify_pos(void *data, Evas_Object *obj, void *event_info)
+{
+       if (json_reg != NULL) {
+               int ret = fido_uaf_get_response_message(json_reg, NULL, _process_cb_for_notify_pos, data);
+               dlog_print(DLOG_INFO, "org.tizen.Fidosample", "fido_request_get_registration_response = [%d]", ret);
+       }
+}
+
+void
+start_notify_neg(void *data, Evas_Object *obj, void *event_info)
+{
+       if (json_reg != NULL) {
+               int ret = fido_uaf_get_response_message(json_reg, NULL, _process_cb_for_notify_neg, data);
+               dlog_print(DLOG_INFO, "org.tizen.Fidosample", "fido_request_get_registration_response = [%d]", ret);
+       }
+}
+
+static void
+win_delete_request_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       /* To make your application go to background,
+               Call the elm_win_lower() instead
+               Evas_Object *win = (Evas_Object *) data;
+               elm_win_lower(win); */
+       ui_app_exit();
+}
+
+static void
+list_selected_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       Elm_Object_Item *it = event_info;
+       elm_list_item_selected_set(it, EINA_FALSE);
+}
+
+static Eina_Bool
+naviframe_pop_cb(void *data, Elm_Object_Item *it)
+{
+       ui_app_exit();
+       return EINA_FALSE;
+}
+
+static void
+create_list_view(appdata_s *ad)
+{
+       Evas_Object *list;
+       Evas_Object *btn;
+       Evas_Object *nf = ad->nf;
+       Elm_Object_Item *nf_it;
+
+       /* List */
+       list = elm_list_add(nf);
+       elm_list_mode_set(list, ELM_LIST_COMPRESS);
+       evas_object_smart_callback_add(list, "selected", list_selected_cb, NULL);
+
+       /* Main Menu Items Here */
+       elm_list_item_append(list, "Find Authenticator", NULL, NULL, start_discover, ad);
+       elm_list_item_append(list, "Check UAF Message Supported", NULL, NULL, start_check_policy, ad);
+       elm_list_item_append(list, "Registration", NULL, NULL, start_registration, ad);
+       elm_list_item_append(list, "Authentication", NULL, NULL, start_auth, ad);
+       elm_list_item_append(list, "De-Registration", NULL, NULL, start_de_registration, ad);
+       elm_list_item_append(list, "Set Server Result with Success", NULL, NULL, start_notify_pos, ad);
+       elm_list_item_append(list, "Set Server Result with Failure", NULL, NULL, start_notify_neg, ad);
+
+       elm_list_go(list);
+
+       /* This button is set for devices which doesn't have H/W back key. */
+       btn = elm_button_add(nf);
+       elm_object_style_set(btn, "naviframe/end_btn/default");
+       nf_it = elm_naviframe_item_push(nf, "FIDO Test App", btn, NULL, list, NULL);
+       elm_naviframe_item_pop_cb_set(nf_it, naviframe_pop_cb, ad->win);
+}
+
+static void
+create_base_gui(appdata_s *ad)
+{
+       /*
+        * Widget Tree
+        * Window
+        *  - conform
+        *   - layout main
+        *    - naviframe */
+
+       /* Window */
+       ad->win = elm_win_util_standard_add(PACKAGE, PACKAGE);
+       elm_win_conformant_set(ad->win, EINA_TRUE);
+       elm_win_autodel_set(ad->win, EINA_TRUE);
+
+       if (elm_win_wm_rotation_supported_get(ad->win)) {
+               int rots[4] = { 0, 90, 180, 270 };
+               elm_win_wm_rotation_available_rotations_set(ad->win, (const int *)(&rots), 4);
+       }
+
+       evas_object_smart_callback_add(ad->win, "delete,request", win_delete_request_cb, NULL);
+
+       /* Conformant */
+       ad->conform = elm_conformant_add(ad->win);
+       evas_object_size_hint_weight_set(ad->conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_win_resize_object_add(ad->win, ad->conform);
+       evas_object_show(ad->conform);
+
+       /* Indicator */
+       /* elm_win_indicator_mode_set(ad->win, ELM_WIN_INDICATOR_SHOW); */
+
+       /* Base Layout */
+       ad->layout = elm_layout_add(ad->conform);
+       evas_object_size_hint_weight_set(ad->layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_layout_theme_set(ad->layout, "layout", "application", "default");
+       evas_object_show(ad->layout);
+
+       elm_object_content_set(ad->conform, ad->layout);
+
+       /* Naviframe */
+       ad->nf = elm_naviframe_add(ad->layout);
+       create_list_view(ad);
+       elm_object_part_content_set(ad->layout, "elm.swallow.content", ad->nf);
+       eext_object_event_callback_add(ad->nf, EEXT_CALLBACK_BACK, eext_naviframe_back_cb, NULL);
+       eext_object_event_callback_add(ad->nf, EEXT_CALLBACK_MORE, eext_naviframe_more_cb, NULL);
+
+       /* Show window after base gui is set up */
+       evas_object_show(ad->win);
+}
+
+static bool
+app_create(void *data)
+{
+       /* Hook to take necessary actions before main event loop starts
+          Initialize UI resources and application's data
+          If this function returns true, the main loop of application starts
+          If this function returns false, the application is terminated */
+       appdata_s *ad = data;
+
+       elm_app_base_scale_set(1.8);
+       create_base_gui(ad);
+
+       json_reg = __read(_REG_REQ_FILE_NAME);
+       json_auth = __read(_AUTH_REQ_FILE_NAME);
+       json_dereg = __read(_DEREG_REQ_FILE_NAME);
+
+       return true;
+}
+
+static void
+app_control(app_control_h app_control, void *data)
+{
+       /* Handle the launch request. */
+}
+
+static void
+app_pause(void *data)
+{
+       /* Take necessary actions when application becomes invisible. */
+}
+
+static void
+app_resume(void *data)
+{
+       /* Take necessary actions when application becomes visible. */
+}
+
+static void
+app_terminate(void *data)
+{
+       /* Release all resources. */
+}
+
+static void
+ui_app_lang_changed(app_event_info_h event_info, void *user_data)
+{
+       /*APP_EVENT_LANGUAGE_CHANGED*/
+       char *locale = NULL;
+       system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &locale);
+       elm_language_set(locale);
+       free(locale);
+       return;
+}
+
+static void
+ui_app_orient_changed(app_event_info_h event_info, void *user_data)
+{
+       /*APP_EVENT_DEVICE_ORIENTATION_CHANGED*/
+       return;
+}
+
+static void
+ui_app_region_changed(app_event_info_h event_info, void *user_data)
+{
+       /*APP_EVENT_REGION_FORMAT_CHANGED*/
+}
+
+static void
+ui_app_low_battery(app_event_info_h event_info, void *user_data)
+{
+       /*APP_EVENT_LOW_BATTERY*/
+}
+
+static void
+ui_app_low_memory(app_event_info_h event_info, void *user_data)
+{
+       /*APP_EVENT_LOW_MEMORY*/
+}
+
+int
+main(int argc, char *argv[])
+{
+       dlog_print(DLOG_ERROR, LOG_TAG, "Launching fido sample");
+
+       appdata_s ad = {0,};
+       int ret = 0;
+
+       ui_app_lifecycle_callback_s event_callback = {0,};
+       app_event_handler_h handlers[5] = {NULL, };
+
+       event_callback.create = app_create;
+       event_callback.terminate = app_terminate;
+       event_callback.pause = app_pause;
+       event_callback.resume = app_resume;
+       event_callback.app_control = app_control;
+
+       ui_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, ui_app_low_battery, &ad);
+       ui_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, ui_app_low_memory, &ad);
+       ui_app_add_event_handler(&handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE_ORIENTATION_CHANGED, ui_app_orient_changed, &ad);
+       ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, ui_app_lang_changed, &ad);
+       ui_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, ui_app_region_changed, &ad);
+       ui_app_remove_event_handler(handlers[APP_EVENT_LOW_MEMORY]);
+
+       ret = ui_app_main(argc, argv, &event_callback, &ad);
+       if (ret != APP_ERROR_NONE) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "app_main() is failed. err = %d", ret);
+       }
+
+       return ret;
+}
diff --git a/test/3_0_Sample_App/FIDOSample/tizen-manifest.xml b/test/3_0_Sample_App/FIDOSample/tizen-manifest.xml
new file mode 100644 (file)
index 0000000..cc6c2e4
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<manifest xmlns="http://tizen.org/ns/packages" api-version="3.0" package="org.example.fidosample" version="1.0.0">
+    <profile name="mobile"/>
+    <ui-application appid="org.example.fidosample" exec="fidosample" launch_mode="single" multiple="false" nodisplay="false" taskmanage="true" type="capp">
+        <label>fidosample</label>
+        <icon>fidosample.png</icon>
+    </ui-application>
+    <privileges>
+        <privilege>http://tizen.org/privilege/account.read</privilege>
+        <privilege>http://tizen.org/privilege/account.write</privilege>
+    </privileges>
+</manifest>