#define SE_ESE_FEATURE "http://tizen.org/feature/network.secure_element.ese"
#define SMARTCARD_LOCK \
-do{\
- pthread_mutex_lock(&mutex);\
-}while(0);
+do { \
+ pthread_mutex_lock(&mutex); \
+} while (0);
#define SMARTCARD_UNLOCK \
-do{\
- pthread_mutex_unlock(&mutex);\
-}while(0);
+do { \
+ pthread_mutex_unlock(&mutex); \
+} while (0);
static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
GList *channel_list;
#define CHECK_SUPPORTED() \
-do{\
+do { \
{ \
- if(_is_smartcard_supported() == false) \
- { \
+ if (_is_smartcard_supported() == false) { \
return SMARTCARD_ERROR_NOT_SUPPORTED; \
} \
} \
-}while(0);
+} while (0);
#define CHECK_INIT() \
-do{\
+do { \
SMARTCARD_LOCK; \
{ \
- if(_is_initialize == false) \
- { \
+ if (_is_initialize == false) { \
SMARTCARD_UNLOCK; \
return SMARTCARD_ERROR_NOT_INITIALIZED; \
} \
} \
SMARTCARD_UNLOCK; \
-}while(0);
+} while (0);
static bool _is_smartcard_supported()
{
system_info_get_platform_bool(SE_UICC_FEATURE, &is_supported_se_uicc);
system_info_get_platform_bool(SE_ESE_FEATURE, &is_supported_se_ese);
- if(is_supported_se && (is_supported_se_uicc || is_supported_se_ese))
+ if (is_supported_se && (is_supported_se_uicc || is_supported_se_ese))
ret = true;
return ret;
CHECK_INIT();
SMARTCARD_LOCK;
- if(g_list_find(g_list_first(reader_list), GINT_TO_POINTER(handle)) == NULL)
- {
- SMARTCARD_UNLOCK;
- return SMARTCARD_ERROR_INVALID_PARAMETER;
- }
+ if (g_list_find(g_list_first(reader_list), GINT_TO_POINTER(handle)) == NULL) {
+ SMARTCARD_UNLOCK;
+ return SMARTCARD_ERROR_INVALID_PARAMETER;
+ }
SMARTCARD_UNLOCK;
return SMARTCARD_ERROR_NONE;
CHECK_INIT();
SMARTCARD_LOCK;
- if(g_list_find(g_list_first(session_list), GINT_TO_POINTER(handle)) == NULL)
- {
- SMARTCARD_UNLOCK;
- return SMARTCARD_ERROR_INVALID_PARAMETER;
- }
+ if (g_list_find(g_list_first(session_list), GINT_TO_POINTER(handle)) == NULL) {
+ SMARTCARD_UNLOCK;
+ return SMARTCARD_ERROR_INVALID_PARAMETER;
+ }
SMARTCARD_UNLOCK;
return SMARTCARD_ERROR_NONE;
CHECK_INIT();
SMARTCARD_LOCK;
- if(g_list_find(g_list_first(channel_list), GINT_TO_POINTER(handle)) == NULL)
- {
- SMARTCARD_UNLOCK;
- return SMARTCARD_ERROR_INVALID_PARAMETER;
- }
+ if (g_list_find(g_list_first(channel_list), GINT_TO_POINTER(handle)) == NULL) {
+ SMARTCARD_UNLOCK;
+ return SMARTCARD_ERROR_INVALID_PARAMETER;
+ }
SMARTCARD_UNLOCK;
return SMARTCARD_ERROR_NONE;
static smartcard_error_e _convert_error_code(const char *func, int native_error_code)
{
- smartcard_error_e error_code = SMARTCARD_ERROR_NONE;
- char *errorstr = NULL;
-
- switch (native_error_code)
- {
- case SCARD_ERROR_OK:
- error_code = SMARTCARD_ERROR_NONE;
- errorstr = "SMARTCARD_ERROR_NONE";
- break;
- case SCARD_ERROR_NOT_SUPPORTED:
- error_code = SMARTCARD_ERROR_OPERATION_NOT_SUPPORTED;
- errorstr = "SMARTCARD_ERROR_OPERATION_NOT_SUPPORTED";
- break;
- case SCARD_ERROR_UNAVAILABLE:
- error_code = SMARTCARD_ERROR_CHANNEL_NOT_AVAILABLE;
- errorstr = "SMARTCARD_ERROR_CHANNEL_NOT_AVAILABLE";
- break;
- case SCARD_ERROR_IPC_FAILED:
- case SCARD_ERROR_IO_FAILED:
- error_code = SMARTCARD_ERROR_IO_ERROR;
- errorstr = "SMARTCARD_ERROR_IO_ERROR";
- break;
- case SCARD_ERROR_SECURITY_NOT_ALLOWED:
- error_code = SMARTCARD_ERROR_PERMISSION_DENIED;
- errorstr = "SMARTCARD_ERROR_PERMISSION_DENIED";
- break;
- case SCARD_ERROR_ILLEGAL_STATE:
- error_code = SMARTCARD_ERROR_ILLEGAL_STATE;
- errorstr = "SMARTCARD_ERROR_ILLEGAL_STATE";
- break;
- case SCARD_ERROR_ILLEGAL_PARAM:
- error_code = SMARTCARD_ERROR_INVALID_PARAMETER;
- errorstr = "SMARTCARD_ERROR_INVALID_PARAMETER";
- break;
- case SCARD_ERROR_ILLEGAL_REFERENCE:
- error_code = SMARTCARD_ERROR_ILLEGAL_REFERENCE;
- errorstr = "SMARTCARD_ERROR_ILLEGAL_REFERENCE";
- break;
- case SCARD_ERROR_NOT_INITIALIZED:
- case SCARD_ERROR_SE_NOT_INITIALIZED:
- case SCARD_ERROR_OPERATION_NOT_SUPPORTED:
- case SCARD_ERROR_NEED_MORE_BUFFER:
- case SCARD_ERROR_OPERATION_TIMEOUT:
- case SCARD_ERROR_NOT_ENOUGH_RESOURCE:
- case SCARD_ERROR_OUT_OF_MEMORY:
- case SCARD_ERROR_UNKNOWN:
- default :
- error_code = SMARTCARD_ERROR_GENERAL;
- errorstr = "SMARTCARD_ERROR_GENERAL";
+ smartcard_error_e error_code = SMARTCARD_ERROR_NONE;
+ char *errorstr = NULL;
+
+ switch (native_error_code) {
+ case SCARD_ERROR_OK:
+ error_code = SMARTCARD_ERROR_NONE;
+ errorstr = "SMARTCARD_ERROR_NONE";
+ break;
+ case SCARD_ERROR_NOT_SUPPORTED:
+ error_code = SMARTCARD_ERROR_OPERATION_NOT_SUPPORTED;
+ errorstr = "SMARTCARD_ERROR_OPERATION_NOT_SUPPORTED";
+ break;
+ case SCARD_ERROR_UNAVAILABLE:
+ error_code = SMARTCARD_ERROR_CHANNEL_NOT_AVAILABLE;
+ errorstr = "SMARTCARD_ERROR_CHANNEL_NOT_AVAILABLE";
+ break;
+ case SCARD_ERROR_IPC_FAILED:
+ case SCARD_ERROR_IO_FAILED:
+ error_code = SMARTCARD_ERROR_IO_ERROR;
+ errorstr = "SMARTCARD_ERROR_IO_ERROR";
+ break;
+ case SCARD_ERROR_SECURITY_NOT_ALLOWED:
+ error_code = SMARTCARD_ERROR_PERMISSION_DENIED;
+ errorstr = "SMARTCARD_ERROR_PERMISSION_DENIED";
+ break;
+ case SCARD_ERROR_ILLEGAL_STATE:
+ error_code = SMARTCARD_ERROR_ILLEGAL_STATE;
+ errorstr = "SMARTCARD_ERROR_ILLEGAL_STATE";
+ break;
+ case SCARD_ERROR_ILLEGAL_PARAM:
+ error_code = SMARTCARD_ERROR_INVALID_PARAMETER;
+ errorstr = "SMARTCARD_ERROR_INVALID_PARAMETER";
+ break;
+ case SCARD_ERROR_ILLEGAL_REFERENCE:
+ error_code = SMARTCARD_ERROR_ILLEGAL_REFERENCE;
+ errorstr = "SMARTCARD_ERROR_ILLEGAL_REFERENCE";
+ break;
+ case SCARD_ERROR_NOT_INITIALIZED:
+ case SCARD_ERROR_SE_NOT_INITIALIZED:
+ case SCARD_ERROR_OPERATION_NOT_SUPPORTED:
+ case SCARD_ERROR_NEED_MORE_BUFFER:
+ case SCARD_ERROR_OPERATION_TIMEOUT:
+ case SCARD_ERROR_NOT_ENOUGH_RESOURCE:
+ case SCARD_ERROR_OUT_OF_MEMORY:
+ case SCARD_ERROR_UNKNOWN:
+ default:
+ error_code = SMARTCARD_ERROR_GENERAL;
+ errorstr = "SMARTCARD_ERROR_GENERAL";
}
_ERR("smartcard func : %s, %s(0x%08x)\n", func, errorstr, error_code);
SMARTCARD_LOCK;
- if(se_service == NULL || ref_count > 0)
- {
+ if (se_service == NULL || ref_count > 0) {
/* create se service instance. */
se_service = se_service_create_instance_sync(NULL, &ret);
- if(se_service == NULL || ret != SCARD_ERROR_OK)
- {
+ if (se_service == NULL || ret != SCARD_ERROR_OK) {
SMARTCARD_UNLOCK;
- if(ret == SCARD_ERROR_SECURITY_NOT_ALLOWED)
+ if (ret == SCARD_ERROR_SECURITY_NOT_ALLOWED)
return SMARTCARD_ERROR_PERMISSION_DENIED;
return SMARTCARD_ERROR_GENERAL;
SMARTCARD_LOCK;
- if(ref_count > 0)
- {
+ if (ref_count > 0) {
ref_count--;
- }
- else
- {
+ } else {
SMARTCARD_UNLOCK;
return SMARTCARD_ERROR_NOT_INITIALIZED;
}
- if(se_service != NULL && ref_count == 0)
- {
+ if (se_service != NULL && ref_count == 0) {
se_service_shutdown(se_service);
/* destroy se service instance. */
ret = se_service_destroy_instance(se_service);
- if(ret != SCARD_ERROR_OK)
- {
+ if (ret != SCARD_ERROR_OK) {
SMARTCARD_UNLOCK;
return SMARTCARD_ERROR_GENERAL;
}
se_service = NULL;
+ g_list_free(reader_list);
+ g_list_free(session_list);
+ g_list_free(channel_list);
reader_list = NULL;
session_list = NULL;
channel_list = NULL;
SMARTCARD_UNLOCK;
- for(i = 0; i < *length; i++)
- {
+ for (i = 0; i < *length; i++) {
SMARTCARD_LOCK;
- if(g_list_find(g_list_first(reader_list), GINT_TO_POINTER(*(readers[i]))) == NULL)
- reader_list = g_list_append (reader_list, GINT_TO_POINTER(*(readers[i])));
+ if (g_list_find(g_list_first(reader_list), GINT_TO_POINTER(*(readers[i]))) == NULL)
+ reader_list = g_list_append(reader_list, GINT_TO_POINTER(*(readers[i])));
SMARTCARD_UNLOCK;
}
/* process */
ret = reader_get_name((reader_h)reader, reader_name);
- if(ret != SCARD_ERROR_OK || strlen(*reader_name) == 0)
+ if (ret != SCARD_ERROR_OK || strlen(*reader_name) == 0)
return SMARTCARD_ERROR_GENERAL;
_END();
ret = reader_open_session_sync((reader_h)reader, session);
- if(ret == SCARD_ERROR_OK)
- {
+ if (ret == SCARD_ERROR_OK) {
SMARTCARD_LOCK;
- if(g_list_find(g_list_first(session_list), GINT_TO_POINTER(*session)) == NULL)
- session_list = g_list_append (session_list, GINT_TO_POINTER(*session));
+ if (g_list_find(g_list_first(session_list), GINT_TO_POINTER(*session)) == NULL)
+ session_list = g_list_append(session_list, GINT_TO_POINTER(*session));
SMARTCARD_UNLOCK;
}
/* precondition check end */
ret = session_get_atr_sync((session_h)session, atr, (unsigned int *)length);
- if(ret == SCARD_ERROR_OK)
- {
- if(((*atr == NULL) && (*length != 0)) ||
- ((*atr != NULL) && (*length == 0)))
- {
+ if (ret == SCARD_ERROR_OK) {
+ if (((*atr == NULL) && (*length != 0)) ||
+ ((*atr != NULL) && (*length == 0))) {
return SMARTCARD_ERROR_GENERAL;
}
}
ret = session_open_basic_channel_sync((session_h)session, aid, aid_len, P2, channel);
- if(ret == SCARD_ERROR_OK)
- {
+ if (ret == SCARD_ERROR_OK) {
SMARTCARD_LOCK;
- if(g_list_find(g_list_first(channel_list), GINT_TO_POINTER(*channel)) == NULL)
- channel_list = g_list_append (channel_list, GINT_TO_POINTER(*channel));
+ if (g_list_find(g_list_first(channel_list), GINT_TO_POINTER(*channel)) == NULL)
+ channel_list = g_list_append(channel_list, GINT_TO_POINTER(*channel));
SMARTCARD_UNLOCK;
}
ret = session_open_logical_channel_sync((session_h)session, aid, aid_len, P2, channel);
- if(ret == SCARD_ERROR_OK)
- {
+ if (ret == SCARD_ERROR_OK) {
SMARTCARD_LOCK;
- if(g_list_find(g_list_first(channel_list), GINT_TO_POINTER(*channel)) == NULL)
- channel_list = g_list_append (channel_list, GINT_TO_POINTER(*channel));
+ if (g_list_find(g_list_first(channel_list), GINT_TO_POINTER(*channel)) == NULL)
+ channel_list = g_list_append(channel_list, GINT_TO_POINTER(*channel));
SMARTCARD_UNLOCK;
}