From: Przemyslaw Ciezkowski Date: Fri, 24 Apr 2015 10:42:22 +0000 (+0200) Subject: [KeyManager] getKeyAlias implementation X-Git-Tag: submit/tizen_mobile/20150603.064609~1^2~51 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=86e3f1e1cc02e364aa2f1a1258d4bbbf6b2aa52e;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git [KeyManager] getKeyAlias implementation [Verification] items = tizen.keymanager.getKeyAliasList(); console.log('length: ' + items.length); console.log("isArray: " + Array.isArray(items)); Change-Id: I0c85704b8141e2d5d3c4063b1af4ee6aba278d27 Signed-off-by: Przemyslaw Ciezkowski --- diff --git a/src/keymanager/keymanager_instance.cc b/src/keymanager/keymanager_instance.cc index 090fb92..949327e 100644 --- a/src/keymanager/keymanager_instance.cc +++ b/src/keymanager/keymanager_instance.cc @@ -5,6 +5,7 @@ #include "keymanager/keymanager_instance.h" #include +#include #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 diff --git a/src/keymanager/keymanager_instance.h b/src/keymanager/keymanager_instance.h index 2a67e02..b34fce0 100644 --- a/src/keymanager/keymanager_instance.h +++ b/src/keymanager/keymanager_instance.h @@ -15,6 +15,7 @@ class KeyManagerInstance : public common::ParsedInstance { KeyManagerInstance(); virtual ~KeyManagerInstance(); private: + void GetKeyAliasList(picojson::value const& args, picojson::object& out); }; } // namespace keymanager