audit-trail mock updated
authori.metelytsia <i.metelytsia@samsung.com>
Thu, 9 Nov 2017 14:19:10 +0000 (16:19 +0200)
committeri.metelytsia <i.metelytsia@samsung.com>
Thu, 9 Nov 2017 14:19:10 +0000 (16:19 +0200)
device_core/mock/audit-trail-mock.h
device_core/mock/audit-trail-stub.cpp
device_core/mock/audit-trail-stub.h
device_core/mock/audit-trail.h
device_core/mock/common.h
device_core/mock/dac.h
device_core/mock/mac.h
device_core/mock/syscall.h
device_core/mock/user.h [new file with mode: 0644]
device_core/nmdaemon/audit_trail_client.h

index 82c27a3..a318c2a 100644 (file)
@@ -9,24 +9,61 @@ class AuditTrailMock: public IAuditTrail
 public:
     MOCK_METHOD1(audit_trail_create, int(audit_trail_h *handle));
     MOCK_METHOD0(audit_trail_destroy, int());
-    MOCK_METHOD2(audit_trail_foreach_dac, int(audit_trail_string_cb callback, void *user_data));
+
+    MOCK_METHOD2(audit_trail_foreach_dac, int(audit_trail_dac_cb callback, void *user_data));
     MOCK_METHOD0(audit_trail_clear_dac, int());
-    MOCK_METHOD3(audit_trail_add_dac_cb, int(audit_trail_string_cb callback, void* user_data, int* id));
+    MOCK_METHOD3(audit_trail_add_dac_cb, int(audit_trail_dac_cb callback, void* user_data, int* id));
     MOCK_METHOD1(audit_trail_remove_dac_cb, int(int id));
     MOCK_METHOD1(audit_trail_enable_dac, int(bool en));
     MOCK_METHOD1(audit_trail_is_enabled_dac, int(bool *en));
-    MOCK_METHOD2(audit_trail_foreach_mac, int(audit_trail_string_cb callback, void *user_data));
+    MOCK_METHOD2(audit_trail_get_dac_time, int(time_t *time, unsigned short *ms));
+    MOCK_METHOD1(audit_trail_get_dac_subject_name, int(const char **name));
+    MOCK_METHOD2(audit_trail_get_dac_subject_owner, int(uid_t *uid, gid_t *gid));
+    MOCK_METHOD2(audit_trail_get_dac_subject_effective_owner, int(uid_t *euid, gid_t *egid));
+    MOCK_METHOD1(audit_trail_get_dac_subject_pid, int(pid_t *pid));
+    MOCK_METHOD1(audit_trail_get_dac_object_name, int(const char **name));
+    MOCK_METHOD2(audit_trail_get_dac_object_owner, int(uid_t *uid, gid_t *gid));
+    MOCK_METHOD1(audit_trail_get_dac_object_mode, int(mode_t *mode));
+    MOCK_METHOD1(audit_trail_get_dac_action_syscall, int(unsigned int *syscall));
+
+    MOCK_METHOD2(audit_trail_foreach_mac, int(audit_trail_mac_cb callback, void *user_data));
     MOCK_METHOD0(audit_trail_clear_mac, int());
-    MOCK_METHOD3(audit_trail_add_mac_cb, int(audit_trail_string_cb callback, void* user_data, int* id));
+    MOCK_METHOD3(audit_trail_add_mac_cb, int(audit_trail_mac_cb callback, void* user_data, int* id));
     MOCK_METHOD1(audit_trail_remove_mac_cb, int(int id));
     MOCK_METHOD1(audit_trail_enable_mac, int(bool en));
     MOCK_METHOD1(audit_trail_is_enabled_mac, int(bool *en));
-    MOCK_METHOD2(audit_trail_foreach_syscall, int(audit_trail_string_cb callback, void *user_data));
+    MOCK_METHOD2(audit_trail_get_mac_time, int(time_t *time, unsigned short *ms));
+    MOCK_METHOD1(audit_trail_get_mac_subject_name, int(const char **name));
+    MOCK_METHOD1(audit_trail_get_mac_subject_label, int(const char **label));
+    MOCK_METHOD1(audit_trail_get_mac_subject_pid, int(pid_t *pid));
+    MOCK_METHOD1(audit_trail_get_mac_object_name, int(const char **name));
+    MOCK_METHOD1(audit_trail_get_mac_object_label, int(const char **label));
+    MOCK_METHOD1(audit_trail_get_mac_action_syscall, int(unsigned int *syscall));
+    MOCK_METHOD1(audit_trail_get_mac_action_request, int(const char **req));
+
+    MOCK_METHOD2(audit_trail_foreach_syscall, int(audit_trail_syscall_cb callback, void *user_data));
     MOCK_METHOD0(audit_trail_clear_syscall, int());
-    MOCK_METHOD3(audit_trail_add_syscall_cb, int(audit_trail_string_cb callback, void* user_data, int* id));
+    MOCK_METHOD3(audit_trail_add_syscall_cb, int(audit_trail_syscall_cb callback, void* user_data, int* id));
     MOCK_METHOD1(audit_trail_remove_syscall_cb, int(int id));
     MOCK_METHOD1(audit_trail_enable_syscall, int(bool en));
     MOCK_METHOD1(audit_trail_is_enabled_syscall, int(bool *en));
+    MOCK_METHOD2(audit_trail_get_syscall_time, int(time_t *time, unsigned short *ms));
+    MOCK_METHOD1(audit_trail_get_syscall_subject_name, int(const char **name));
+    MOCK_METHOD2(audit_trail_get_syscall_subject_owner, int(uid_t *uid, gid_t *gid));
+    MOCK_METHOD2(audit_trail_get_syscall_subject_effective_owner, int(uid_t *euid, gid_t *egid));
+    MOCK_METHOD1(audit_trail_get_syscall_subject_pid, int(pid_t *pid));
+    MOCK_METHOD1(audit_trail_get_syscall_action_syscall, int(unsigned int *syscall));
+    MOCK_METHOD1(audit_trail_get_syscall_action_exitcode, int(unsigned int *exit));
+
+    MOCK_METHOD2(audit_trail_foreach_user, int(audit_trail_user_cb callback, void *user_data));
+    MOCK_METHOD0(audit_trail_clear_user, int());
+    MOCK_METHOD3(audit_trail_add_user_cb, int(audit_trail_user_cb callback, void* user_data, int* id));
+    MOCK_METHOD1(audit_trail_remove_user_cb, int(int id));
+    MOCK_METHOD1(audit_trail_enable_user, int(bool en));
+    MOCK_METHOD1(audit_trail_is_enabled_user, int(bool *en));
+    MOCK_METHOD2(audit_trail_get_user_time, int(time_t *time, unsigned short *ms));
+    MOCK_METHOD1(audit_trail_get_user_log_type, int(int *type));
+    MOCK_METHOD1(audit_trail_get_user_log_text, int(const char **text));
 };
 
 #endif // AUDITTRAILMOCK_H
index f217f41..68d4ea4 100644 (file)
@@ -2,6 +2,7 @@
 #include "mock/dac.h"
 #include "mock/mac.h"
 #include "mock/syscall.h"
+#include "mock/user.h"
 #include "mock/audit-trail-stub.h"
 
 static AuditTrailDefaultImpl atrail;
