Create interface-draft.md
author권상완/Security 2Lab(SR)/Engineer/삼성전자 <sangwan.kwon@samsung.com>
Fri, 22 Mar 2019 05:05:30 +0000 (14:05 +0900)
committerGitHub Enterprise <noreply-CODE@samsung.com>
Fri, 22 Mar 2019 05:05:30 +0000 (14:05 +0900)
interface-draft.md [new file with mode: 0644]

diff --git a/interface-draft.md b/interface-draft.md
new file mode 100644 (file)
index 0000000..0f77967
--- /dev/null
@@ -0,0 +1,31 @@
+# Programming interface for client
+
+## Check smack table schema
+### 'smack' table
+| name | type |
+|---|---|
+| subject_label | TEXT |
+| object_label | TEXT |
+| access_type | TEXT |
+| permission | TEXT |
+
+
+## Use OsqueryManager for getting smack information
+```cpp
+  using namespace osquerypp;
+  
+  // 1. Write query as std::string
+  std::string query = "SELECT subject_label, object_label FROM smack WHERE access_type = 'read'";
+   
+  // 2. Load OsqueryManager
+  auto manager = OsqueryManager::Load();
+   
+  // 3. Execute Query by using OsqueryManager
+  auto rows = OsqueryManager::executeQuery(query);
+   
+  // 4. Get result
+  for (const auto& row : rows) {
+      std::string slabel = row["subject_label"];
+      std::string olabel = row["object_label];
+  }
+```