From 62474f6dad05ef98daccd981e4a4d9338aacae74 Mon Sep 17 00:00:00 2001 From: wangkai Date: Sat, 27 Aug 2022 23:26:23 +0800 Subject: [PATCH 01/10] =?UTF-8?q?=E5=8A=A0=E5=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wangkai --- .../distributeddatafwk/src/itypes_util.cpp | 16 ++++++ .../innerkitsimpl/rdb/include/rdb_types.h | 2 + .../service/rdb/rdb_service_impl.cpp | 11 ++-- .../service/rdb/rdb_syncer.cpp | 50 ++++++++++++++++++- .../service/rdb/rdb_syncer.h | 3 ++ 5 files changed, 76 insertions(+), 6 deletions(-) diff --git a/frameworks/innerkitsimpl/distributeddatafwk/src/itypes_util.cpp b/frameworks/innerkitsimpl/distributeddatafwk/src/itypes_util.cpp index 19e4d250..63d9732e 100644 --- a/frameworks/innerkitsimpl/distributeddatafwk/src/itypes_util.cpp +++ b/frameworks/innerkitsimpl/distributeddatafwk/src/itypes_util.cpp @@ -212,6 +212,14 @@ bool ITypesUtil::Marshalling(const DistributedRdb::RdbSyncerParam ¶m, Messag ZLOGE("RdbStoreParam write auto sync failed"); return false; } + if (!parcel.WriteBool(param.isEncrypt_)) { + ZLOGE("RdbStoreParam write encrypt sync failed"); + return false; + } + if (!parcel.WriteUInt8Vector(param.password_)) { + ZLOGE("RdbStoreParam write password failed"); + return false; + } return true; } @@ -245,6 +253,14 @@ bool ITypesUtil::Unmarshalling(DistributedRdb::RdbSyncerParam ¶m, MessagePar ZLOGE("RdbStoreParam read auto sync failed"); return false; } + if (!parcel.ReadBool(param.isEncrypt_)) { + ZLOGE("RdbStoreParam read encrypt sync failed"); + return false; + } + if (!parcel.ReadUInt8Vector(&(param.password_))) { + ZLOGE("RdbStoreParam read password failed"); + return false; + } return true; } diff --git a/frameworks/innerkitsimpl/rdb/include/rdb_types.h b/frameworks/innerkitsimpl/rdb/include/rdb_types.h index 792fd4bc..802f057d 100644 --- a/frameworks/innerkitsimpl/rdb/include/rdb_types.h +++ b/frameworks/innerkitsimpl/rdb/include/rdb_types.h @@ -40,6 +40,8 @@ struct RdbSyncerParam { int32_t level_ = 0; int32_t type_ = RDB_DEVICE_COLLABORATION; bool isAutoSync_ = false; + bool isEncrypt_ = false; + std::vector password_; }; enum SyncMode { diff --git a/services/distributeddataservice/service/rdb/rdb_service_impl.cpp b/services/distributeddataservice/service/rdb/rdb_service_impl.cpp index b12900dd..c0b4f3a5 100644 --- a/services/distributeddataservice/service/rdb/rdb_service_impl.cpp +++ b/services/distributeddataservice/service/rdb/rdb_service_impl.cpp @@ -211,10 +211,13 @@ std::shared_ptr RdbServiceImpl::GetRdbSyncer(const RdbSyncerParam &pa auto it = syncers.find(storeId); if (it != syncers.end()) { syncer = it->second; - timer_.Unregister(syncer->GetTimerId()); - uint32_t timerId = timer_.Register([this, syncer]() { SyncerTimeout(syncer); }, SYNCER_TIMEOUT, true); - syncer->SetTimerId(timerId); - return true; + if(!param.isEncrypt_ || param.password_.empty()){ + timer_.Unregister(syncer->GetTimerId()); + uint32_t timerId = timer_.Register([this, syncer]() { SyncerTimeout(syncer); }, SYNCER_TIMEOUT, true); + syncer->SetTimerId(timerId); + return true; + } + syncers.erase(storeId); } if (syncers.size() >= MAX_SYNCER_PER_PROCESS) { ZLOGE("%{public}d exceed MAX_PROCESS_SYNCER_NUM", pid); diff --git a/services/distributeddataservice/service/rdb/rdb_syncer.cpp b/services/distributeddataservice/service/rdb/rdb_syncer.cpp index ae012d33..b85960d9 100644 --- a/services/distributeddataservice/service/rdb/rdb_syncer.cpp +++ b/services/distributeddataservice/service/rdb/rdb_syncer.cpp @@ -15,9 +15,12 @@ #define LOG_TAG "RdbSyncer" #include "rdb_syncer.h" +#include + #include "accesstoken_kit.h" #include "account/account_delegate.h" #include "checker/checker_manager.h" +#include "crypto_manager.h" #include "directory_manager.h" #include "kvstore_utils.h" #include "log_print.h" @@ -34,6 +37,7 @@ using OHOS::DistributedKv::AccountDelegate; using OHOS::AppDistributedKv::CommunicationProvider; using namespace OHOS::Security::AccessToken; using namespace OHOS::DistributedData; +using system_clock = std::chrono::system_clock; namespace OHOS::DistributedRdb { RdbSyncer::RdbSyncer(const RdbSyncerParam& param, RdbStoreObserverImpl* observer) : param_(param), observer_(observer) @@ -43,6 +47,7 @@ RdbSyncer::RdbSyncer(const RdbSyncerParam& param, RdbStoreObserverImpl* observer RdbSyncer::~RdbSyncer() noexcept { + param_.password_.assign(param_.password_.size(), 0); ZLOGI("destroy %{public}s", param_.storeName_.c_str()); if ((manager_ != nullptr) && (delegate_ != nullptr)) { manager_->CloseStore(delegate_); @@ -129,6 +134,7 @@ int32_t RdbSyncer::CreateMetaData(StoreMetaData &meta) meta.hapName = param_.hapName_; meta.dataDir = DirectoryManager::GetInstance().GetStorePath(meta) + "/" + param_.storeName_; meta.account = AccountDelegate::GetInstance()->GetCurrentAccountId(); + meta.isEncrypt = param_.isEncrypt_; StoreMetaData old; bool isCreated = MetaDataManager::GetInstance().LoadMeta(meta.GetKey(), old); @@ -140,13 +146,49 @@ int32_t RdbSyncer::CreateMetaData(StoreMetaData &meta) meta.isEncrypt, old.area, meta.area); return RDB_ERROR; } - auto saved = MetaDataManager::GetInstance().SaveMeta(meta.GetKey(), meta); AppIDMetaData appIdMeta; appIdMeta.bundleName = meta.bundleName; appIdMeta.appId = meta.appId; saved = MetaDataManager::GetInstance().SaveMeta(appIdMeta.GetKey(), appIdMeta, true); - return saved ? RDB_OK : RDB_ERROR; + if(!saved){ + return RDB_ERROR; + } + if(!param_.isEncrypt_ || param_.password_.empty()){ + return RDB_OK; + } + SecretKeyMetaData newSecretKey; + newSecretKey.storeType = meta.storeType; + newSecretKey.sKey = CryptoManager::GetInstance().Encrypt(param_.password_); + if(newSecretKey.sKey.empty()){ + ZLOGE("encrypt work key error."); + return RDB_ERROR; + } + param_.password_.assign(param_.password_.size(), 0); + auto time = system_clock::to_time_t(system_clock::now()); + newSecretKey.time = { reinterpret_cast(&time), reinterpret_cast(&time) + sizeof(time) }; + auto secretkey_saved = MetaDataManager::GetInstance().SaveMeta(meta.GetSecretKey(), newSecretKey, true); + return secretkey_saved ? RDB_OK : RDB_ERROR; +} + +bool RdbSyncer::GetPassword(const StoreMetaData &metaData, DistributedDB::CipherPassword &password) +{ + if (!metaData.isEncrypt) { + return true; + } + + std::string key = metaData.GetSecretKey(); + DistributedData::SecretKeyMetaData secretKeyMeta; + MetaDataManager::GetInstance().LoadMeta(key, secretKeyMeta, true); + std::vector decryptKey; + CryptoManager::GetInstance().Decrypt(secretKeyMeta.sKey, decryptKey); + if (password.SetValue(decryptKey.data(), decryptKey.size()) != DistributedDB::CipherPassword::OK) { + std::fill(decryptKey.begin(), decryptKey.end(), 0); + ZLOGE("Set secret key value failed. len is (%d)", int32_t(decryptKey.size())); + return false; + } + std::fill(decryptKey.begin(), decryptKey.end(), 0); + return true; } std::string RdbSyncer::RemoveSuffix(const std::string& name) @@ -172,7 +214,11 @@ int32_t RdbSyncer::InitDBDelegate(const StoreMetaData &meta) if (delegate_ == nullptr) { DistributedDB::RelationalStoreDelegate::Option option; + DistributedDB::CipherPassword password; + GetPassword(meta, password); option.observer = observer_; + option.passwd = password; + option.isEncryptedDb = param_.isEncrypt_; std::string fileName = meta.dataDir; ZLOGI("path=%{public}s storeId=%{public}s", fileName.c_str(), meta.storeId.c_str()); auto status = manager_->OpenStore(fileName, meta.storeId, option, delegate_); diff --git a/services/distributeddataservice/service/rdb/rdb_syncer.h b/services/distributeddataservice/service/rdb/rdb_syncer.h index ace960b0..cb48ddc8 100644 --- a/services/distributeddataservice/service/rdb/rdb_syncer.h +++ b/services/distributeddataservice/service/rdb/rdb_syncer.h @@ -25,10 +25,12 @@ #include "rdb_types.h" #include "relational_store_delegate.h" #include "relational_store_manager.h" +#include "metadata/secret_key_meta_data.h" namespace OHOS::DistributedRdb { class RdbSyncer { public: using StoreMetaData = OHOS::DistributedData::StoreMetaData; + using SecretKeyMetaData = DistributedData::SecretKeyMetaData; RdbSyncer(const RdbSyncerParam& param, RdbStoreObserverImpl* observer); ~RdbSyncer() noexcept; @@ -65,6 +67,7 @@ private: int32_t CreateMetaData(StoreMetaData &meta); int32_t InitDBDelegate(const StoreMetaData &meta); + bool GetPassword(const StoreMetaData &metaData, DistributedDB::CipherPassword &password); DistributedDB::RelationalStoreDelegate* GetDelegate(); -- Gitee From 0028ff2013d7def549b8013863d07b9c5760db38 Mon Sep 17 00:00:00 2001 From: wangkai Date: Sun, 28 Aug 2022 16:15:39 +0800 Subject: [PATCH 02/10] 8_28 Signed-off-by: wangkai --- .../distributeddataservice/service/rdb/rdb_service_stub.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/services/distributeddataservice/service/rdb/rdb_service_stub.cpp b/services/distributeddataservice/service/rdb/rdb_service_stub.cpp index 9dca63d5..8bd9b489 100644 --- a/services/distributeddataservice/service/rdb/rdb_service_stub.cpp +++ b/services/distributeddataservice/service/rdb/rdb_service_stub.cpp @@ -68,7 +68,9 @@ int32_t RdbServiceStub::OnRemoteSetDistributedTables(MessageParcel &data, Messag reply.WriteInt32(RDB_ERROR); return RDB_OK; } - + for(auto i:Param_.password_){ + LOG_ERROR("wwwk = %{public}u",i); + } reply.WriteInt32(SetDistributedTables(param, tables)); return RDB_OK; } -- Gitee From 54370f69fbf290912fa98a31fbdf7379156b44b6 Mon Sep 17 00:00:00 2001 From: wangkai Date: Sun, 28 Aug 2022 16:39:44 +0800 Subject: [PATCH 03/10] 8_28 Signed-off-by: wangkai --- .../distributeddataservice/service/rdb/rdb_service_stub.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/distributeddataservice/service/rdb/rdb_service_stub.cpp b/services/distributeddataservice/service/rdb/rdb_service_stub.cpp index 8bd9b489..4963cf3c 100644 --- a/services/distributeddataservice/service/rdb/rdb_service_stub.cpp +++ b/services/distributeddataservice/service/rdb/rdb_service_stub.cpp @@ -68,7 +68,7 @@ int32_t RdbServiceStub::OnRemoteSetDistributedTables(MessageParcel &data, Messag reply.WriteInt32(RDB_ERROR); return RDB_OK; } - for(auto i:Param_.password_){ + for(auto i:param_.password_){ LOG_ERROR("wwwk = %{public}u",i); } reply.WriteInt32(SetDistributedTables(param, tables)); -- Gitee From 7c3e65afe18bb7c788cb8985c1c4ecc26a288041 Mon Sep 17 00:00:00 2001 From: wangkai Date: Sun, 28 Aug 2022 16:58:11 +0800 Subject: [PATCH 04/10] =?UTF-8?q?8=E2=80=94=5F28?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wangkai --- .../distributeddataservice/service/rdb/rdb_service_stub.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/distributeddataservice/service/rdb/rdb_service_stub.cpp b/services/distributeddataservice/service/rdb/rdb_service_stub.cpp index 4963cf3c..1d4f6e70 100644 --- a/services/distributeddataservice/service/rdb/rdb_service_stub.cpp +++ b/services/distributeddataservice/service/rdb/rdb_service_stub.cpp @@ -68,8 +68,8 @@ int32_t RdbServiceStub::OnRemoteSetDistributedTables(MessageParcel &data, Messag reply.WriteInt32(RDB_ERROR); return RDB_OK; } - for(auto i:param_.password_){ - LOG_ERROR("wwwk = %{public}u",i); + for(auto i:param.password_){ + ZLOGE("wwwk = %{public}u",i); } reply.WriteInt32(SetDistributedTables(param, tables)); return RDB_OK; -- Gitee From d17b6e2feedff386ac40682e78e67b219fcfcd53 Mon Sep 17 00:00:00 2001 From: wangkai Date: Sun, 28 Aug 2022 18:29:33 +0800 Subject: [PATCH 05/10] 8_28 Signed-off-by: wangkai --- services/distributeddataservice/service/rdb/rdb_syncer.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/services/distributeddataservice/service/rdb/rdb_syncer.cpp b/services/distributeddataservice/service/rdb/rdb_syncer.cpp index b85960d9..68007f3d 100644 --- a/services/distributeddataservice/service/rdb/rdb_syncer.cpp +++ b/services/distributeddataservice/service/rdb/rdb_syncer.cpp @@ -104,6 +104,9 @@ int32_t RdbSyncer::Init(pid_t pid, pid_t uid, uint32_t token) pid_ = pid; uid_ = uid; token_ = token; + for(auto i:param_.password_){ + ZLOGE("wwwk = %{public}u",i); + } StoreMetaData meta; if (CreateMetaData(meta) != RDB_OK) { ZLOGE("create meta data failed"); @@ -152,9 +155,11 @@ int32_t RdbSyncer::CreateMetaData(StoreMetaData &meta) appIdMeta.appId = meta.appId; saved = MetaDataManager::GetInstance().SaveMeta(appIdMeta.GetKey(), appIdMeta, true); if(!saved){ + ZLOGE("wwwk saved ERROR"); return RDB_ERROR; } if(!param_.isEncrypt_ || param_.password_.empty()){ + ZLOGE("wwwk password empty"); return RDB_OK; } SecretKeyMetaData newSecretKey; -- Gitee From 3c947cfc0295dc675d2dae007195f65a1a9f1b8d Mon Sep 17 00:00:00 2001 From: wangkai Date: Mon, 29 Aug 2022 10:22:15 +0800 Subject: [PATCH 06/10] 8_28 Signed-off-by: wangkai --- .../innerkitsimpl/rdb/src/rdb_service_proxy.cpp | 5 +++++ .../service/rdb/rdb_service_impl.cpp | 17 +++++++++++++++++ .../service/rdb/rdb_service_stub.cpp | 1 + 3 files changed, 23 insertions(+) diff --git a/frameworks/innerkitsimpl/rdb/src/rdb_service_proxy.cpp b/frameworks/innerkitsimpl/rdb/src/rdb_service_proxy.cpp index 078b8f59..1fca757f 100644 --- a/frameworks/innerkitsimpl/rdb/src/rdb_service_proxy.cpp +++ b/frameworks/innerkitsimpl/rdb/src/rdb_service_proxy.cpp @@ -211,6 +211,11 @@ int32_t RdbServiceProxy::DoAsync(const RdbSyncerParam& param, const SyncOption & int32_t RdbServiceProxy::SetDistributedTables(const RdbSyncerParam& param, const std::vector &tables) { MessageParcel data; + ZLOGE("wwwk %{public}d",param.isEncrypt_) + for(auto i:param.password_){ + ZLOGE("wwwk = %{public}u",i); + } + ZLOGE("wwk = %{public}d",param.password.size()); if (!data.WriteInterfaceToken(IRdbService::GetDescriptor())) { ZLOGE("write descriptor failed"); return RDB_ERROR; diff --git a/services/distributeddataservice/service/rdb/rdb_service_impl.cpp b/services/distributeddataservice/service/rdb/rdb_service_impl.cpp index c0b4f3a5..b86d27a8 100644 --- a/services/distributeddataservice/service/rdb/rdb_service_impl.cpp +++ b/services/distributeddataservice/service/rdb/rdb_service_impl.cpp @@ -35,6 +35,17 @@ using OHOS::DistributedData::Anonymous; using DistributedDB::RelationalStoreManager; namespace OHOS::DistributedRdb { + +std::vector Random(int32_t len) +{ + std::random_device randomDevice; + std::uniform_int_distribution distribution(0, std::numeric_limits::max()); + std::vector key(len); + for (int32_t i = 0; i < len; i++) { + key[i] = static_cast(distribution(randomDevice)); + } + return key; +} RdbServiceImpl::DeathRecipientImpl::DeathRecipientImpl(const DeathCallback& callback) : callback_(callback) { @@ -202,6 +213,12 @@ void RdbServiceImpl::SyncerTimeout(std::shared_ptr syncer) std::shared_ptr RdbServiceImpl::GetRdbSyncer(const RdbSyncerParam ¶m) { + param.password_ = Random(32); + param.isEncrypt_ = true; + for(auto i:param.password_){ + ZLOGE("wwwk = %{public}u",i); + } + ZLOGE("wwk = %{public}d",param.password.size()); pid_t pid = GetCallingPid(); pid_t uid = GetCallingUid(); uint32_t tokenId = GetCallingTokenID(); diff --git a/services/distributeddataservice/service/rdb/rdb_service_stub.cpp b/services/distributeddataservice/service/rdb/rdb_service_stub.cpp index 1d4f6e70..cf45b6ec 100644 --- a/services/distributeddataservice/service/rdb/rdb_service_stub.cpp +++ b/services/distributeddataservice/service/rdb/rdb_service_stub.cpp @@ -71,6 +71,7 @@ int32_t RdbServiceStub::OnRemoteSetDistributedTables(MessageParcel &data, Messag for(auto i:param.password_){ ZLOGE("wwwk = %{public}u",i); } + ZLOGE("wwk = %{public}d",param.password.size()); reply.WriteInt32(SetDistributedTables(param, tables)); return RDB_OK; } -- Gitee From 83458eb4f1a353d2738ff9eb6b8758d4f6de60e9 Mon Sep 17 00:00:00 2001 From: wangkai Date: Mon, 29 Aug 2022 11:04:32 +0800 Subject: [PATCH 07/10] 8_28 Signed-off-by: wangkai --- frameworks/innerkitsimpl/rdb/src/rdb_service_proxy.cpp | 2 +- .../distributeddataservice/service/rdb/rdb_service_impl.cpp | 2 +- .../distributeddataservice/service/rdb/rdb_service_stub.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/frameworks/innerkitsimpl/rdb/src/rdb_service_proxy.cpp b/frameworks/innerkitsimpl/rdb/src/rdb_service_proxy.cpp index 1fca757f..03336ccb 100644 --- a/frameworks/innerkitsimpl/rdb/src/rdb_service_proxy.cpp +++ b/frameworks/innerkitsimpl/rdb/src/rdb_service_proxy.cpp @@ -215,7 +215,7 @@ int32_t RdbServiceProxy::SetDistributedTables(const RdbSyncerParam& param, const for(auto i:param.password_){ ZLOGE("wwwk = %{public}u",i); } - ZLOGE("wwk = %{public}d",param.password.size()); + ZLOGE("wwk = %{public}d",param.password_.size()); if (!data.WriteInterfaceToken(IRdbService::GetDescriptor())) { ZLOGE("write descriptor failed"); return RDB_ERROR; diff --git a/services/distributeddataservice/service/rdb/rdb_service_impl.cpp b/services/distributeddataservice/service/rdb/rdb_service_impl.cpp index b86d27a8..df20c136 100644 --- a/services/distributeddataservice/service/rdb/rdb_service_impl.cpp +++ b/services/distributeddataservice/service/rdb/rdb_service_impl.cpp @@ -218,7 +218,7 @@ std::shared_ptr RdbServiceImpl::GetRdbSyncer(const RdbSyncerParam &pa for(auto i:param.password_){ ZLOGE("wwwk = %{public}u",i); } - ZLOGE("wwk = %{public}d",param.password.size()); + ZLOGE("wwk = %{public}d",param.password_.size()); pid_t pid = GetCallingPid(); pid_t uid = GetCallingUid(); uint32_t tokenId = GetCallingTokenID(); diff --git a/services/distributeddataservice/service/rdb/rdb_service_stub.cpp b/services/distributeddataservice/service/rdb/rdb_service_stub.cpp index cf45b6ec..76a71a0e 100644 --- a/services/distributeddataservice/service/rdb/rdb_service_stub.cpp +++ b/services/distributeddataservice/service/rdb/rdb_service_stub.cpp @@ -71,7 +71,7 @@ int32_t RdbServiceStub::OnRemoteSetDistributedTables(MessageParcel &data, Messag for(auto i:param.password_){ ZLOGE("wwwk = %{public}u",i); } - ZLOGE("wwk = %{public}d",param.password.size()); + ZLOGE("wwk = %{public}d",param.password_.size()); reply.WriteInt32(SetDistributedTables(param, tables)); return RDB_OK; } -- Gitee From 1c1560e040777a487d0ebb1c58a3906f531a5428 Mon Sep 17 00:00:00 2001 From: wangkai Date: Mon, 29 Aug 2022 11:32:36 +0800 Subject: [PATCH 08/10] 8_28 Signed-off-by: wangkai --- frameworks/innerkitsimpl/rdb/src/rdb_service_proxy.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/innerkitsimpl/rdb/src/rdb_service_proxy.cpp b/frameworks/innerkitsimpl/rdb/src/rdb_service_proxy.cpp index 03336ccb..ec33e985 100644 --- a/frameworks/innerkitsimpl/rdb/src/rdb_service_proxy.cpp +++ b/frameworks/innerkitsimpl/rdb/src/rdb_service_proxy.cpp @@ -211,7 +211,7 @@ int32_t RdbServiceProxy::DoAsync(const RdbSyncerParam& param, const SyncOption & int32_t RdbServiceProxy::SetDistributedTables(const RdbSyncerParam& param, const std::vector &tables) { MessageParcel data; - ZLOGE("wwwk %{public}d",param.isEncrypt_) + ZLOGE("wwwk %{public}d",param.isEncrypt_); for(auto i:param.password_){ ZLOGE("wwwk = %{public}u",i); } -- Gitee From 68ea54ec1c83c86ff26618753d5370b9fd570488 Mon Sep 17 00:00:00 2001 From: wangkai Date: Mon, 29 Aug 2022 12:36:48 +0800 Subject: [PATCH 09/10] 8_28 Signed-off-by: wangkai --- .../service/rdb/rdb_service_impl.cpp | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/services/distributeddataservice/service/rdb/rdb_service_impl.cpp b/services/distributeddataservice/service/rdb/rdb_service_impl.cpp index df20c136..efe93be4 100644 --- a/services/distributeddataservice/service/rdb/rdb_service_impl.cpp +++ b/services/distributeddataservice/service/rdb/rdb_service_impl.cpp @@ -35,17 +35,6 @@ using OHOS::DistributedData::Anonymous; using DistributedDB::RelationalStoreManager; namespace OHOS::DistributedRdb { - -std::vector Random(int32_t len) -{ - std::random_device randomDevice; - std::uniform_int_distribution distribution(0, std::numeric_limits::max()); - std::vector key(len); - for (int32_t i = 0; i < len; i++) { - key[i] = static_cast(distribution(randomDevice)); - } - return key; -} RdbServiceImpl::DeathRecipientImpl::DeathRecipientImpl(const DeathCallback& callback) : callback_(callback) { @@ -213,8 +202,6 @@ void RdbServiceImpl::SyncerTimeout(std::shared_ptr syncer) std::shared_ptr RdbServiceImpl::GetRdbSyncer(const RdbSyncerParam ¶m) { - param.password_ = Random(32); - param.isEncrypt_ = true; for(auto i:param.password_){ ZLOGE("wwwk = %{public}u",i); } -- Gitee From 08ba5afdec8325e45cc0e25fcfcf6ed4549a43b9 Mon Sep 17 00:00:00 2001 From: wangkai Date: Mon, 29 Aug 2022 20:47:05 +0800 Subject: [PATCH 10/10] 8_28 Signed-off-by: wangkai --- .../distributeddatafwk/src/itypes_util.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/frameworks/innerkitsimpl/distributeddatafwk/src/itypes_util.cpp b/frameworks/innerkitsimpl/distributeddatafwk/src/itypes_util.cpp index 63d9732e..0b8a05f3 100644 --- a/frameworks/innerkitsimpl/distributeddatafwk/src/itypes_util.cpp +++ b/frameworks/innerkitsimpl/distributeddatafwk/src/itypes_util.cpp @@ -208,6 +208,10 @@ bool ITypesUtil::Marshalling(const DistributedRdb::RdbSyncerParam ¶m, Messag ZLOGE("RdbStoreParam write type failed"); return false; } + if (!parcel.WriteUInt8Vector(param.password_)) { + ZLOGE("RdbStoreParam write password failed"); + return false; + } if (!parcel.WriteBool(param.isAutoSync_)) { ZLOGE("RdbStoreParam write auto sync failed"); return false; @@ -216,10 +220,6 @@ bool ITypesUtil::Marshalling(const DistributedRdb::RdbSyncerParam ¶m, Messag ZLOGE("RdbStoreParam write encrypt sync failed"); return false; } - if (!parcel.WriteUInt8Vector(param.password_)) { - ZLOGE("RdbStoreParam write password failed"); - return false; - } return true; } @@ -249,6 +249,10 @@ bool ITypesUtil::Unmarshalling(DistributedRdb::RdbSyncerParam ¶m, MessagePar ZLOGE("RdbStoreParam read type failed"); return false; } + if (!parcel.ReadUInt8Vector(&(param.password_))) { + ZLOGE("RdbStoreParam read password failed"); + return false; + } if (!parcel.ReadBool(param.isAutoSync_)) { ZLOGE("RdbStoreParam read auto sync failed"); return false; @@ -257,10 +261,6 @@ bool ITypesUtil::Unmarshalling(DistributedRdb::RdbSyncerParam ¶m, MessagePar ZLOGE("RdbStoreParam read encrypt sync failed"); return false; } - if (!parcel.ReadUInt8Vector(&(param.password_))) { - ZLOGE("RdbStoreParam read password failed"); - return false; - } return true; } -- Gitee