@@ -12,6 +13,7 @@ void audit_trail_set_implementation(IAuditTrail* impl)
     p_atrail = impl;
 }
 
+
 int audit_trail_create(audit_trail_h* handle)
 {
     int ret = p_atrail->audit_trail_create(handle);
@@ -25,54 +27,103 @@ int audit_trail_destroy(audit_trail_h handle)
     return p->audit_trail_destroy();
 }
 
-int audit_trail_foreach_dac(audit_trail_h handle, audit_trail_string_cb callback, void* user_data)
+
+int audit_trail_foreach_dac(audit_trail_h handle, audit_trail_dac_cb callback, void *user_data)
 {
     IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
     return p->audit_trail_foreach_dac(callback, user_data);
 }
 
-
 int audit_trail_clear_dac(audit_trail_h handle)
 {
     IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
     return p->audit_trail_clear_dac();
 }
 
-
-int audit_trail_add_dac_cb(audit_trail_h handle, audit_trail_string_cb callback, void* user_data, int* id)
+int audit_trail_add_dac_cb(audit_trail_h handle, audit_trail_dac_cb callback, void* user_data, int* id)
 {
     IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
     return p->audit_trail_add_dac_cb(callback, user_data, id);
 }
 
-
 int audit_trail_remove_dac_cb(audit_trail_h handle, int id)
 {
     IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
     return p->audit_trail_remove_dac_cb(id);
 }
 
-
 int audit_trail_enable_dac(audit_trail_h handle, bool en)
 {
     IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
     return p->audit_trail_enable_dac(en);
 }
 
-
-int audit_trail_is_enabled_dac(audit_trail_h handle, bool* en)
+int audit_trail_is_enabled_dac(audit_trail_h handle, bool *en)
 {
     IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
     return p->audit_trail_is_enabled_dac(en);
 }
 
+int audit_trail_get_dac_time(audit_trail_dac_h handle, time_t *time, unsigned short *ms)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_get_dac_time(time, ms);
+}
 
-int audit_trail_foreach_mac(audit_trail_h handle, audit_trail_string_cb callback, void* user_data)
+int audit_trail_get_dac_subject_name(audit_trail_dac_h handle, const char **name)
 {
     IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
-    return p->audit_trail_foreach_mac(callback, user_data);
+    return p->audit_trail_get_dac_subject_name(name);
+}
+
+int audit_trail_get_dac_subject_owner(audit_trail_dac_h handle, uid_t *uid, gid_t *gid)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_get_dac_subject_owner(uid, gid);
+}
+
+int audit_trail_get_dac_subject_effective_owner(audit_trail_dac_h handle, uid_t *euid, gid_t *egid)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_get_dac_subject_effective_owner(euid, egid);
 }
 
+int audit_trail_get_dac_subject_pid(audit_trail_dac_h handle, pid_t *pid)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_get_dac_subject_pid(pid);
+}
+
+int audit_trail_get_dac_object_name(audit_trail_dac_h handle, const char **name)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_get_dac_object_name(name);
+}
+
+int audit_trail_get_dac_object_owner(audit_trail_dac_h handle, uid_t *uid, gid_t *gid)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_get_dac_object_owner(uid, gid);
+}
+
+int audit_trail_get_dac_object_mode(audit_trail_dac_h handle, mode_t *mode)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_get_dac_object_mode(mode);
+}
+
+int audit_trail_get_dac_action_syscall(audit_trail_dac_h handle, unsigned int *syscall)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_get_dac_action_syscall(syscall);
+}
+
+
+int audit_trail_foreach_mac(audit_trail_h handle, audit_trail_mac_cb callback, void *user_data)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_foreach_mac(callback, user_data);
+}
 
 int audit_trail_clear_mac(audit_trail_h handle)
 {
@@ -80,41 +131,84 @@ int audit_trail_clear_mac(audit_trail_h handle)
     return p->audit_trail_clear_mac();
 }
 
-
-int audit_trail_add_mac_cb(audit_trail_h handle, audit_trail_string_cb callback, void* user_data, int* id)
+int audit_trail_add_mac_cb(audit_trail_h handle, audit_trail_mac_cb callback, void* user_data, int* id)
 {
     IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
     return p->audit_trail_add_mac_cb(callback, user_data, id);
 }
 
-
 int audit_trail_remove_mac_cb(audit_trail_h handle, int id)
 {
     IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
     return p->audit_trail_remove_mac_cb(id);
 }
 
-
 int audit_trail_enable_mac(audit_trail_h handle, bool en)
 {
     IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
     return p->audit_trail_enable_mac(en);
 }
 
-
-int audit_trail_is_enabled_mac(audit_trail_h handle, bool* en)
+int audit_trail_is_enabled_mac(audit_trail_h handle, bool *en)
 {
     IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
     return p->audit_trail_is_enabled_mac(en);
 }
 
+int audit_trail_get_mac_time(audit_trail_mac_h handle, time_t *time, unsigned short *ms)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_get_mac_time(time, ms);
+}
 
-int audit_trail_foreach_syscall(audit_trail_h handle, audit_trail_string_cb callback, void* user_data)
+int audit_trail_get_mac_subject_name(audit_trail_mac_h handle, const char **name)
 {
     IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
-    return p->audit_trail_foreach_syscall(callback, user_data);
+    return p->audit_trail_get_mac_subject_name(name);
 }
 
+int audit_trail_get_mac_subject_label(audit_trail_mac_h handle, const char **label)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_get_mac_subject_label(label);
+}
+
+int audit_trail_get_mac_subject_pid(audit_trail_mac_h handle, pid_t *pid)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_get_mac_subject_pid(pid);
+}
+
+int audit_trail_get_mac_object_name(audit_trail_mac_h handle, const char **name)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_get_mac_object_name(name);
+}
+
+int audit_trail_get_mac_object_label(audit_trail_mac_h handle, const char **label)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_get_mac_object_label(label);
+}
+
+int audit_trail_get_mac_action_syscall(audit_trail_mac_h handle, unsigned int *syscall)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_get_mac_action_syscall(syscall);
+}
+
+int audit_trail_get_mac_action_request(audit_trail_mac_h handle, const char **req)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_get_mac_action_request(req);
+}
+
+
+int audit_trail_foreach_syscall(audit_trail_h handle, audit_trail_syscall_cb callback, void *user_data)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_foreach_syscall(callback, user_data);
+}
 
 int audit_trail_clear_syscall(audit_trail_h handle)
 {
@@ -122,31 +216,123 @@ int audit_trail_clear_syscall(audit_trail_h handle)
     return p->audit_trail_clear_syscall();
 }
 
-
-int audit_trail_add_syscall_cb(audit_trail_h handle, audit_trail_string_cb callback, void* user_data, int* id)
+int audit_trail_add_syscall_cb(audit_trail_h handle, audit_trail_syscall_cb callback, void* user_data, int* id)
 {
     IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
     return p->audit_trail_add_syscall_cb(callback, user_data, id);
 }
 
-
 int audit_trail_remove_syscall_cb(audit_trail_h handle, int id)
 {
     IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
     return p->audit_trail_remove_syscall_cb(id);
 }
 
