From e8456b931541213d138518de565fe84ae9fd6169 Mon Sep 17 00:00:00 2001 From: wangyongzhong2 Date: Mon, 7 Mar 2022 15:13:26 +0800 Subject: [PATCH 1/6] add syscap Signed-off-by: wangyongzhong2 --- bundle.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bundle.json b/bundle.json index 0d72e8a..c7b8261 100755 --- a/bundle.json +++ b/bundle.json @@ -12,7 +12,9 @@ "component": { "name": "dataclassification", "subsystem": "security", - "syscap": [], + "syscap": [ + "SystemCapability.Security.DataTransitManager" + ], "features": [ "dataclassification_datatransmitmgr" ], -- Gitee From 7debcd9c88324b274b2add7bbd44ca3be8952909 Mon Sep 17 00:00:00 2001 From: wangyongzhong2 Date: Mon, 14 Mar 2022 15:36:53 +0800 Subject: [PATCH 2/6] update_03/14 Signed-off-by: wangyongzhong2 --- BUILD.gn | 2 +- LICENSE | 0 README.md | 0 bundle.json | 0 figures/dataclassification.png | Bin figures/dataclassification_zh.png | Bin frameworks/datatransmitmgr/dev_slinfo_adpt.c | 8 ++++---- frameworks/datatransmitmgr/dev_slinfo_list.c | 15 ++++++++------- frameworks/datatransmitmgr/dev_slinfo_mgr.c | 3 ++- interfaces/innerkits/datatransmitmgr/BUILD.gn | 4 ++-- .../datatransmitmgr/include/dev_slinfo_adpt.h | 4 ++-- .../datatransmitmgr/include/dev_slinfo_list.h | 2 +- .../datatransmitmgr/include/dev_slinfo_log.h | 2 +- .../datatransmitmgr/include/dev_slinfo_mgr.h | 2 +- test/unittest/datatransmitmgr/BUILD.gn | 4 ++-- test/unittest/datatransmitmgr/DevSLMgrTest.cpp | 2 +- test/unittest/datatransmitmgr/DevSLMgrTest.h | 2 +- 17 files changed, 26 insertions(+), 24 deletions(-) mode change 100755 => 100644 BUILD.gn mode change 100755 => 100644 LICENSE mode change 100755 => 100644 README.md mode change 100755 => 100644 bundle.json mode change 100755 => 100644 figures/dataclassification.png mode change 100755 => 100644 figures/dataclassification_zh.png diff --git a/BUILD.gn b/BUILD.gn old mode 100755 new mode 100644 index 5082f8b..15dd462 --- a/BUILD.gn +++ b/BUILD.gn @@ -1,4 +1,4 @@ -# Copyright (C) 2021 Huawei Device Co., Ltd. +# Copyright (C) 2021-2022 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at diff --git a/LICENSE b/LICENSE old mode 100755 new mode 100644 diff --git a/README.md b/README.md old mode 100755 new mode 100644 diff --git a/bundle.json b/bundle.json old mode 100755 new mode 100644 diff --git a/figures/dataclassification.png b/figures/dataclassification.png old mode 100755 new mode 100644 diff --git a/figures/dataclassification_zh.png b/figures/dataclassification_zh.png old mode 100755 new mode 100644 diff --git a/frameworks/datatransmitmgr/dev_slinfo_adpt.c b/frameworks/datatransmitmgr/dev_slinfo_adpt.c index 58b7226..e332f03 100644 --- a/frameworks/datatransmitmgr/dev_slinfo_adpt.c +++ b/frameworks/datatransmitmgr/dev_slinfo_adpt.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021-2022 Huawei Device Co., Ltd. + * Copyright (C) 2022 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -131,7 +131,7 @@ void FinishDevslEnv(void) return; } -int32_t GetDeviceSecLevelByUdid(uint8_t *udid, uint32_t udidLen, int32_t *devLevel) +int32_t GetDeviceSecLevelByUdid(const uint8_t *udid, uint32_t udidLen, int32_t *devLevel) { DATA_SEC_LOG_INFO("Enter GetDeviceSecLevelByUdid..."); if (g_deviceSecEnv.requestDeviceSecurityInfo == NULL) { @@ -232,7 +232,7 @@ void OnApiDeviceSecInfoCallback(const DeviceIdentify *identify, struct DeviceSec DATA_SEC_LOG_INFO("OnApiDeviceSecInfoCallback done!"); } -int32_t GetDeviceSecLevelByUdidAsync(uint8_t *udid, uint32_t udidLen) +int32_t GetDeviceSecLevelByUdidAsync(const uint8_t *udid, uint32_t udidLen) { DATA_SEC_LOG_INFO("Enter GetDeviceSecLevelByUdidAsync..."); if (g_deviceSecEnv.requestDeviceSecurityInfoAsync == NULL) { @@ -299,7 +299,7 @@ int32_t GetDataSecLevelByDevSecLevel(int32_t devLevel) } } if (i >= n) { - DATA_SEC_LOG_WARN("GetDataSecLevelBySecLevel, unknow device level tag: %d", devLevel); + DATA_SEC_LOG_WARN("GetDataSecLevelBySecLevel, unknown device level tag: %d", devLevel); } return DATA_SEC_LEVEL0; } diff --git a/frameworks/datatransmitmgr/dev_slinfo_list.c b/frameworks/datatransmitmgr/dev_slinfo_list.c index 832902d..1955a2c 100644 --- a/frameworks/datatransmitmgr/dev_slinfo_list.c +++ b/frameworks/datatransmitmgr/dev_slinfo_list.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021-2022 Huawei Device Co., Ltd. + * Copyright (C) 2022 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -35,12 +35,13 @@ struct DATASLListParams* InitList(void) return list; } -static void UpdateListNode(struct DATASLListParams *new, struct DATASLListParams *prev, struct DATASLListParams *next) +static void UpdateListNode(struct DATASLListParams *newListNode, + struct DATASLListParams *prevListNode, struct DATASLListParams *nextListNode) { - next->prev = new; - new->next = next; - new->prev = prev; - prev->next = new; + nextListNode->prev = newListNode; + newListNode->next = nextListNode; + newListNode->prev = prevListNode; + prevListNode->next = newListNode; } int32_t PushListNode(struct DATASLListParams *list, struct DATASLCallbackParams *callbackParams) @@ -53,7 +54,7 @@ int32_t PushListNode(struct DATASLListParams *list, struct DATASLCallbackParams } UpdateListNode(newList, list->prev, list); - newList->callbackParams = (struct DATASLCallbackParams*)callbackParams; + newList->callbackParams = callbackParams; pthread_mutex_unlock(&gMutex); return DEVSL_SUCCESS; } diff --git a/frameworks/datatransmitmgr/dev_slinfo_mgr.c b/frameworks/datatransmitmgr/dev_slinfo_mgr.c index f55165b..cad4976 100644 --- a/frameworks/datatransmitmgr/dev_slinfo_mgr.c +++ b/frameworks/datatransmitmgr/dev_slinfo_mgr.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021-2022 Huawei Device Co., Ltd. + * Copyright (C) 2022 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -12,6 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + #include "dev_slinfo_list.h" #include "dev_slinfo_adpt.h" #include "dev_slinfo_log.h" diff --git a/interfaces/innerkits/datatransmitmgr/BUILD.gn b/interfaces/innerkits/datatransmitmgr/BUILD.gn index 137b0d3..b3875a4 100644 --- a/interfaces/innerkits/datatransmitmgr/BUILD.gn +++ b/interfaces/innerkits/datatransmitmgr/BUILD.gn @@ -1,4 +1,4 @@ -# Copyright (c) 2021-2022 Huawei Device Co., Ltd. +# Copyright (C) 2022 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at @@ -9,7 +9,7 @@ # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and -# limitations under the License. +# limitations under the License. import("//build/ohos.gni") diff --git a/interfaces/innerkits/datatransmitmgr/include/dev_slinfo_adpt.h b/interfaces/innerkits/datatransmitmgr/include/dev_slinfo_adpt.h index b93f9f8..437225c 100644 --- a/interfaces/innerkits/datatransmitmgr/include/dev_slinfo_adpt.h +++ b/interfaces/innerkits/datatransmitmgr/include/dev_slinfo_adpt.h @@ -54,11 +54,11 @@ int32_t StartDevslEnv(void); void FinishDevslEnv(void); -int32_t GetDeviceSecLevelByUdid(uint8_t *udid, uint32_t udidLen, int32_t *devLevel); +int32_t GetDeviceSecLevelByUdid(const uint8_t *udid, uint32_t udidLen, int32_t *devLevel); int32_t CompareUdid(DEVSLQueryParams *queryParamsL, DEVSLQueryParams *queryParamsR); -int32_t GetDeviceSecLevelByUdidAsync(uint8_t *udid, uint32_t udidLen); +int32_t GetDeviceSecLevelByUdidAsync(const uint8_t *udid, uint32_t udidLen); int32_t GetDataSecLevelByDevSecLevel(int32_t devLevel); diff --git a/interfaces/innerkits/datatransmitmgr/include/dev_slinfo_list.h b/interfaces/innerkits/datatransmitmgr/include/dev_slinfo_list.h index 11ee1db..d2a76a4 100644 --- a/interfaces/innerkits/datatransmitmgr/include/dev_slinfo_list.h +++ b/interfaces/innerkits/datatransmitmgr/include/dev_slinfo_list.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021-2022 Huawei Device Co., Ltd. + * Copyright (C) 2022 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/interfaces/innerkits/datatransmitmgr/include/dev_slinfo_log.h b/interfaces/innerkits/datatransmitmgr/include/dev_slinfo_log.h index 3d3f7a9..e572d9a 100644 --- a/interfaces/innerkits/datatransmitmgr/include/dev_slinfo_log.h +++ b/interfaces/innerkits/datatransmitmgr/include/dev_slinfo_log.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021-2022 Huawei Device Co., Ltd. + * Copyright (C) 2022 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/interfaces/innerkits/datatransmitmgr/include/dev_slinfo_mgr.h b/interfaces/innerkits/datatransmitmgr/include/dev_slinfo_mgr.h index ccac98d..10dc2f2 100644 --- a/interfaces/innerkits/datatransmitmgr/include/dev_slinfo_mgr.h +++ b/interfaces/innerkits/datatransmitmgr/include/dev_slinfo_mgr.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021-2022 Huawei Device Co., Ltd. + * Copyright (C) 2022 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/test/unittest/datatransmitmgr/BUILD.gn b/test/unittest/datatransmitmgr/BUILD.gn index 062bc3c..32e47cb 100644 --- a/test/unittest/datatransmitmgr/BUILD.gn +++ b/test/unittest/datatransmitmgr/BUILD.gn @@ -1,4 +1,4 @@ -# Copyright (C) 2021-2022 Huawei Device Co., Ltd. +# Copyright (C) 2022 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at @@ -9,7 +9,7 @@ # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and -# limitations under the License. +# limitations under the License. import("//build/test.gni") module_output_path = "dataclassification/datasecuritylevel" diff --git a/test/unittest/datatransmitmgr/DevSLMgrTest.cpp b/test/unittest/datatransmitmgr/DevSLMgrTest.cpp index b3f14b4..5255e41 100644 --- a/test/unittest/datatransmitmgr/DevSLMgrTest.cpp +++ b/test/unittest/datatransmitmgr/DevSLMgrTest.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021-2022 Huawei Device Co., Ltd. + * Copyright (C) 2022 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/test/unittest/datatransmitmgr/DevSLMgrTest.h b/test/unittest/datatransmitmgr/DevSLMgrTest.h index 45ea602..09baf0b 100644 --- a/test/unittest/datatransmitmgr/DevSLMgrTest.h +++ b/test/unittest/datatransmitmgr/DevSLMgrTest.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021-2022 Huawei Device Co., Ltd. + * Copyright (C) 2022 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at -- Gitee From e5044c6c6c0d5b7f414b84d7dc62f5af65625f66 Mon Sep 17 00:00:00 2001 From: wangyongzhong2 Date: Mon, 14 Mar 2022 20:25:59 +0800 Subject: [PATCH 3/6] update_TDD-test Signed-off-by: wangyongzhong2 --- test/unittest/datatransmitmgr/DevSLMgrTest.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/test/unittest/datatransmitmgr/DevSLMgrTest.cpp b/test/unittest/datatransmitmgr/DevSLMgrTest.cpp index 5255e41..f53734e 100644 --- a/test/unittest/datatransmitmgr/DevSLMgrTest.cpp +++ b/test/unittest/datatransmitmgr/DevSLMgrTest.cpp @@ -54,6 +54,7 @@ static HWTEST_F(DevSLMgrTest, TestOnstart, TestSize.Level1) ret = DATASL_OnStart(); EXPECT_EQ(DEVSL_SUCCESS, ret); + DATASL_OnStop(); } static HWTEST_F(DevSLMgrTest, TestGetHighestSecLevel001, TestSize.Level1) @@ -64,6 +65,7 @@ static HWTEST_F(DevSLMgrTest, TestGetHighestSecLevel001, TestSize.Level1) ret = DATASL_OnStart(); ret = DATASL_GetHighestSecLevel(nullptr, &levelInfo); EXPECT_EQ(DEVSL_ERR_BAD_PARAMETERS, ret); + DATASL_OnStop(); } static HWTEST_F(DevSLMgrTest, TestGetHighestSecLevel002, TestSize.Level1) @@ -77,6 +79,7 @@ static HWTEST_F(DevSLMgrTest, TestGetHighestSecLevel002, TestSize.Level1) ret = DATASL_OnStart(); ret = DATASL_GetHighestSecLevel(&queryParams, nullptr); EXPECT_EQ(DEVSL_ERR_BAD_PARAMETERS, ret); + DATASL_OnStop(); } static HWTEST_F(DevSLMgrTest, TestGetHighestSecLevel003, TestSize.Level1) @@ -92,6 +95,7 @@ static HWTEST_F(DevSLMgrTest, TestGetHighestSecLevel003, TestSize.Level1) ret = DATASL_GetHighestSecLevel(&queryParams, &levelInfo); EXPECT_EQ(DATA_SEC_LEVEL0, static_cast(levelInfo)); EXPECT_EQ(ERR_NOEXIST_DEVICE, ret); + DATASL_OnStop(); } static void tmpCallback000(DEVSLQueryParams *queryParams, int32_t result, uint32_t levelInfo) @@ -106,6 +110,7 @@ static HWTEST_F(DevSLMgrTest, TestGetHighestSecLevelAsync001, TestSize.Level1) ret = DATASL_OnStart(); ret = DATASL_GetHighestSecLevelAsync(nullptr, &tmpCallback000); EXPECT_EQ(DEVSL_ERR_BAD_PARAMETERS, ret); + DATASL_OnStop(); } static HWTEST_F(DevSLMgrTest, TestGetHighestSecLevelAsync002, TestSize.Level1) @@ -115,8 +120,10 @@ static HWTEST_F(DevSLMgrTest, TestGetHighestSecLevelAsync002, TestSize.Level1) (void)memset_s(&queryParams, sizeof(queryParams), 0, sizeof(queryParams)); DATASL_GetUdidByOpp(&queryParams); + ret = DATASL_OnStart(); ret = DATASL_GetHighestSecLevelAsync(&queryParams, nullptr); EXPECT_EQ(DEVSL_ERR_BAD_PARAMETERS, ret); + DATASL_OnStop(); } static void tmpCallback(DEVSLQueryParams *queryParams, int32_t result, uint32_t levelInfo) @@ -132,6 +139,7 @@ static HWTEST_F(DevSLMgrTest, TestGetHighestSecLevelAsync003, TestSize.Level1) (void)memset_s(&queryParams, sizeof(queryParams), 0, sizeof(queryParams)); DATASL_GetUdidByOpp(&queryParams); + ret = DATASL_OnStart(); ret = DATASL_GetHighestSecLevelAsync(&queryParams, &tmpCallback); EXPECT_EQ(ERR_NOEXIST_DEVICE, ret); DATASL_OnStop(); -- Gitee From 539bfa734446fceeb89169110a1360c5195216a1 Mon Sep 17 00:00:00 2001 From: wangyongzhong2 Date: Tue, 15 Mar 2022 18:59:06 +0800 Subject: [PATCH 4/6] update readme_zh.md Signed-off-by: wangyongzhong2 --- README_zh.md | 156 ++++++++---------------------- figures/dataclassification_zh.png | Bin 6063 -> 6158 bytes 2 files changed, 41 insertions(+), 115 deletions(-) diff --git a/README_zh.md b/README_zh.md index c3effb7..c2a6b5f 100644 --- a/README_zh.md +++ b/README_zh.md @@ -1,143 +1,69 @@ -# 数据分级保护 +# 数据传输管控 -- [数据分级保护](#数据分级保护) - - [简介](#简介) - - [系统架构](#系统架构) - - [目录](#目录) - - [约束](#约束) - - [说明](#说明) - - [接口说明](#接口说明) - - [使用说明](#使用说明) - - [相关仓](#相关仓) +- [简介](#section11660541593) +- [目录](#section161941989596) +- [接口说明](#section1312121216216) +- [相关仓](#section1371113476307) -## 简介 +## 简介 -在OpenHarmony中,数据分级保护模块负责提供数据分级的保护策略。数据分级保护模块提供了数据分级相关的接口定义。 +在OpenHarmony中,数据传输管控模块负责为分布式服务提供跨设备传输时的管控策略。数据传输管控模块提供了数据传输管控相关的接口定义。 -数据分级保护模块当前提供如下接口定义: +数据传输管控模块当前提供如下接口定义: -- 基于设备安全等级的数据跨设备访问控制接口:提供基于设备安全等级的数据跨设备访问控制的接口,分布式跨设备数据传输业务可使用该接口获得对端设备可支持的数据风险等级。 +- 数据传输管控接口:为分布式服务提供数据跨设备传输时的管控策略,获取允许发送到对端设备的数据的最高风险等级。 -## 系统架构 +为实现上述接口定义,数据传输管控模块当前包含数据传输管控接口,其部署逻辑如下图: +![](figures/dataclassification_zh.png) +- 分布式服务:提供分布式数据管理能力的分布式服务,包含分布式文件系统、分布式数据管理等。 -## 目录 +- 数据传输管控模块:为分布式服务提供数据跨设备传输时的管控策略,获取允许发送到对端设备的数据的最高风险等级。 +- 设备安全等级管理模块:为数据传输管控提供设备安全等级信息。 +系统中涉及提供数据访问能力分布式服务,在发起数据传输前,需要确认对端设备的安全等级是否能满足当前数据风险等级的要求,即满足下表所示的管控要求: -``` -base/security/dataclassification -├── frameworks -│ └── datatransmitmgr # 代码实现 -├── interfaces # 接口API代码 -│ └── innerkits -│ └── datatransmitmgr -└── text #测试代码 - └── unittest - └── datatransmitmgr -``` - - - -## 约束 - -- 开发语言:C - -## 说明 - -### 接口说明 +**表 1** 各安全等级的设备可支持的数据风险等级映射表 -数据分级保护提供的API接口功能介绍 +| **设备安全等级** | **SL5** | **SL4** | **SL3** | **SL2** | **SL1** | +| ---------------- | --------- | --------- | --------- | --------- | --------- | +| **数据风险等级** | **S0~S4** | **S0~S4** | **S0~S3** | **S0~S2** | **S0~S1** | -| 接口名 | 描述 | -| ------------------------------------------------------------ | :----------------------------------------------------- | -| int32_t DATASL_GetHighestSecLevel(DEVSLQueryParams *queryParams, uint32_t *levelInfo); | 请求获取对应设备允许传输的最高数据安全等级(同步接口) | -| int32_t DATASL_GetHighestSecLevelAsync(DEVSLQueryParams *queryParams, HigestSecInfoCallback *callback); | 请求获取对应设备允许传输的最高数据安全等级(异步接口) | -| int32_t DATASL_OnStart(void); | 初始化模块 | -| void DATASL_OnStop(void); | 模块退出 | +分布式服务根据数据传输管控返回的数据风险等级实施默认拦截。在数据传输被拦截时,用户可授权放通(如,弹框并经用户确认后即可放通数据传输),设备厂商可自行实现该放通授权机制。 -### 使用说明 -所有接口均为native C内部接口 - -#### 依赖添加 - -1、编译依赖添加 +## 目录 ``` -external_deps += [ "dataclassification:data_transit_mgr" ] +/base/security/dataclassification +├── frameworks # 框架层 +│ └── datatransmitmgr # 基础功能代码存放目录 +└── interfaces # 接口层 + └── innerkits # 内部接口层 + └── datatransmitmgr # 内部接口代码存放目录 ``` -2、头文件添加 +## 接口说明 -``` -#include "dev_slinfo_mgr.h" -``` +设备认证组件中,设备群组管理服务负责将不同业务建立的设备间可信关系抽象成一个个可信群组,对外提供统一的接口,包含群组创建、删除、查询等功能;设备群组认证服务基于已经建立过可信关系的设备群组,提供设备可信认证与端到端会话密钥协商功能。 -接口使用示例 - -1、同步接口使用示例如下: - -```c++ -void CheckDestHighestSecurityLevel(DEVSLQueryParams *queryParams) -{ - // 数据风险等级 - uint32_t levelInfo = 0; - - //初始化模块 - int32_t ret = DATASL_OnStart(); - if (ret != DEVSL_SUCCESS) { - // 初始化模块失败。此场景建议开发者根据实际情况进行重试 - return; - } - - // 调用同步接口获取设备允许的最高数据风险等级 - int32_t ret = DATASL_GetHighestSecLevel(queryParams, &levelInfo); - if (ret != DEVSL_SUCCESS) { - // 获取信息失败。此场景建议开发者根据实际情况进行重试 - return; - } - - // 模块退出 - DATASL_OnStop(); -} -``` +**表 2** 数据传输管控提供的API接口功能介绍 + +| 接口名 | 描述 | +| ------------------------------------------------------------ | -------------------------------------- | +| int32_t DATASL_GetHighestSecLevel(DEVSLQueryParams *queryParams, uint32_t *levelInfo); | 获取对应设备可支持的数据风险等级。 | +| int32_t DATASL_GetHighestSecLevelAsync(DEVSLQueryParams *queryParams, HigestSecInfoCallback *callback); | 异步获取对应设备可支持的数据风险等级。 | +| int32_t DATASL_OnStart(void); | 模块初始化 | +| void DATASL_OnStop(void); | 模块去初始化 | -2、异步接口使用示例如下: - -```c++ -// 回调函数,callback返回错误码以及设备允许的最高数据风险等级 -void HigestSecInfoCallback(DEVSLQueryParams *queryParams, int32_t result, uint32_t levelInfo) -{ - if (result != DEVSL_SUCCESS) { - // 异步获取信息失败。此场景建议开发者根据实际情况进行重试 - return; - } -} -void CheckDestHighestSecurityLevel(DEVSLQueryParams *queryParams) -{ - //初始化模块,重复初始化不影响功能,建议避免重复操作 - int32_t ret = DATASL_OnStart(); - - //调用异步接口获取设备允许的最高数据风险等级 - ret = DATASL_GetHighestSecLevelAsync(queryParams, HigestSecInfoCallback); - if (ret != DEVSL_SUCCESS) { - // 获取信息失败,此场景建议开发者根据实际情况进行重试 - // 此场景下callback不会回调。 - return; - } - // 调用成功,等待callback回调。 - - //关闭模块,注意在多线程的情况下慎重使用,当前线程关闭之后会对其他线程造成影响 - DATASL_OnStop(); -} -``` -## 相关仓 +## 相关仓 -安全子系统 +**安全子系统** + +base/security/dataclassification -base/security/dataclassification \ No newline at end of file diff --git a/figures/dataclassification_zh.png b/figures/dataclassification_zh.png index aa4619448a7aa853330f399d83e49abc9d7a5b21..7a5f988142c1b60028c2b3c558ea7dbeffcd9393 100644 GIT binary patch literal 6158 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 PhtFbcV6I=Phr<5{33EfV literal 6063 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 HxupLDQ5{l+ -- Gitee From c3f260c5274ff98ca7c757499e57d38d5646c1a3 Mon Sep 17 00:00:00 2001 From: wangyongzhong2 Date: Wed, 16 Mar 2022 11:03:00 +0800 Subject: [PATCH 5/6] code refine 03/06 Signed-off-by: wangyongzhong2 --- README_zh.md | 6 ++---- frameworks/datatransmitmgr/dev_slinfo_adpt.c | 6 +++--- frameworks/datatransmitmgr/dev_slinfo_mgr.c | 8 ++++---- .../innerkits/datatransmitmgr/include/dev_slinfo_adpt.h | 2 +- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/README_zh.md b/README_zh.md index c2a6b5f..a89935c 100644 --- a/README_zh.md +++ b/README_zh.md @@ -47,16 +47,14 @@ ## 接口说明 -设备认证组件中,设备群组管理服务负责将不同业务建立的设备间可信关系抽象成一个个可信群组,对外提供统一的接口,包含群组创建、删除、查询等功能;设备群组认证服务基于已经建立过可信关系的设备群组,提供设备可信认证与端到端会话密钥协商功能。 - **表 2** 数据传输管控提供的API接口功能介绍 | 接口名 | 描述 | | ------------------------------------------------------------ | -------------------------------------- | | int32_t DATASL_GetHighestSecLevel(DEVSLQueryParams *queryParams, uint32_t *levelInfo); | 获取对应设备可支持的数据风险等级。 | | int32_t DATASL_GetHighestSecLevelAsync(DEVSLQueryParams *queryParams, HigestSecInfoCallback *callback); | 异步获取对应设备可支持的数据风险等级。 | -| int32_t DATASL_OnStart(void); | 模块初始化 | -| void DATASL_OnStop(void); | 模块去初始化 | +| int32_t DATASL_OnStart(void); | 模块初始化。 | +| void DATASL_OnStop(void); | 模块去初始化。 | diff --git a/frameworks/datatransmitmgr/dev_slinfo_adpt.c b/frameworks/datatransmitmgr/dev_slinfo_adpt.c index e332f03..51ea95b 100644 --- a/frameworks/datatransmitmgr/dev_slinfo_adpt.c +++ b/frameworks/datatransmitmgr/dev_slinfo_adpt.c @@ -277,13 +277,13 @@ int32_t CompareUdid(DEVSLQueryParams *queryParamsL, DEVSLQueryParams *queryParam return DEVSL_SUCCESS; } -int32_t GetDataSecLevelByDevSecLevel(int32_t devLevel) +uint32_t GetDataSecLevelByDevSecLevel(int32_t devLevel) { int32_t i; int32_t n; struct { int32_t devSecLevel; - int32_t dataSecLevel; + uint32_t dataSecLevel; } devTypeMap[] = { { DEV_SEC_LEVEL1, DATA_SEC_LEVEL1 }, { DEV_SEC_LEVEL2, DATA_SEC_LEVEL2 }, @@ -309,7 +309,7 @@ int32_t UpdateCallbackListParams(DEVSLQueryParams *queryParams, HigestSecInfoCal DATA_SEC_LOG_INFO("Enter UpdateCallbackListParams..."); int32_t ret; int32_t result = DEVSL_ERR_REQUEST_DEVICE_EXCEED_LIMIT; - int32_t levelInfo = DEFAULT_DEV_SEC_LEVEL; + uint32_t levelInfo = DEFAULT_DEV_SEC_LEVEL; struct DATASLCallbackParams *newListNode = (struct DATASLCallbackParams*)malloc(sizeof(struct DATASLCallbackParams)); diff --git a/frameworks/datatransmitmgr/dev_slinfo_mgr.c b/frameworks/datatransmitmgr/dev_slinfo_mgr.c index cad4976..5861c2f 100644 --- a/frameworks/datatransmitmgr/dev_slinfo_mgr.c +++ b/frameworks/datatransmitmgr/dev_slinfo_mgr.c @@ -23,7 +23,7 @@ extern "C" { #define DATASL_API __attribute__ ((visibility ("default"))) -static int32_t GetHigestSecLevelByUdid(DEVSLQueryParams *queryParams, uint32_t *dataLevel) +static int32_t GetHighestSecLevelByUdid(DEVSLQueryParams *queryParams, uint32_t *dataLevel) { int32_t ret; int32_t devLevel = DEFAULT_DEV_SEC_LEVEL; @@ -35,7 +35,7 @@ static int32_t GetHigestSecLevelByUdid(DEVSLQueryParams *queryParams, uint32_t * ret = GetDeviceSecLevelByUdid(queryParams->udid, queryParams->udidLen, &devLevel); if (ret != DEVSL_SUCCESS) { *dataLevel = DATA_SEC_LEVEL0; - DATA_SEC_LOG_ERROR("GetHigestSecLevelByUdid: get device security level failed, error code: %d", ret); + DATA_SEC_LOG_ERROR("GetHighestSecLevelByUdid: get device security level failed, error code: %d", ret); return ret; } @@ -68,13 +68,13 @@ DATASL_API void DATASL_OnStop(void) DATASL_API int32_t DATASL_GetHighestSecLevel(DEVSLQueryParams *queryParams, uint32_t *levelInfo) { - int32_t ret = 0; + int32_t ret; DATA_SEC_LOG_INFO("Enter DATASL_GetHighestSecLevel..."); if ((queryParams == NULL) || (levelInfo == NULL)) { return DEVSL_ERR_BAD_PARAMETERS; } - ret = GetHigestSecLevelByUdid(queryParams, levelInfo); + ret = GetHighestSecLevelByUdid(queryParams, levelInfo); DATA_SEC_LOG_INFO("DATASL_GetHighestSecLevel done!"); return ret; diff --git a/interfaces/innerkits/datatransmitmgr/include/dev_slinfo_adpt.h b/interfaces/innerkits/datatransmitmgr/include/dev_slinfo_adpt.h index 437225c..9ecbef8 100644 --- a/interfaces/innerkits/datatransmitmgr/include/dev_slinfo_adpt.h +++ b/interfaces/innerkits/datatransmitmgr/include/dev_slinfo_adpt.h @@ -60,7 +60,7 @@ int32_t CompareUdid(DEVSLQueryParams *queryParamsL, DEVSLQueryParams *queryParam int32_t GetDeviceSecLevelByUdidAsync(const uint8_t *udid, uint32_t udidLen); -int32_t GetDataSecLevelByDevSecLevel(int32_t devLevel); +uint32_t GetDataSecLevelByDevSecLevel(int32_t devLevel); int32_t UpdateCallbackListParams(DEVSLQueryParams *queryParams, HigestSecInfoCallback *callback); -- Gitee From 4ad2a9038a6db17e3102d443d876439c02226076 Mon Sep 17 00:00:00 2001 From: wangyongzhong2 Date: Thu, 17 Mar 2022 10:10:48 +0800 Subject: [PATCH 6/6] update TDD_test Signed-off-by: wangyongzhong2 --- frameworks/datatransmitmgr/dev_slinfo_list.c | 33 +++++++++++++++----- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/frameworks/datatransmitmgr/dev_slinfo_list.c b/frameworks/datatransmitmgr/dev_slinfo_list.c index 1955a2c..42c644c 100644 --- a/frameworks/datatransmitmgr/dev_slinfo_list.c +++ b/frameworks/datatransmitmgr/dev_slinfo_list.c @@ -31,6 +31,7 @@ struct DATASLListParams* InitList(void) } list->next = list; list->prev = list; + list->callbackParams = NULL; pthread_mutex_unlock(&gMutex); return list; } @@ -67,8 +68,12 @@ void RemoveListNode(struct DATASLListParams *list, struct DATASLCallbackParams if (CompareUdid(&(pList->callbackParams->queryParams), &(callbackParams->queryParams)) == DEVSL_SUCCESS) { pList->prev->next = pList->next; pList->next->prev = pList->prev; - free(pList->callbackParams); - free(pList); + if (pList->callbackParams != NULL) { + free(pList->callbackParams); + } + if (pList != NULL) { + free(pList); + } break; } pList = pList->next; @@ -79,14 +84,24 @@ void RemoveListNode(struct DATASLListParams *list, struct DATASLCallbackParams void ClearList(struct DATASLListParams *list) { pthread_mutex_lock(&gMutex); + if (list == NULL) { + pthread_mutex_unlock(&gMutex); + return; + } struct DATASLListParams *pList = list->next; while (pList != NULL && pList != list) { struct DATASLListParams *delList = pList; pList = pList->next; - free(delList->callbackParams); - free(delList); + if (delList->callbackParams != NULL) { + free(delList->callbackParams); + } + if (delList != NULL) { + free(delList); + } + } + if (list->callbackParams != NULL) { + free(list->callbackParams); } - free(list->callbackParams); free(list); pthread_mutex_unlock(&gMutex); } @@ -135,8 +150,12 @@ void LookupCallback(struct DATASLListParams *list, DEVSLQueryParams *queryParams tmpCallbackParams.callback = tmpCallback->callbackParams->callback; tmpCallback->prev->next = tmpCallback->next; tmpCallback->next->prev = tmpCallback->prev; - free(tmpCallback->callbackParams); - free(tmpCallback); + if (tmpCallback->callbackParams != NULL) { + free(tmpCallback->callbackParams); + } + if (tmpCallback != NULL) { + free(tmpCallback); + } break; } tmpCallback = nextCallback; -- Gitee