[KeyManager] getKeyAlias implementation
authorPrzemyslaw Ciezkowski <p.ciezkowski@samsung.com>
Fri, 24 Apr 2015 10:42:22 +0000 (12:42 +0200)
committerPawel Andruszkiewicz <p.andruszkie@samsung.com>
Mon, 11 May 2015 11:58:56 +0000 (20:58 +0900)
[Verification]
items = tizen.keymanager.getKeyAliasList();
console.log('length: ' + items.length);
console.log("isArray: " + Array.isArray(items));

Change-Id: I0c85704b8141e2d5d3c4063b1af4ee6aba278d27
Signed-off-by: Przemyslaw Ciezkowski <p.ciezkowski@samsung.com>
src/keymanager/keymanager_instance.cc
src/keymanager/keymanager_instance.h

index 090fb92..949327e 100644 (file)
@@ -5,6 +5,7 @@
 #include "keymanager/keymanager_instance.h"
 
 #include <functional>
+#include <ckm/ckm-manager.h>
 
 #include "common/logger.h"
 #include "common/picojson.h"
@@ -15,12 +16,34 @@ namespace keymanager {
 
 
 KeyManagerInstance::KeyManagerInstance() {
-  using namespace std::placeholders;
+  using std::placeholders::_1;
+  using std::placeholders::_2;
 
+  RegisterSyncHandler("KeyManager_getKeyAliasList",
+      std::bind(&KeyManagerInstance::GetKeyAliasList, this, _1, _2));
 }
 
 KeyManagerInstance::~KeyManagerInstance() {
 }
 
+void KeyManagerInstance::GetKeyAliasList(const picojson::value& args,
+    picojson::object& out) {
+  LoggerD("Enter");
+  CKM::AliasVector result;
+  int ret = CKM::Manager::create()->getKeyAliasVector(result);
+  if (ret != CKM_API_SUCCESS) {
+      LoggerE("Failed to fetch list of key alias: %d", ret);
+      ReportError(common::PlatformResult(common::ErrorCode::UNKNOWN_ERR,
+        "Failed to fetch list of key alias"), &out);
+  } else {
+      picojson::array aliases;
+      for (auto& item: result) {
+          aliases.push_back(picojson::value(item));
+      }
+      picojson::value res(aliases);
+      ReportSuccess(res, out);
+  }
+}
+
 } // namespace keymanager
 } // namespace extension
index 2a67e02..b34fce0 100644 (file)
@@ -15,6 +15,7 @@ class KeyManagerInstance : public common::ParsedInstance {
   KeyManagerInstance();
   virtual ~KeyManagerInstance();
  private:
+  void GetKeyAliasList(picojson::value const& args, picojson::object& out);
 };
 
 } // namespace keymanager