From: Przemyslaw Ciezkowski Date: Mon, 27 Apr 2015 12:00:38 +0000 (+0200) Subject: [KeyManager] removeKey implementation X-Git-Tag: submit/tizen_mobile/20150603.064609~1^2~49 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=731d7284da22e5040348086dc9de5dd600cab21c;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git [KeyManager] removeKey implementation [Verification] var myPubKey = new tizen.Key("pub1", null, true); myPubKey.save("rawData", function() { myPubKey.remove(); }, function(e) { console.log("error: " + e.message); }); Signed-off-by: Przemyslaw Ciezkowski Change-Id: I396c756024d1d9123ad34c01324806e2dee2733c --- diff --git a/src/keymanager/keymanager_instance.cc b/src/keymanager/keymanager_instance.cc index 106d1c4..8c6022e 100644 --- a/src/keymanager/keymanager_instance.cc +++ b/src/keymanager/keymanager_instance.cc @@ -25,6 +25,8 @@ KeyManagerInstance::KeyManagerInstance() { std::bind(&KeyManagerInstance::GetKeyAliasList, this, _1, _2)); RegisterSyncHandler("KeyManager_saveKey", std::bind(&KeyManagerInstance::SaveKey, this, _1, _2)); + RegisterSyncHandler("KeyManager_removeKey", + std::bind(&KeyManagerInstance::RemoveKey, this, _1, _2)); } KeyManagerInstance::~KeyManagerInstance() { @@ -92,5 +94,25 @@ void KeyManagerInstance::OnSaveKey(double callbackId, PostMessage(res.serialize().c_str()); } +void KeyManagerInstance::RemoveKey(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + + const std::string& alias = args.get("key").get("name").get(); + int ret = CKM::Manager::create()->removeAlias(alias); + if (ret != CKM_API_SUCCESS) { + LoggerE("Failed to remove key alias: %d", ret); + if (ret == CKM_API_ERROR_DB_ALIAS_UNKNOWN) { + ReportError(common::PlatformResult(common::ErrorCode::NOT_FOUND_ERR, + "Key alias not found"), &out); + } else { + ReportError(common::PlatformResult(common::ErrorCode::UNKNOWN_ERR, + "Failed to remove key alias"), &out); + } + } else { + ReportSuccess(out); + } +} + } // namespace keymanager } // namespace extension diff --git a/src/keymanager/keymanager_instance.h b/src/keymanager/keymanager_instance.h index 517f0b4..1d9f0b6 100644 --- a/src/keymanager/keymanager_instance.h +++ b/src/keymanager/keymanager_instance.h @@ -23,6 +23,7 @@ class KeyManagerInstance : private: void GetKeyAliasList(picojson::value const& args, picojson::object& out); void SaveKey(const picojson::value& args, picojson::object& out); + void RemoveKey(const picojson::value& args, picojson::object& out); CKM::ManagerAsync m_manager; };