-
 int audit_trail_enable_syscall(audit_trail_h handle, bool en)
 {
     IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
     return p->audit_trail_enable_syscall(en);
 }
 
-
-int audit_trail_is_enabled_syscall(audit_trail_h handle, bool* en)
+int audit_trail_is_enabled_syscall(audit_trail_h handle, bool *en)
 {
     IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
     return p->audit_trail_is_enabled_syscall(en);
 }
 
+int audit_trail_get_syscall_time(audit_trail_syscall_h handle, time_t *time, unsigned short *ms)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_get_syscall_time(time, ms);
+}
+
+int audit_trail_get_syscall_subject_name(audit_trail_syscall_h handle, const char **name)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_get_syscall_subject_name(name);
+}
+
+int audit_trail_get_syscall_subject_owner(audit_trail_syscall_h handle, uid_t *uid, gid_t *gid)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_get_syscall_subject_owner(uid, gid);
+}
+
+int audit_trail_get_syscall_subject_effective_owner(audit_trail_syscall_h handle, uid_t *euid, gid_t *egid)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_get_syscall_subject_effective_owner(euid, egid);
+}
+
+int audit_trail_get_syscall_subject_pid(audit_trail_syscall_h handle, pid_t *pid)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_get_syscall_subject_pid(pid);
+}
+
+int audit_trail_get_syscall_action_syscall(audit_trail_syscall_h handle, unsigned int *syscall)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_get_syscall_action_syscall(syscall);
+}
+
+int audit_trail_get_syscall_action_exitcode(audit_trail_syscall_h handle, unsigned int *exit)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_get_syscall_action_exitcode(exit);
+}
+
+
+int audit_trail_foreach_user(audit_trail_h handle, audit_trail_user_cb callback, void *user_data)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_foreach_user(callback, user_data);
+}
+
+int audit_trail_clear_user(audit_trail_h handle)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_clear_user();
+}
+
+int audit_trail_add_user_cb(audit_trail_h handle, audit_trail_user_cb callback, void* user_data, int* id)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_add_user_cb(callback, user_data, id);
+}
+
+int audit_trail_remove_user_cb(audit_trail_h handle, int id)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_remove_user_cb(id);
+}
+
+int audit_trail_enable_user(audit_trail_h handle, bool en)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_enable_user(en);
+}
+
+int audit_trail_is_enabled_user(audit_trail_h handle, bool *en)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_is_enabled_user(en);
+}
+
+int audit_trail_get_user_time(audit_trail_user_h handle, time_t *time, unsigned short *ms)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_get_user_time(time, ms);
+}
+
+int audit_trail_get_user_log_type(audit_trail_user_h handle, int *type)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_get_user_log_type(type);
+}
+
+int audit_trail_get_user_log_text(audit_trail_user_h handle, const char **text)
+{
+    IAuditTrail* p = reinterpret_cast<IAuditTrail*>(handle);
+    return p->audit_trail_get_user_log_text(text);
+}
index 723d5d8..8545d10 100644 (file)
@@ -1,34 +1,71 @@
 #ifndef AUDITTRAILSTUB_H
 #define AUDITTRAILSTUB_H
 
-
 #include "mock/dac.h"
 #include "mock/mac.h"
 #include "mock/syscall.h"
+#include "mock/user.h"
 
 class IAuditTrail
 {
 public:
     virtual int audit_trail_create(audit_trail_h *handle) = 0;
     virtual int audit_trail_destroy() = 0;
-    virtual int audit_trail_foreach_dac(audit_trail_string_cb callback, void *user_data) = 0;
+
+    virtual int audit_trail_foreach_dac(audit_trail_dac_cb callback, void *user_data) = 0;
     virtual int audit_trail_clear_dac() = 0;
-    virtual int audit_trail_add_dac_cb(audit_trail_string_cb callback, void* user_data, int* id) = 0;
+    virtual int audit_trail_add_dac_cb(audit_trail_dac_cb callback, void* user_data, int* id) = 0;
     virtual int audit_trail_remove_dac_cb(int id) = 0;
     virtual int audit_trail_enable_dac(bool en) = 0;
     virtual int audit_trail_is_enabled_dac(bool *en) = 0;
-    virtual int audit_trail_foreach_mac(audit_trail_string_cb callback, void *user_data) = 0;
+    virtual int audit_trail_get_dac_time(time_t *time, unsigned short *ms) = 0;
+    virtual int audit_trail_get_dac_subject_name(const char **name) = 0;
+    virtual int audit_trail_get_dac_subject_owner(uid_t *uid, gid_t *gid) = 0;
+    virtual int audit_trail_get_dac_subject_effective_owner(uid_t *euid, gid_t *egid) = 0;
+    virtual int audit_trail_get_dac_subject_pid(pid_t *pid) = 0;
+    virtual int audit_trail_get_dac_object_name(const char **name) = 0;
+    virtual int audit_trail_get_dac_object_owner(uid_t *uid, gid_t *gid) = 0;
+    virtual int audit_trail_get_dac_object_mode(mode_t *mode) = 0;
+    virtual int audit_trail_get_dac_action_syscall(unsigned int *syscall) = 0;
+
+    virtual int audit_trail_foreach_mac(audit_trail_mac_cb callback, void *user_data) = 0;
     virtual int audit_trail_clear_mac() = 0;
-    virtual int audit_trail_add_mac_cb(audit_trail_string_cb callback, void* user_data, int* id) = 0;
+    virtual int audit_trail_add_mac_cb(audit_trail_mac_cb callback, void* user_data, int* id) = 0;
     virtual int audit_trail_remove_mac_cb(int id) = 0;
     virtual int audit_trail_enable_mac(bool en) = 0;
     virtual int audit_trail_is_enabled_mac(bool *en) = 0;
-    virtual int audit_trail_foreach_syscall(audit_trail_string_cb callback, void *user_data) = 0;
+    virtual int audit_trail_get_mac_time(time_t *time, unsigned short *ms) = 0;
+    virtual int audit_trail_get_mac_subject_name(const char **name) = 0;
+    virtual int audit_trail_get_mac_subject_label(const char **label) = 0;
+    virtual int audit_trail_get_mac_subject_pid(pid_t *pid) = 0;
+    virtual int audit_trail_get_mac_object_name(const char **name) = 0;
+    virtual int audit_trail_get_mac_object_label(const char **label) = 0;
+    virtual int audit_trail_get_mac_action_syscall(unsigned int *syscall) = 0;
+    virtual int audit_trail_get_mac_action_request(const char **req) = 0;
+
+    virtual int audit_trail_foreach_syscall(audit_trail_syscall_cb callback, void *user_data) = 0;
     virtual int audit_trail_clear_syscall() = 0;
-    virtual int audit_trail_add_syscall_cb(audit_trail_string_cb callback, void* user_data, int* id) = 0;
+    virtual int audit_trail_add_syscall_cb(audit_trail_syscall_cb callback, void* user_data, int* id) = 0;
     virtual int audit_trail_remove_syscall_cb(int id) = 0;
     virtual int audit_trail_enable_syscall(bool en) = 0;
     virtual int audit_trail_is_enabled_syscall(bool *en) = 0;
+    virtual int audit_trail_get_syscall_time(time_t *time, unsigned short *ms) = 0;
+    virtual int audit_trail_get_syscall_subject_name(const char **name) = 0;
+    virtual int audit_trail_get_syscall_subject_owner(uid_t *uid, gid_t *gid) = 0;
+    virtual int audit_trail_get_syscall_subject_effective_owner(uid_t *euid, gid_t *egid) = 0;
+    virtual int audit_trail_get_syscall_subject_pid(pid_t *pid) = 0;
+    virtual int audit_trail_get_syscall_action_syscall(unsigned int *syscall) = 0;
+    virtual int audit_trail_get_syscall_action_exitcode(unsigned int *exit) = 0;
+
+    virtual int audit_trail_foreach_user(audit_trail_user_cb callback, void *user_data) = 0;
+    virtual int audit_trail_clear_user() = 0;
+    virtual int audit_trail_add_user_cb(audit_trail_user_cb callback, void* user_data, int* id) = 0;
+    virtual int audit_trail_remove_user_cb(int id) = 0;
+    virtual int audit_trail_enable_user(bool en) = 0;
+    virtual int audit_trail_is_enabled_user(bool *en) = 0;
+    virtual int audit_trail_get_user_time(time_t *time, unsigned short *ms) = 0;
+    virtual int audit_trail_get_user_log_type(int *type) = 0;
+    virtual int audit_trail_get_user_log_text(const char **text) = 0;
 };
 
 void audit_trail_set_implementation(IAuditTrail* impl);
