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;
};