E2EE: Require e2ee-tests to be ran by default user
[platform/core/test/security-tests.git] / src / ckm / ckm-common.cpp
index 59c9fc8..01c265c 100644 (file)
  * @author     Krzysztof Jackiewicz (k.jackiewicz@samsung.com)
  * @version    1.0
  */
+
+#include <unistd.h>
+#include <sys/types.h>
+#include <cstdlib>
 #include <string>
 #include <fstream>
 #include <sys/smack.h>
@@ -32,6 +36,7 @@
 #include <fcntl.h>
 #include <unistd.h>
 #include <unordered_map>
+#include <tzplatform_config.h>
 
 const std::string SMACK_USER_APP_PREFIX = "User::Pkg::";
 const char *SYSTEM_LABEL = ckmc_owner_id_system;
@@ -601,3 +606,17 @@ CKM::Policy generate_ckm_policy(int iterator_nr) {
     }
     return CKM::Policy();
 }
+
+void require_default_user(char *argv[])
+{
+    uid_t expected_uid = tzplatform_getuid(TZ_SYS_DEFAULT_USER);
+    if (expected_uid != geteuid()) {
+        std::string userStr("owner");
+        const char* user = tzplatform_getenv(TZ_SYS_DEFAULT_USER);
+        if (user)
+            userStr = user;
+
+        std::cerr << argv[0] << " should be executed as " << userStr << ". Aborting" << std::endl;
+        exit(-1);
+    }
+}