@@ -45,7 +82,8 @@ public:
     {
         return 0;
     }
-    int audit_trail_foreach_dac(audit_trail_string_cb callback, void *user_data) override
+
+    int audit_trail_foreach_dac(audit_trail_dac_cb callback, void *user_data) override
     {
         return 0;
     }
@@ -53,7 +91,7 @@ public:
     {
         return 0;
     }
-    int audit_trail_add_dac_cb(audit_trail_string_cb callback, void* user_data, int* id) override
+    int audit_trail_add_dac_cb(audit_trail_dac_cb callback, void* user_data, int* id) override
     {
         return 0;
     }
@@ -70,7 +108,53 @@ public:
         *en = true;
         return 0;
     }
-    int audit_trail_foreach_mac(audit_trail_string_cb callback, void *user_data) override
+    int audit_trail_get_dac_time(time_t *time, unsigned short *ms) override
+    {
+        *time = 0; *ms = 0;
+        return 0;
+    }
+    int audit_trail_get_dac_subject_name(const char **name) override
+    {
+        *name = "";
+        return 0;
+    }
+    int audit_trail_get_dac_subject_owner(uid_t *uid, gid_t *gid) override
+    {
+        *uid = 0; *gid = 0;
+        return 0;
+    }
+    int audit_trail_get_dac_subject_effective_owner(uid_t *euid, gid_t *egid) override
+    {
+        *euid = 0; *egid = 0;
+        return 0;
+    }
+    int audit_trail_get_dac_subject_pid(pid_t *pid) override
+    {
+        *pid = 0;
+        return 0;
+    }
+    int audit_trail_get_dac_object_name(const char **name) override
+    {
+        *name = "";
+        return 0;
+    }
+    int audit_trail_get_dac_object_owner(uid_t *uid, gid_t *gid) override
+    {
+        *uid = 0; *gid = 0;
+        return 0;
+    }
+    int audit_trail_get_dac_object_mode(mode_t *mode) override
+    {
+        *mode = 0;
+        return 0;
+    }
+    int audit_trail_get_dac_action_syscall(unsigned int *syscall) override
+    {
+        *syscall = 0;
+        return 0;
+    }
+
+    int audit_trail_foreach_mac(audit_trail_mac_cb callback, void *user_data) override
     {
         return 0;
     }
@@ -78,7 +162,7 @@ public:
     {
         return 0;
     }
-    int audit_trail_add_mac_cb(audit_trail_string_cb callback, void* user_data, int* id) override
+    int audit_trail_add_mac_cb(audit_trail_mac_cb callback, void* user_data, int* id) override
     {
         return 0;
     }
@@ -95,7 +179,48 @@ public:
         *en = true;
         return 0;
     }
-    int audit_trail_foreach_syscall(audit_trail_string_cb callback, void *user_data) override
+    int audit_trail_get_mac_time(time_t *time, unsigned short *ms) override
+    {
+        *time = 0; *ms = 0;
+        return 0;
+    }
+    int audit_trail_get_mac_subject_name(const char **name) override
+    {
+        *name = "";
+        return 0;
+    }
+    int audit_trail_get_mac_subject_label(const char **label) override
+    {
+        *label = "";
+        return 0;
+    }
+    int audit_trail_get_mac_subject_pid(pid_t *pid) override
+    {
+        *pid = 0;
+        return 0;
+    }
+    int audit_trail_get_mac_object_name(const char **name) override
+    {
+        *name = "";
+        return 0;
+    }
+    int audit_trail_get_mac_object_label(const char **label) override
+    {
+        *label = "";
+        return 0;
+    }
+    int audit_trail_get_mac_action_syscall(unsigned int *syscall) override
+    {
+        *syscall = 0;
+        return 0;
+    }
+    int audit_trail_get_mac_action_request(const char **req) override
+    {
+        *req = "";
+        return 0;
+    }
+
+    int audit_trail_foreach_syscall(audit_trail_syscall_cb callback, void *user_data) override
     {
         return 0;
     }
@@ -103,7 +228,7 @@ public:
     {
         return 0;
     }
-    int audit_trail_add_syscall_cb(audit_trail_string_cb callback, void* user_data, int* id) override
+    int audit_trail_add_syscall_cb(audit_trail_syscall_cb callback, void* user_data, int* id) override
     {
         return 0;
     }
@@ -120,6 +245,82 @@ public:
         *en = true;
         return 0;
     }
+    int audit_trail_get_syscall_time(time_t *time, unsigned short *ms) override
+    {
+        *time = 0; *ms = 0;
+        return 0;
+    }
+    int audit_trail_get_syscall_subject_name(const char **name) override
+    {
+        *name = "";
+        return 0;
+    }
+    int audit_trail_get_syscall_subject_owner(uid_t *uid, gid_t *gid) override
+    {
+        *uid = 0; *gid = 0;
+        return 0;
+    }
+    int audit_trail_get_syscall_subject_effective_owner(uid_t *euid, gid_t *egid) override
+    {
+        *euid = 0; *egid = 0;
+        return 0;
+    }
+    int audit_trail_get_syscall_subject_pid(pid_t *pid) override
+    {
+        *pid = 0;
+        return 0;
+    }
+    int audit_trail_get_syscall_action_syscall(unsigned int *syscall) override
+    {
+        *syscall = 0;
+        return 0;
+    }
+    int audit_trail_get_syscall_action_exitcode(unsigned int *exit) override
+    {
+        *exit = 0;
+        return 0;
+    }
+
+    int audit_trail_foreach_user(audit_trail_user_cb callback, void *user_data) override
+    {
+        return 0;
+    }
+    int audit_trail_clear_user() override
+    {
+        return 0;
+    }
+    int audit_trail_add_user_cb(audit_trail_user_cb callback, void* user_data, int* id) override
+    {
+        return 0;
+    }
+    int audit_trail_remove_user_cb(int id) override
+    {
+        return 0;
+    }
+    int audit_trail_enable_user(bool en) override
+    {
+        return 0;
+    }
+    int audit_trail_is_enabled_user(bool *en) override
+    {
+        *en = true;
+        return 0;
+    }
+    int audit_trail_get_user_time(time_t *time, unsigned short *ms) override
+    {
+        *time = 0; *ms = 0;
+        return 0;
+    }
+    int audit_trail_get_user_log_type(int *type) override
+    {
+        *type = 0;
+        return 0;
+    }
+    int audit_trail_get_user_log_text(const char **text) override
+    {
+        *text = "";
+        return 0;
+    }
 };
 
 #endif // AUDITTRAILSTUB_H
