From: Przemyslaw Ciezkowski Date: Thu, 30 Apr 2015 14:29:23 +0000 (+0200) Subject: [KeyManager] removeCertificate X-Git-Tag: submit/tizen_tv/20150603.064601~1^2~43 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=992c11440518d4aa3ac2a43301bd47aa50177f65;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git [KeyManager] removeCertificate [Verification] var cert = new tizen.Certificate("cert_file7", null, true); cert.loadFromFile("file:///opt/usr/media/Others/cert.cer", function() { console.log('ok'); cert.remove(); }, function(e) { console.log(e.code); console.log(e.message); } ); Change-Id: Ia2f7fd968a4197572eb97c240e2e69a54d4ccf86 Signed-off-by: Przemyslaw Ciezkowski --- diff --git a/src/keymanager/keymanager_instance.cc b/src/keymanager/keymanager_instance.cc index fd9e4912..d9a38eb6 100644 --- a/src/keymanager/keymanager_instance.cc +++ b/src/keymanager/keymanager_instance.cc @@ -46,6 +46,8 @@ KeyManagerInstance::KeyManagerInstance() { std::bind(&KeyManagerInstance::SaveCertificate, this, _1, _2)); RegisterSyncHandler("KeyManager_loadCertificateFromFile", std::bind(&KeyManagerInstance::LoadCertificateFromFile, this, _1, _2)); + RegisterSyncHandler("KeyManager_removeCertificate", + std::bind(&KeyManagerInstance::RemoveCertificate, this, _1, _2)); } KeyManagerInstance::~KeyManagerInstance() { @@ -145,19 +147,28 @@ void KeyManagerInstance::RemoveKey(const picojson::value& args, LoggerD("Enter"); const std::string& alias = args.get("key").get("name").get(); + common::PlatformResult res = RemoveAlias(alias); + if (res.IsError()) { + ReportError(res, &out); + } else { + ReportSuccess(out); + } +} + +common::PlatformResult KeyManagerInstance::RemoveAlias( + const std::string& alias) { int ret = CKM::Manager::create()->removeAlias(alias); if (ret != CKM_API_SUCCESS) { - LoggerE("Failed to remove key alias: %d", ret); + LoggerE("Failed to remove alias: %d", ret); if (ret == CKM_API_ERROR_DB_ALIAS_UNKNOWN) { - ReportError(common::PlatformResult(common::ErrorCode::NOT_FOUND_ERR, - "Key alias not found"), &out); + return common::PlatformResult(common::ErrorCode::NOT_FOUND_ERR, + "Key alias not found"); } else { - ReportError(common::PlatformResult(common::ErrorCode::UNKNOWN_ERR, - "Failed to remove key alias"), &out); + return common::PlatformResult(common::ErrorCode::UNKNOWN_ERR, + "Failed to remove alias"); } - } else { - ReportSuccess(out); } + return common::PlatformResult(common::ErrorCode::NO_ERROR); } void KeyManagerInstance::GenerateKeyPair(const picojson::value& args, @@ -422,5 +433,19 @@ void KeyManagerInstance::OnCertFileLoaded(LoadFileCert* reader, delete reader; } +void KeyManagerInstance::RemoveCertificate(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + + const std::string& alias = args.get("certificate").get("name").get(); + common::PlatformResult res = RemoveAlias(alias); + if (res.IsError()) { + ReportError(res, &out); + } else { + picojson::value result; + ReportSuccess(result, out); + } +} + } // namespace keymanager } // namespace extension diff --git a/src/keymanager/keymanager_instance.h b/src/keymanager/keymanager_instance.h index 391e5e04..abb0d6a6 100644 --- a/src/keymanager/keymanager_instance.h +++ b/src/keymanager/keymanager_instance.h @@ -43,6 +43,8 @@ class KeyManagerInstance : const std::string &alias, bool extractable, double callbackId); + void RemoveCertificate(const picojson::value& args, picojson::object& out); + common::PlatformResult RemoveAlias(const std::string &alias); CKM::ManagerAsync m_manager; };