From: Tomasz Marciniak Date: Tue, 7 Jul 2015 08:31:03 +0000 (+0200) Subject: [KeyManager] Fix for saving raw data. X-Git-Tag: submit/tizen_tv/20150720.124123^2^2~34 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b28aa07ddd492c4c2026e196934c5c15299ad7b3;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git [KeyManager] Fix for saving raw data. [Verification] Code compiles without errors. Change-Id: If298f3a39a6192cea3328bea3b914e42f83ce0ee Signed-off-by: Tomasz Marciniak --- diff --git a/src/keymanager/keymanager_instance.cc b/src/keymanager/keymanager_instance.cc index d94c80f6..9829df40 100755 --- a/src/keymanager/keymanager_instance.cc +++ b/src/keymanager/keymanager_instance.cc @@ -696,7 +696,7 @@ void KeyManagerInstance::SaveData(const picojson::value& args, picojson::object& out) { LoggerD("Enter"); - RawBuffer* raw_buffer = new RawBuffer(std::move(Base64ToRawBuffer(args.get("rawData").get()))); + std::string data_raw = args.get("rawData").get(); const auto& data = args.get("data"); const auto& alias = data.get("name").get(); const auto& password_value = data.get("password"); @@ -709,10 +709,13 @@ void KeyManagerInstance::SaveData(const picojson::value& args, password = password_value.get(); } - auto save_data = [raw_buffer, password, extractable, alias](const std::shared_ptr& result) { + auto save_data = [data_raw, password, extractable, alias](const std::shared_ptr& result) { LoggerD("Enter save_data"); - ckmc_raw_buffer_s raw_data { const_cast(&(*raw_buffer)[0]), raw_buffer->size() }; + unsigned char* data = new unsigned char[data_raw.size()]; + std::copy(data_raw.begin(), data_raw.end(), data); + + ckmc_raw_buffer_s raw_data { data, data_raw.size() }; ckmc_policy_s policy { const_cast(password.c_str()), extractable }; int ret = ckmc_save_data(alias.c_str(), raw_data, policy); @@ -739,7 +742,7 @@ void KeyManagerInstance::SaveData(const picojson::value& args, common::tools::ReportError(success, &result->get()); } - delete raw_buffer; + delete data; }; auto save_data_result = [this, callback_id](const std::shared_ptr& result) { @@ -779,7 +782,7 @@ void KeyManagerInstance::GetData(const picojson::value& args, result["password"] = picojson::value(password); // if key was retrieved it is extractable from DB result["extractable"] = picojson::value(true); - result["rawData"] = picojson::value(RawBufferToBase64(ToRawBuffer(data))); + result["rawData"] = picojson::value(std::string (data->data, data->data + data->size)); ckmc_buffer_free(data); ReportSuccess(picojson::value{result}, out);