index 46fd8bd..9cfbe9d 100644 (file)
@@ -29,6 +29,11 @@ extern "C" {
 #endif
 
 /**
+ * @addtogroup  Common
+ * @{
+ */
+
+/**
  * @brief       The audit-trail handle
  * @details     The audit-trail  handle is an abstraction of the logical
  *              connection between the audit-trail manager and it's client.
index d9b9bd1..dfafe94 100644 (file)
 #ifndef __CAPI_AUDIT_TRAIL_COMMON_H__
 #define __CAPI_AUDIT_TRAIL_COMMON_H__
 
+/**
+ * @file common.h
+ * @brief This file defines common data types required to audit-trail APIs.
+ */
+
 #ifndef AUDIT_TRAIL_API
 #define AUDIT_TRAIL_API
 #endif // API
@@ -34,7 +39,7 @@ extern "C" {
 #endif
 
 /**
- * @addtogroup  CAPI_AUDIT_TRAIL_MODULE
+ * @addtogroup  Common
  * @{
  */
 
@@ -51,21 +56,10 @@ typedef enum {
     AUDIT_TRAIL_ERROR_NOT_SUPPORTED,
     AUDIT_TRAIL_ERROR_OUT_OF_MEMORY,
     AUDIT_TRAIL_ERROR_NOT_PERMITTED,
-    AUDIT_TRAIL_ERROR_NO_DATA
+    AUDIT_TRAIL_ERROR_NO_DATA,
 } audit_trail_error_type_e;
 
 /**
- * @brief       Called to get all strings in an array
- * @since_tizen 5.0
- * @param[in]   log Each string in an array
- * @param[in]   user_data The user data passed from the function
- * @see         audit_trail_add_log_cb
- * @see         audit_trail_remove_log_cb
- * @see         audit_trail_foreach_smack
- */
-typedef void (*audit_trail_string_cb)(const char* log, void* user_data);
-
-/**
  * @}
  */
 
index c59f26d..f444e00 100644 (file)
 #ifndef __CAPI_AUDIT_TRAIL_DAC_H__
 #define __CAPI_AUDIT_TRAIL_DAC_H__
 
+#include <time.h>
+#include <unistd.h>
+#include <sys/stat.h>
+
 #include "audit-trail.h"
 
 /**
@@ -29,8 +33,35 @@ extern "C" {
 #endif
 
 /**
+ * @addtogroup  DAC Discretionary Access Control
+ * @{
+ */
+
+/**
+ * @brief       The audit-trail DAC log handle
+ * @details     The audit-trail DAC log handle is an abstraction of the DAC log
+ *              data. This can be used to get information of each log.
+ *              This must be used in audit_trail_dac_cb() and not be freed,
+ *              because this will be freed internally.
+ * @since_tizen 5.0
+ * @see         audit_trail_dac_cb()
+ */
+typedef void* audit_trail_dac_h;
+
+/**
+ * @brief       Called to get all DAC logs in an array
+ * @since_tizen 5.0
+ * @param[in]   handle The handle of each DAC logs
+ * @param[in]   user_data The user data passed from the function
+ * @see         audit_trail_add_dac_cb
+ * @see         audit_trail_remove_dac_cb
+ * @see         audit_trail_foreach_dac
+ */
+typedef void (*audit_trail_dac_cb)(audit_trail_dac_h handle, void* user_data);
+
+/**
  * @brief       Retrieves all DAC logs that occured in system.
- * @details     This API calls audit_trail_string_cb() once for each DAC
+ * @details     This API calls audit_trail_dac_cb() once for each DAC
  *              (Discretionary Access Control) logs collected by audit-trail
  *              when DAC auditing is enabled.
  * @since_tizen 5.0
@@ -46,7 +77,7 @@ extern "C" {
  * @see         audit_trail_destroy()
  * @see         audit_trail_enable_dac()
  */
-AUDIT_TRAIL_API int audit_trail_foreach_dac(audit_trail_h handle, audit_trail_string_cb callback, void *user_data);
+AUDIT_TRAIL_API int audit_trail_foreach_dac(audit_trail_h handle, audit_trail_dac_cb callback, void *user_data);
 
 /**
  * @brief       Clears all DAC logs saved in audit-trail.
@@ -87,7 +118,7 @@ AUDIT_TRAIL_API int audit_trail_clear_dac(audit_trail_h handle);
  * @see         audit_trail_remove_dac_cb()
  */
 AUDIT_TRAIL_API int audit_trail_add_dac_cb(audit_trail_h handle,
-                                                       audit_trail_string_cb callback, void* user_data,
+                                                       audit_trail_dac_cb callback, void* user_data,
                                                        int* id);
 
 /**
@@ -146,6 +177,135 @@ AUDIT_TRAIL_API int audit_trail_enable_dac(audit_trail_h handle, bool en);
 AUDIT_TRAIL_API int audit_trail_is_enabled_dac(audit_trail_h handle, bool *en);
 
 /**
+ * @brief       Get the time of the DAC log
+ * @details     This API can be used to get when the DAC log occured.
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail DAC log handle
+ * @param[out]  time The time as UNIX epoch timestamp
+ * @param[out]  ms milliseconds of the time
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+AUDIT_TRAIL_API int audit_trail_get_dac_time(audit_trail_dac_h handle, time_t *time, unsigned short *ms);
+
+/**
+ * @brief       Get the subject name of the DAC log
+ * @details     This API can be used to get the subject names in each DAC logs.
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail DAC log handle
+ * @param[out]  name The subject name
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ * @post        The subject name must not be freed.
+ */
+AUDIT_TRAIL_API int audit_trail_get_dac_subject_name(audit_trail_dac_h handle, const char **name);
+
+/**
+ * @brief       Get subject owner's user and group ID of the DAC log
+ * @details     This API can be used to get subject owner's user ID and group ID
+ *              in each DAC logs.
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail DAC log handle
+ * @param[out]  uid The subject user ID
+ * @param[out]  gid The subject group ID
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+AUDIT_TRAIL_API int audit_trail_get_dac_subject_owner(audit_trail_dac_h handle, uid_t *uid, gid_t *gid);
+
+/**
+ * @brief       Get subject effective owner's user and group ID of the DAC log
+ * @details     This API can be used to get subject effective owner's user and
+ *              group ID in each DAC logs.
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail DAC log handle
+ * @param[out]  euid The subject effective user ID
+ * @param[out]  egid The subject effective group ID
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+AUDIT_TRAIL_API int audit_trail_get_dac_subject_effective_owner(audit_trail_dac_h handle, uid_t *euid, gid_t *egid);
+
+/**
+ * @brief       Get the subject process ID of the DAC log
+ * @details     This API can be used to get the subject process ID in
+ *              each DAC logs.
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail DAC log handle
+ * @param[out]  pid The subject process ID
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+AUDIT_TRAIL_API int audit_trail_get_dac_subject_pid(audit_trail_dac_h handle, pid_t *pid);
+
+/**
+ * @brief       Get the object name of the DAC log
+ * @details     This API can be used to get the object names in each DAC logs.
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail DAC log handle
+ * @param[out]  name The object name
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ * @post        The object name must not be freed.
+ */
+AUDIT_TRAIL_API int audit_trail_get_dac_object_name(audit_trail_dac_h handle, const char **name);
+
+/**
+ * @brief       Get object owner's user and group ID of the DAC log
+ * @details     This API can be used to get object owner's user ID and group ID
+ *              in each DAC logs.
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail DAC log handle
+ * @param[out]  uid The object user ID if exists, otherwise UINT_MAX
+ * @param[out]  gid The object group ID if exists, otherwise UINT_MAX
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+AUDIT_TRAIL_API int audit_trail_get_dac_object_owner(audit_trail_dac_h handle, uid_t *uid, gid_t *gid);
+
+/**
+ * @brief       Get object file mode bits of the DAC log
+ * @details     This API can be used to get object file mode bits in each DAC
+ *              logs.
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail DAC log handle
+ * @param[out]  mode The object file mode bits if exists, otherwise UINT_MAX
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+AUDIT_TRAIL_API int audit_trail_get_dac_object_mode(audit_trail_dac_h handle, mode_t *mode);
+
+/**
+ * @brief       Get the system call number of the DAC log
+ * @details     This API can be used to get the system call number in each DAC
+ *              logs.
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail DAC log handle
+ * @param[out]  syscall the system call number
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+AUDIT_TRAIL_API int audit_trail_get_dac_action_syscall(audit_trail_dac_h handle, unsigned int *syscall);
+
+/**
  * @}
  */
 
index fa69ca5..89e2eb7 100644 (file)
@@ -17,6 +17,9 @@
 #ifndef __CAPI_AUDIT_TRAIL_MAC_H__
 #define __CAPI_AUDIT_TRAIL_MAC_H__
 
+#include <time.h>
+#include <unistd.h>
+
 #include "audit-trail.h"
 
 /**
@@ -29,8 +32,35 @@ extern "C" {
 #endif
 
 /**
+ * @addtogroup  MAC Mandatory Access Control
+ * @{
+ */
+
+/**
+ * @brief       The audit-trail MAC log handle
+ * @details     The audit-trail MAC log handle is an abstraction of the MAC log
+ *              data. This can be used to get information of each log.
+ *              This must be used only in audit_trail_mac_cb() and not be freed,
+ *              because this will be freed internally.
+ * @since_tizen 5.0
+ * @see         audit_trail_mac_cb()
+ */
+typedef void* audit_trail_mac_h;
+
+/**
+ * @brief       Called to get all MAC logs in an array
+ * @since_tizen 5.0
+ * @param[in]   handle The handle of each MAC logs
+ * @param[in]   user_data The user data passed from the function
+ * @see         audit_trail_add_mac_cb
+ * @see         audit_trail_remove_mac_cb
+ * @see         audit_trail_foreach_mac
+ */
+typedef void (*audit_trail_mac_cb)(audit_trail_mac_h handle, void* user_data);
+
+/**
  * @brief       Retrieves all MAC logs that occured in system.
- * @details     This API calls audit_trail_string_cb() once for each MAC
+ * @details     This API calls audit_trail_mac_cb() once for each MAC
  *              (Mandatory Access Control) logs collected by audit-trail
  *              when MAC auditing is enabled.
  * @since_tizen 5.0
@@ -46,7 +76,7 @@ extern "C" {
  * @see         audit_trail_destroy()
  * @see         audit_trail_enable_mac()
  */
-AUDIT_TRAIL_API int audit_trail_foreach_mac(audit_trail_h handle, audit_trail_string_cb callback, void *user_data);
+AUDIT_TRAIL_API int audit_trail_foreach_mac(audit_trail_h handle, audit_trail_mac_cb callback, void *user_data);
 
 /**
  * @brief       Clears all MAC logs saved in audit-trail.
@@ -86,7 +116,7 @@ AUDIT_TRAIL_API int audit_trail_clear_mac(audit_trail_h handle);
  * @see         audit_trail_remove_mac_cb()
  */
 AUDIT_TRAIL_API int audit_trail_add_mac_cb(audit_trail_h handle,
-                                                       audit_trail_string_cb callback, void* user_data,
+                                                       audit_trail_mac_cb callback, void* user_data,
                                                        int* id);
 
 /**
@@ -145,6 +175,120 @@ AUDIT_TRAIL_API int audit_trail_enable_mac(audit_trail_h handle, bool en);
 AUDIT_TRAIL_API int audit_trail_is_enabled_mac(audit_trail_h handle, bool *en);
 
 /**
+ * @brief       Get the time of the MAC log
+ * @details     This API can be used to get when the MAC log occured.
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail MAC log handle
+ * @param[out]  time The time as UNIX epoch timestamp
+ * @param[out]  ms milliseconds of the time
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+AUDIT_TRAIL_API int audit_trail_get_mac_time(audit_trail_mac_h handle, time_t *time, unsigned short *ms);
+
+/**
+ * @brief       Get the subject name of the MAC log
+ * @details     This API can be used to get the subject names in each MAC logs.
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail MAC log handle
+ * @param[out]  name The subject name
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ * @post        The subject name must not be freed.
+ */
+AUDIT_TRAIL_API int audit_trail_get_mac_subject_name(audit_trail_mac_h handle, const char **name);
+
+/**
+ * @brief       Get the subject label of the MAC log
+ * @details     This API can be used to get the subject labels in each MAC logs.
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail MAC log handle
+ * @param[out]  label The subject label
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ * @post        The subject label must not be freed.
+ */
+AUDIT_TRAIL_API int audit_trail_get_mac_subject_label(audit_trail_mac_h handle, const char **label);
+
+/**
+ * @brief       Get the subject process ID of the MAC log
+ * @details     This API can be used to get the subject process ID in
+ *              each MAC logs.
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail MAC log handle
+ * @param[out]  pid The subject process ID
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+AUDIT_TRAIL_API int audit_trail_get_mac_subject_pid(audit_trail_mac_h handle, pid_t *pid);
+
+/**
+ * @brief       Get the object name of the MAC log
+ * @details     This API can be used to get the object names in each MAC logs.
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail MAC log handle
+ * @param[out]  name The object name
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ * @post        The object name must not be freed.
+ */
+AUDIT_TRAIL_API int audit_trail_get_mac_object_name(audit_trail_mac_h handle, const char **name);
+
+/**
+ * @brief       Get the object label of the MAC log
+ * @details     This API can be used to get the object labels in each MAC logs.
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail MAC log handle
+ * @param[out]  label The object label
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ * @post        The object label must not be freed.
+ */
+AUDIT_TRAIL_API int audit_trail_get_mac_object_label(audit_trail_mac_h handle, const char **label);
+
+/**
+ * @brief       Get the function name of the MAC log
+ * @details     This API can be used to get the function that causes a MAC log.
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail MAC log handle
+ * @param[out]  syscall the system call number
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ * @post        The function name must not be freed.
+ */
+AUDIT_TRAIL_API int audit_trail_get_mac_action_syscall(audit_trail_mac_h handle, unsigned int *syscall);
+
+/**
+ * @brief       Get what operation is requested by the function of the MAC log
+ * @details     This API can be used to get what operation such as rwx (Read,
+ *              Write, eXcute) is requested by the function that causes a NAC
+ *              log.
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail MAC log handle
+ * @param[out]  req The requested operation
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ * @post        The requested operation must not be freed.
+ */
+AUDIT_TRAIL_API int audit_trail_get_mac_action_request(audit_trail_mac_h handle, const char **req);
+
+/**
  * @}
  */
 
index 7a33062..07f29e9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *  Copyright (c) 2075 Samsung Electronics Co., Ltd All Rights Reserved
+ *  Copyright (c) 2017 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.
@@ -17,6 +17,9 @@
 #ifndef __CAPI_AUDIT_TRAIL_SYSTEM_CALL_H__
 #define __CAPI_AUDIT_TRAIL_SYSTEM_CALL_H__
 
+#include <time.h>
+#include <unistd.h>
+
 #include "audit-trail.h"
 
 /**
@@ -29,9 +32,38 @@ extern "C" {
 #endif
 
 /**
+ * @addtogroup  System-call
+ * @{
+ */
+
+/**
+ * @brief       The audit-trail system call log handle
+ * @details     The audit-trail system call log handle is an abstraction of the system call log
+ *              data. This can be used to get information of each log.
+ *              This must be used in audit_trail_syscall_cb() and not be freed,
+ *              because this will be freed internally.
+ *              internally.
+ * @since_tizen 5.0
+ * @see         audit_trail_syscall_cb()
+ */
+typedef void* audit_trail_syscall_h;
+
+/**
+ * @brief       Called to get all system call logs in an array
+ * @since_tizen 5.0
+ * @param[in]   handle The handle of each system call logs
+ * @param[in]   user_data The user data passed from the function
+ * @see         audit_trail_add_syscall_cb
+ * @see         audit_trail_remove_syscall_cb
+ * @see         audit_trail_foreach_syscall
+ */
+typedef void (*audit_trail_syscall_cb)(audit_trail_syscall_h handle, void* user_data);
+
+/**
  * @brief       Retrieves all system call logs that occured in system.
- * @details     This API calls audit_trail_strimg_cb() once for each system call
- *              logs collected by audit-trail when system call auditing is enabled.
+ * @details     This API calls audit_trail_syscall_cb() once for each system
+ *              call logs collected by audit-trail when system call auditing
+ *              is enabled.
  * @since_tizen 5.0
  * @param[in]   handle The audit-trail handle
  * @param[in]   callback The iteration callback function
@@ -45,7 +77,7 @@ extern "C" {
  * @see         audit_trail_destroy()
  * @see         audit_trail_enable_syscall()
  */
-AUDIT_TRAIL_API int audit_trail_foreach_syscall(audit_trail_h handle, audit_trail_string_cb callback, void *user_data);
+AUDIT_TRAIL_API int audit_trail_foreach_syscall(audit_trail_h handle, audit_trail_syscall_cb callback, void *user_data);
 
 /**
  * @brief       Clears all system call logs saved in audit-trail.
@@ -87,7 +119,7 @@ AUDIT_TRAIL_API int audit_trail_clear_syscall(audit_trail_h handle);
  * @see         audit_trail_remove_syscall_cb()
  */
 AUDIT_TRAIL_API int audit_trail_add_syscall_cb(audit_trail_h handle,
-                                                       audit_trail_string_cb callback, void* user_data,
+                                                       audit_trail_syscall_cb callback, void* user_data,
                                                        int* id);
 
 /**
@@ -143,6 +175,108 @@ AUDIT_TRAIL_API int audit_trail_enable_syscall(audit_trail_h handle, bool en);
  * @see         audit_trail_destroy()
  */
 AUDIT_TRAIL_API int audit_trail_is_enabled_syscall(audit_trail_h handle, bool *en);
+
+/**
+ * @brief       Get the time of the system call log
+ * @details     This API can be used to get when the system call log occured.
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail system call log handle
+ * @param[out]  time The time as UNIX epoch timestamp
+ * @param[out]  ms milliseconds of the time
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+AUDIT_TRAIL_API int audit_trail_get_syscall_time(audit_trail_syscall_h handle, time_t *time, unsigned short *ms);
+
+/**
+ * @brief       Get the subject name of the system call log
+ * @details     This API can be used to get the subject names in each system call logs.
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail system call log handle
+ * @param[out]  name The subject name
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ * @post        The subject name must not be freed.
+ */
+AUDIT_TRAIL_API int audit_trail_get_syscall_subject_name(audit_trail_syscall_h handle, const char **name);
+
+/**
+ * @brief       Get subject owner's user and group ID of the system call log
+ * @details     This API can be used to get subject owner's user ID and group ID
+ *              in each system call logs.
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail system call log handle
+ * @param[out]  uid The subject user ID
+ * @param[out]  gid The subject group ID
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+AUDIT_TRAIL_API int audit_trail_get_syscall_subject_owner(audit_trail_syscall_h handle, uid_t *uid, gid_t *gid);
+
+/**
+ * @brief       Get subject effective owner's user and group ID of the system call log
+ * @details     This API can be used to get subject effective owner's user and
+ *              group ID in each system call logs.
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail system call log handle
+ * @param[out]  euid The subject effective user ID
+ * @param[out]  egid The subject effective group ID
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+AUDIT_TRAIL_API int audit_trail_get_syscall_subject_effective_owner(audit_trail_syscall_h handle, uid_t *euid, gid_t *egid);
+
+/**
+ * @brief       Get the subject process ID of the system call log
+ * @details     This API can be used to get the subject process ID in
+ *              each system call logs.
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail system call log handle
+ * @param[out]  pid The subject process ID
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+AUDIT_TRAIL_API int audit_trail_get_syscall_subject_pid(audit_trail_syscall_h handle, pid_t *pid);
+
+/**
+ * @brief       Get the system call number of the system call log
+ * @details     This API can be used to get the system call number in each system call
+ *              logs.
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail system call log handle
+ * @param[out]  syscall the system call number
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+AUDIT_TRAIL_API int audit_trail_get_syscall_action_syscall(audit_trail_syscall_h handle, unsigned int *syscall);
+
+/**
+ * @brief       Get the exit code returned by system call of the system call log
+ * @details     This API can be used to get the exit codes returned by each
+ *              system call
+ *              logs.
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail system call log handle
+ * @param[out]  exit The exit code
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+AUDIT_TRAIL_API int audit_trail_get_syscall_action_exitcode(audit_trail_syscall_h handle, unsigned int *exit);
+
 /**
  * @}
  */
diff --git a/device_core/mock/user.h b/device_core/mock/user.h
new file mode 100644 (file)
index 0000000..0d65356
--- /dev/null
@@ -0,0 +1,230 @@
+/*
+ *  Copyright (c) 2017 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
+ */
+
+#ifndef __CAPI_AUDIT_TRAIL_USER_H__
+#define __CAPI_AUDIT_TRAIL_USER_H__
+
+#include <time.h>
+#include <unistd.h>
+
+#include "audit-trail.h"
+
+/**
+ * @file user.h
+ * @brief This file provides APIs to get user space logs
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @addtogroup  User-space
+ * @{
+ */
+
+/**
+ * @brief       The audit-trail user space log handle
+ * @details     The audit-trail user space log handle is an abstraction of the user space log
+ *              data. This can be used to get information of each log.
+ *              This must be used in audit_trail_user_cb() and not be freed,
+ *              because this will be freed internally.
+ *              internally.
+ * @since_tizen 5.0
+ * @see         audit_trail_user_cb()
+ */
+typedef void* audit_trail_user_h;
+
+/**
+ * @brief       Called to get all user space logs in an array
+ * @since_tizen 5.0
+ * @param[in]   handle The handle of each user space logs
+ * @param[in]   user_data The user data passed from the function
+ * @see         audit_trail_add_user_cb
+ * @see         audit_trail_remove_user_cb
+ * @see         audit_trail_foreach_user
+ */
+typedef void (*audit_trail_user_cb)(audit_trail_user_h handle, void* user_data);
+
+/**
+ * @brief       Retrieves all user space logs that occured in system.
+ * @details     This API calls audit_trail_user_cb() once for each system
+ *              call logs collected by audit-trail when user auditing
+ *              is enabled.
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail handle
+ * @param[in]   callback The iteration callback function
+ * @param[in]   user_data The user data passed to the callback function
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ * @pre         The handle must be created by audit_trail_create().
+ * @see         audit_trail_create()
+ * @see         audit_trail_destroy()
+ * @see         audit_trail_enable_user()
+ */
+AUDIT_TRAIL_API int audit_trail_foreach_user(audit_trail_h handle, audit_trail_user_cb callback, void *user_data);
+
+/**
+ * @brief       Clears all user space logs saved in audit-trail.
+ * @details     This API removes all user space logs
+ *              collected by audit-trail.
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail handle
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ * @pre         The handle must be created by audit_trail_create().
+ * @see         audit_trail_create()
+ * @see         audit_trail_destroy()
+ * @see         audit_trail_foreach_user()
+ */
+AUDIT_TRAIL_API int audit_trail_clear_user(audit_trail_h handle);
+
+/**
+ * @brief       Adds a user space log callback.
+ * @details     This API can be used to receive user space logs of system.
+ *              The callback specified to this function is automatically called
+ *              when a new log occurs.
+ * @since_tizen 5.0
+ * @param[in]   context The audit_trail handle
+ * @param[in]   callback The callback to get user space logs
+ * @param[in]   user_data The user data passed to the callback function
+ * @param[out]  id Callback identifier
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @pre         The handle must be created by audit_trail_create().
+ * @pre         System call auditing must be enabled by
+ *              audit_trail_enable_user().
+ * @see         audit_trail_create()
+ * @see         audit_trail_destroy()
+ * @see         audit_trail_enable_user()
+ * @see         audit_trail_remove_user_cb()
+ */
+AUDIT_TRAIL_API int audit_trail_add_user_cb(audit_trail_h handle,
+                                                       audit_trail_user_cb callback, void* user_data,
+                                                       int* id);
+
+/**
+ * @brief       Removes the user space log callback.
+ * @details     This API can be used to remove the user space logs callback.
+ * @since_tizen 5.0
+ * @param[in]   context The audit trail handle
+ * @param[in]   id Callback identifier
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @pre         The context must be created by audit_trail_create().
+ * @see         audit_trail_create()
+ * @see         audit_trail_destroy()
+ * @see         audit_trail_add_user_cb()
+ */
+AUDIT_TRAIL_API int audit_trail_remove_user_cb(audit_trail_h handle, int id);
+
+/**
+ * @brief       Enables user auditing.
+ * @details     This API can be used to enable to collect the user space logs.
+ *              Any user space log will not be collected until auditing is
+ *              enabled
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail handle
+ * @param[in]   en True enables user auditing, Otherwise disables
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ * @pre         The handle must be created by audit_trail_create().
+ * @see         audit_trail_create()
+ * @see         audit_trail_destroy()
+ * @see         audit_trail_foreach_user()
+ * @see         audit_trail_add_user_cb()
+ */
+AUDIT_TRAIL_API int audit_trail_enable_user(audit_trail_h handle, bool en);
+
+/**
+ * @brief       Retrieves if user auditing is enabled.
+ * @details     This API can be used to know if user auditing is
+ *              enabled now.
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail handle
+ * @param[out]  en If true, user auditing was enabled, Otherwise disabled
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ * @pre         The handle must be created by audit_trail_create().
+ * @see         audit_trail_create()
+ * @see         audit_trail_destroy()
+ */
+AUDIT_TRAIL_API int audit_trail_is_enabled_user(audit_trail_h handle, bool *en);
+
+/**
+ * @brief       Get the time of the user space log
+ * @details     This API can be used to get when the user space log occured.
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail user space log handle
+ * @param[out]  time The time as UNIX epoch timestamp
+ * @param[out]  ms milliseconds of the time
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+AUDIT_TRAIL_API int audit_trail_get_user_time(audit_trail_user_h handle, time_t *time, unsigned short *ms);
+
+/**
+ * @brief       Get the type number of the user space log
+ * @details     This API can be used to get the exit codes returned by each
+ *              user logs.
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail user space log handle
+ * @param[out]  type The type number
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+AUDIT_TRAIL_API int audit_trail_get_user_log_type(audit_trail_user_h handle, int *type);
+
+/**
+ * @brief       Get the text of the user space log
+ * @details     This API can be used to get the text data in each user space
+ *              logs, which was not parsed.
+ * @since_tizen 5.0
+ * @param[in]   handle The audit-trail user space log handle
+ * @param[out]  text The text data of log
+ * @return      #AUDIT_TRAIL_ERROR_NONE on success, otherwise a negative value
+ * @retval      #AUDIT_TRAIL_ERROR_NONE Successful
+ * @retval      #AUDIT_TRAIL_ERROR_TIMED_OUT Time out
+ * @retval      #AUDIT_TRAIL_ERROR_INVALID_PARAMETER Invalid parameter
+ * @post        The subject name must not be freed.
+ */
+AUDIT_TRAIL_API int audit_trail_get_user_log_text(audit_trail_user_h handle, const char **text);
+
+/**
+ * @}
+ */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __CAPI_AUDIT_TRAIL_USER_H__ */
index cbc38bc..55a4b46 100644 (file)
 #include <mock/dac.h>
 #include <mock/mac.h>
 #include <mock/syscall.h>
+#include <mock/user.h>
 #include <mock/audit-trail.h>
 #else
 #include <audit-trail/dac.h>
 #include <audit-trail/mac.h>
 #include <audit-trail/syscall.h>
-#include <audit-trail/audit-trail.h>
 #include <audit-trail/user.h>
+#include <audit-trail/audit-trail.h>
 #endif
 #include "proxythread.h"
 #include "reporthandler.h"