From 906a9e4b5a0c4d1fc13a874377d56038a85cd2dc Mon Sep 17 00:00:00 2001 From: wangweiyuan Date: Wed, 19 Feb 2025 17:44:27 +0800 Subject: [PATCH] GenerateKey Signed-off-by: wangweiyuan --- OAT.xml | 4 + .../GenerateKey/.gitignore | 12 ++ .../GenerateKey/AppScope/app.json5 | 25 ++++ .../resources/base/element/string.json | 8 ++ .../resources/base/media/app_icon.png | Bin 0 -> 2777 bytes .../GenerateKey/README.md | 87 ++++++++++++++ .../GenerateKey/build-profile.json5 | 58 ++++++++++ .../GenerateKey/code-linter.json5 | 35 ++++++ .../GenerateKey/entry/.gitignore | 6 + .../GenerateKey/entry/build-profile.json5 | 59 ++++++++++ .../GenerateKey/entry/hvigorfile.ts | 21 ++++ .../GenerateKey/entry/oh-package.json5 | 26 +++++ .../entry/src/main/cpp/CMakeLists.txt | 15 +++ .../entry/src/main/cpp/napi_init.cpp | 90 +++++++++++++++ .../src/main/cpp/types/libentry/Index.d.ts | 16 +++ .../main/cpp/types/libentry/oh-package.json5 | 21 ++++ .../main/ets/entryability/EntryAbility.ets | 57 ++++++++++ .../entrybackupability/EntryBackupAbility.ets | 27 +++++ .../entry/src/main/ets/pages/Index.ets | 107 ++++++++++++++++++ .../GenerateKey/entry/src/main/module.json5 | 66 +++++++++++ .../main/resources/base/element/color.json | 8 ++ .../main/resources/base/element/string.json | 16 +++ .../main/resources/base/media/background.png | Bin 0 -> 57364 bytes .../main/resources/base/media/foreground.png | Bin 0 -> 12430 bytes .../resources/base/media/layered_image.json | 7 ++ .../main/resources/base/media/startIcon.png | Bin 0 -> 20093 bytes .../resources/base/profile/backup_config.json | 3 + .../resources/base/profile/main_pages.json | 5 + .../main/resources/dark/element/color.json | 8 ++ .../src/ohosTest/ets/test/Ability.test.ets | 50 ++++++++ .../ohosTest/ets/test/GenerateKey.test.ets | 72 ++++++++++++ .../entry/src/ohosTest/ets/test/List.test.ets | 21 ++++ .../entry/src/ohosTest/module.json5 | 27 +++++ .../GenerateKey/entry/src/test/List.test.ets | 20 ++++ .../entry/src/test/LocalUnit.test.ets | 48 ++++++++ .../GenerateKey/hvigor/hvigor-config.json5 | 37 ++++++ .../GenerateKey/hvigorfile.ts | 21 ++++ .../GenerateKey/oh-package.json5 | 25 ++++ .../GenerateKey/ohosTest.md | 9 ++ .../GenerateKey/screenshots/ArkTS_1.png | Bin 0 -> 16516 bytes .../GenerateKey/screenshots/ArkTS_2.png | Bin 0 -> 38789 bytes .../GenerateKey/screenshots/Cpp_1.png | Bin 0 -> 16516 bytes .../GenerateKey/screenshots/Cpp_2.png | Bin 0 -> 33543 bytes 43 files changed, 1117 insertions(+) create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/.gitignore create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/AppScope/app.json5 create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/AppScope/resources/base/element/string.json create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/AppScope/resources/base/media/app_icon.png create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/README.md create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/build-profile.json5 create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/code-linter.json5 create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/.gitignore create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/build-profile.json5 create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/hvigorfile.ts create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/oh-package.json5 create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/cpp/CMakeLists.txt create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/cpp/napi_init.cpp create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/cpp/types/libentry/Index.d.ts create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/cpp/types/libentry/oh-package.json5 create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/ets/entryability/EntryAbility.ets create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/ets/pages/Index.ets create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/module.json5 create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/resources/base/element/color.json create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/resources/base/element/string.json create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/resources/base/media/background.png create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/resources/base/media/foreground.png create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/resources/base/media/layered_image.json create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/resources/base/media/startIcon.png create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/resources/base/profile/backup_config.json create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/resources/base/profile/main_pages.json create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/resources/dark/element/color.json create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/ohosTest/ets/test/Ability.test.ets create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/ohosTest/ets/test/GenerateKey.test.ets create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/ohosTest/ets/test/List.test.ets create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/ohosTest/module.json5 create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/test/List.test.ets create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/test/LocalUnit.test.ets create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/hvigor/hvigor-config.json5 create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/hvigorfile.ts create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/oh-package.json5 create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/ohosTest.md create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/screenshots/ArkTS_1.png create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/screenshots/ArkTS_2.png create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/screenshots/Cpp_1.png create mode 100755 code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/screenshots/Cpp_2.png diff --git a/OAT.xml b/OAT.xml index a859db12f8..2117a5d0e5 100644 --- a/OAT.xml +++ b/OAT.xml @@ -122,6 +122,10 @@ Note:If the text contains special characters, please escape them according to th + + + + diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/.gitignore b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/.gitignore new file mode 100755 index 0000000000..d2ff20141c --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/.gitignore @@ -0,0 +1,12 @@ +/node_modules +/oh_modules +/local.properties +/.idea +**/build +/.hvigor +.cxx +/.clangd +/.clang-format +/.clang-tidy +**/.test +/.appanalyzer \ No newline at end of file diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/AppScope/app.json5 b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/AppScope/app.json5 new file mode 100755 index 0000000000..9b61f8dafa --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/AppScope/app.json5 @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2025 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * 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. + */ + +{ + "app": { + "bundleName": "com.samples.generatekey", + "vendor": "example", + "versionCode": 1000000, + "versionName": "1.0.0", + "icon": "$media:app_icon", + "label": "$string:app_name" + } +} diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/AppScope/resources/base/element/string.json b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/AppScope/resources/base/element/string.json new file mode 100755 index 0000000000..db98e9ec5c --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/AppScope/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "app_name", + "value": "GenerateKey" + } + ] +} diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/AppScope/resources/base/media/app_icon.png b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/AppScope/resources/base/media/app_icon.png new file mode 100755 index 0000000000000000000000000000000000000000..a39445dc87828b76fed6d2ec470dd455c45319e3 GIT binary patch literal 2777 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 literal 0 HcmV?d00001 diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/README.md b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/README.md new file mode 100755 index 0000000000..3b21ebeb46 --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/README.md @@ -0,0 +1,87 @@ +## 生成密钥(ArkTS) + +### 介绍 + +1. 本工程实现了对以下 https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/security/UniversalKeystoreKit/huks-key-generation-arkts.md 示例代码片段的工程化,主要目标是实现指南中示例代码需要与sample工程文件同源。 + +#### Call ArkTS + +##### 介绍 + +1. 本示例主要介绍生成密钥,以生成DH密钥为例生成随机密钥,指定待生成的密钥别名keyAlias。 + +##### 效果预览 + +| 主页 | | +| ---------------------------------------------------- | ---------------------------------------------------- | +| | | + +使用说明 + +1. 点击Call ArkTS按钮调用huks.generateKeyItem,传入密钥别名和密钥属性集,生成密钥。 + +## 生成密钥(C/C++) + +### 介绍 + +1. 本工程实现了对以下 https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/security/UniversalKeystoreKit/huks-key-generation-ndk.md 示例代码片段的工程化,主要目标是实现指南中示例代码需要与sample工程文件同源。 + +#### Call C/C++ + +##### 介绍 + +1. 本示例主要介绍生成密钥,以生成ECC密钥为例,生成随机密钥。 + +##### 效果预览 + +| 主页 | | +| -------------------------------------------------- | -------------------------------------------------- | +| | | + +使用说明 + +1. 点击Call C/C++按钮调用OH_Huks_GenerateKeyItem,传入密钥别名和密钥属性集,生成密钥。 + +## 工程目录 + +``` +entry/src/main/ +|---ets +|---|---entryability +|---|---|---EntryAbility.ets +|---|---pages +|---|---|---Index.ets // 首页 +|---cpp +|---resources // 静态资源 +|---ohosTest +|---|---ets +|---|---|---tests +|---|---|---|---GenerateKey.test.ets // 自动化测试用例 +``` + + +## 相关权限 + +无。 + +## 依赖 + +不涉及。 + +## 约束与限制 + +1. 本示例仅支持标准系统上运行,支持设备:RK3568。 +2. 本示例支持API14版本SDK,SDK版本号(API Version 14 Release)。 +3. 本示例需要使用DevEco Studio 版本号(5.0.1Release)才可编译运行。 + +## 下载 + +如需单独下载本工程,执行如下命令: + +``` +git init +git config core.sparsecheckout true +echo code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey > .git/info/sparse-checkout +git remote add origin https://gitee.com/openharmony/applications_app_samples.git +git pull origin master +``` \ No newline at end of file diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/build-profile.json5 b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/build-profile.json5 new file mode 100755 index 0000000000..df8b8004f9 --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/build-profile.json5 @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2025 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * 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. + */ + +{ + "app": { + "signingConfigs": [], + "products": [ + { + "name": "default", + "signingConfig": "default", + "compileSdkVersion": 14, + "compatibleSdkVersion": 14, + "targetSdkVersion": 14, + "runtimeOS": "OpenHarmony", + "buildOption": { + "strictMode": { + "caseSensitiveCheck": true, + "useNormalizedOHMUrl": true + } + } + } + ], + "buildModeSet": [ + { + "name": "debug", + }, + { + "name": "release" + } + ] + }, + "modules": [ + { + "name": "entry", + "srcPath": "./entry", + "targets": [ + { + "name": "default", + "applyToProducts": [ + "default" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/code-linter.json5 b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/code-linter.json5 new file mode 100755 index 0000000000..28586467ee --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/code-linter.json5 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2025 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * 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. + */ + +{ + "files": [ + "**/*.ets" + ], + "ignore": [ + "**/src/ohosTest/**/*", + "**/src/test/**/*", + "**/src/mock/**/*", + "**/node_modules/**/*", + "**/oh_modules/**/*", + "**/build/**/*", + "**/.preview/**/*" + ], + "ruleSet": [ + "plugin:@performance/recommended", + "plugin:@typescript-eslint/recommended" + ], + "rules": { + } +} \ No newline at end of file diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/.gitignore b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/.gitignore new file mode 100755 index 0000000000..e2713a2779 --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/.gitignore @@ -0,0 +1,6 @@ +/node_modules +/oh_modules +/.preview +/build +/.cxx +/.test \ No newline at end of file diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/build-profile.json5 b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/build-profile.json5 new file mode 100755 index 0000000000..5612a9a1db --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/build-profile.json5 @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2025 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * 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. + */ + +{ + "apiType": "stageMode", + "buildOption": { + "externalNativeOptions": { + "path": "./src/main/cpp/CMakeLists.txt", + "arguments": "", + "cppFlags": "", + "abiFilters": [ + "arm64-v8a", + "x86_64", + "armeabi-v7a" + ] + } + }, + "buildOptionSet": [ + { + "name": "release", + "arkOptions": { + "obfuscation": { + "ruleOptions": { + "enable": false, + "files": [ + "./obfuscation-rules.txt" + ] + } + } + }, + "nativeLib": { + "debugSymbol": { + "strip": true, + "exclude": [] + } + } + }, + ], + "targets": [ + { + "name": "default" + }, + { + "name": "ohosTest", + } + ] +} \ No newline at end of file diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/hvigorfile.ts b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/hvigorfile.ts new file mode 100755 index 0000000000..e4f43d5466 --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/hvigorfile.ts @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2025 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * 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. + */ + +import { hapTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: hapTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/oh-package.json5 b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/oh-package.json5 new file mode 100755 index 0000000000..5d993e5251 --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/oh-package.json5 @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2025 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * 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. + */ + +{ + "name": "entry", + "version": "1.0.0", + "description": "Please describe the basic information.", + "main": "", + "author": "", + "license": "", + "dependencies": { + "libentry.so": "file:./src/main/cpp/types/libentry" + } +} \ No newline at end of file diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/cpp/CMakeLists.txt b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/cpp/CMakeLists.txt new file mode 100755 index 0000000000..a6ed6d775f --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/cpp/CMakeLists.txt @@ -0,0 +1,15 @@ +# the minimum version of CMake. +cmake_minimum_required(VERSION 3.5.0) +project(GenerateKey) + +set(NATIVERENDER_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR}) + +if(DEFINED PACKAGE_FIND_FILE) + include(${PACKAGE_FIND_FILE}) +endif() + +include_directories(${NATIVERENDER_ROOT_PATH} + ${NATIVERENDER_ROOT_PATH}/include) + +add_library(entry SHARED napi_init.cpp) +target_link_libraries(entry PUBLIC libace_napi.z.so libhuks_ndk.z.so) \ No newline at end of file diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/cpp/napi_init.cpp b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/cpp/napi_init.cpp new file mode 100755 index 0000000000..fd8f89141b --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/cpp/napi_init.cpp @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2025 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * 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. + */ + +/* 以下以生成ECC密钥为例 */ +#include "huks/native_huks_api.h" +#include "huks/native_huks_param.h" +#include "napi/native_api.h" +#include + +OH_Huks_Result InitParamSet(struct OH_Huks_ParamSet **paramSet, const struct OH_Huks_Param *params, + uint32_t paramCount) +{ + OH_Huks_Result ret = OH_Huks_InitParamSet(paramSet); + if (ret.errorCode != OH_HUKS_SUCCESS) { + return ret; + } + ret = OH_Huks_AddParams(*paramSet, params, paramCount); + if (ret.errorCode != OH_HUKS_SUCCESS) { + OH_Huks_FreeParamSet(paramSet); + return ret; + } + ret = OH_Huks_BuildParamSet(paramSet); + if (ret.errorCode != OH_HUKS_SUCCESS) { + OH_Huks_FreeParamSet(paramSet); + return ret; + } + return ret; +} + +struct OH_Huks_Param g_testGenerateKeyParam[] = {{.tag = OH_HUKS_TAG_ALGORITHM, .uint32Param = OH_HUKS_ALG_ECC}, + {.tag = OH_HUKS_TAG_PURPOSE, .uint32Param = OH_HUKS_KEY_PURPOSE_AGREE}, + {.tag = OH_HUKS_TAG_KEY_SIZE, .uint32Param = OH_HUKS_ECC_KEY_SIZE_256}, + {.tag = OH_HUKS_TAG_DIGEST, .uint32Param = OH_HUKS_DIGEST_NONE}}; + +static napi_value GenerateKey(napi_env env, napi_callback_info info) +{ + /* 1.确定密钥别名 */ + const char *alias = "test_generate"; + struct OH_Huks_Blob aliasBlob = {.size = (uint32_t)strlen(alias), .data = (uint8_t *)alias}; + struct OH_Huks_ParamSet *testGenerateKeyParamSet = nullptr; + struct OH_Huks_Result ohResult; + do { + /* 2.初始化密钥属性集 */ + ohResult = InitParamSet(&testGenerateKeyParamSet, g_testGenerateKeyParam, + sizeof(g_testGenerateKeyParam) / sizeof(OH_Huks_Param)); + if (ohResult.errorCode != OH_HUKS_SUCCESS) { + break; + } + /* 3.生成密钥 */ + ohResult = OH_Huks_GenerateKeyItem(&aliasBlob, testGenerateKeyParamSet, nullptr); + } while (0); + OH_Huks_FreeParamSet(&testGenerateKeyParamSet); + napi_value ret; + napi_create_int32(env, ohResult.errorCode, &ret); + return ret; +} + +EXTERN_C_START +static napi_value Init(napi_env env, napi_value exports) +{ + napi_property_descriptor desc[] = { + {"generateKey", nullptr, GenerateKey, nullptr, nullptr, nullptr, napi_default, nullptr}}; + napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc); + return exports; +} +EXTERN_C_END + +static napi_module demoModule = { + .nm_version = 1, + .nm_flags = 0, + .nm_filename = nullptr, + .nm_register_func = Init, + .nm_modname = "entry", + .nm_priv = ((void *)0), + .reserved = {0}, +}; + +extern "C" __attribute__((constructor)) void RegisterEntryModule(void) { napi_module_register(&demoModule); } diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/cpp/types/libentry/Index.d.ts b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/cpp/types/libentry/Index.d.ts new file mode 100755 index 0000000000..9f09a140e5 --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/cpp/types/libentry/Index.d.ts @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2025 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * 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. + */ + +export const generateKey: () => number; \ No newline at end of file diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/cpp/types/libentry/oh-package.json5 b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/cpp/types/libentry/oh-package.json5 new file mode 100755 index 0000000000..846e4c7e13 --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/cpp/types/libentry/oh-package.json5 @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2025 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * 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. + */ + +{ + "name": "libentry.so", + "types": "./Index.d.ts", + "version": "1.0.0", + "description": "Please describe the basic information." +} \ No newline at end of file diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/ets/entryability/EntryAbility.ets b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/ets/entryability/EntryAbility.ets new file mode 100755 index 0000000000..a36ca588fe --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/ets/entryability/EntryAbility.ets @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2025 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * 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. + */ + +import { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { window } from '@kit.ArkUI'; + +export default class EntryAbility extends UIAbility { + onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { + this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); + } + + onDestroy(): void { + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy'); + } + + onWindowStageCreate(windowStage: window.WindowStage): void { + // Main window is created, set main page for this ability + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); + + windowStage.loadContent('pages/Index', (err) => { + if (err.code) { + hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); + return; + } + hilog.info(0x0000, 'testTag', 'Succeeded in loading the content.'); + }); + } + + onWindowStageDestroy(): void { + // Main window is destroyed, release UI related resources + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy'); + } + + onForeground(): void { + // Ability has brought to foreground + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground'); + } + + onBackground(): void { + // Ability has back to background + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground'); + } +}; \ No newline at end of file diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets new file mode 100755 index 0000000000..1504a74f09 --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2025 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * 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. + */ + +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { BackupExtensionAbility, BundleVersion } from '@kit.CoreFileKit'; + +export default class EntryBackupAbility extends BackupExtensionAbility { + async onBackup() { + hilog.info(0x0000, 'testTag', 'onBackup ok'); + } + + async onRestore(bundleVersion: BundleVersion) { + hilog.info(0x0000, 'testTag', 'onRestore ok %{public}s', JSON.stringify(bundleVersion)); + } +} \ No newline at end of file diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/ets/pages/Index.ets b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/ets/pages/Index.ets new file mode 100755 index 0000000000..35e3b1e882 --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/ets/pages/Index.ets @@ -0,0 +1,107 @@ +/* + * Copyright (c) 2025 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * 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. + */ + +import { huks } from '@kit.UniversalKeystoreKit'; +import testNapi from 'libentry.so'; + +/* 1.确定密钥别名 */ +let keyAlias = 'dh_key'; +/* 2.初始化密钥属性集 */ +let properties1: Array = [ + { + tag: huks.HuksTag.HUKS_TAG_ALGORITHM, + value: huks.HuksKeyAlg.HUKS_ALG_DH + }, + { + tag: huks.HuksTag.HUKS_TAG_PURPOSE, + value: huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_AGREE + }, + { + tag: huks.HuksTag.HUKS_TAG_KEY_SIZE, + value: huks.HuksKeySize.HUKS_DH_KEY_SIZE_2048 + } +]; + +let huksOptions: huks.HuksOptions = { + properties: properties1, + inData: new Uint8Array(new Array()) +} + +/* 3.生成密钥 */ +function generateKeyItem(keyAlias: string, huksOptions: huks.HuksOptions) { + return new Promise((resolve, reject) => { + try { + huks.generateKeyItem(keyAlias, huksOptions, (error, data) => { + if (error) { + reject(error); + } else { + resolve(data); + } + }); + } catch (error) { + throw (error as Error); + } + }); +} + +async function publicGenKeyFunc(keyAlias: string, huksOptions: huks.HuksOptions): Promise { + console.info(`enter promise generateKeyItem`); + try { + await generateKeyItem(keyAlias, huksOptions) + .then((data) => { + console.info(`promise: generateKeyItem success, data = ${JSON.stringify(data)}`); + }) + .catch((error: Error) => { + console.error(`promise: generateKeyItem failed, ${JSON.stringify(error)}`); + }); + return 'Success'; + } catch (error) { + console.error(`promise: generateKeyItem input arg invalid, ` + JSON.stringify(error)); + return 'Failed'; + } +} + +async function testGenKey(): Promise { + let ret = await publicGenKeyFunc(keyAlias, huksOptions); + return ret; +} + +@Entry +@Component +struct Index { + @State message: string = 'GenerateKey'; + + build() { + Column({ space: 5 }) { + Text(this.message) + .fontSize(25) + .fontWeight(FontWeight.Bold) + Button('Call C/C++') + .width('70%') + .onClick(() => { + let ret: number = testNapi.generateKey(); + this.message = 'C/C++ Call Result: ' + ret.toString(); + }) + Button('Call ArkTS') + .width('70%') + .onClick(async () => { + let ret = await testGenKey(); + this.message = 'ArkTS Call Result: ' + ret; + }) + } + .width('100%') + .height('100%') + } +} diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/module.json5 b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/module.json5 new file mode 100755 index 0000000000..776ce01475 --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/module.json5 @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2025 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * 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. + */ + +{ + "module": { + "name": "entry", + "type": "entry", + "description": "$string:module_desc", + "mainElement": "EntryAbility", + "deviceTypes": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false, + "pages": "$profile:main_pages", + "abilities": [ + { + "name": "EntryAbility", + "srcEntry": "./ets/entryability/EntryAbility.ets", + "description": "$string:EntryAbility_desc", + "icon": "$media:layered_image", + "label": "$string:EntryAbility_label", + "startWindowIcon": "$media:startIcon", + "startWindowBackground": "$color:start_window_background", + "exported": true, + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ] + } + ], + "extensionAbilities": [ + { + "name": "EntryBackupAbility", + "srcEntry": "./ets/entrybackupability/EntryBackupAbility.ets", + "type": "backup", + "exported": false, + "metadata": [ + { + "name": "ohos.extension.backup", + "resource": "$profile:backup_config" + } + ] + } + ] + } +} \ No newline at end of file diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/resources/base/element/color.json b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/resources/base/element/color.json new file mode 100755 index 0000000000..d66f9a7d4a --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/resources/base/element/color.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#FFFFFF" + } + ] +} \ No newline at end of file diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/resources/base/element/string.json b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/resources/base/element/string.json new file mode 100755 index 0000000000..b5c4c4673d --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/resources/base/element/string.json @@ -0,0 +1,16 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "GenerateKey" + } + ] +} \ No newline at end of file diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/resources/base/media/background.png b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/resources/base/media/background.png new file mode 100755 index 0000000000000000000000000000000000000000..f939c9fa8cc8914832e602198745f592a0dfa34d GIT binary patch literal 57364 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 A4*&oF literal 0 HcmV?d00001 diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/resources/base/media/foreground.png b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/resources/base/media/foreground.png new file mode 100755 index 0000000000000000000000000000000000000000..4483ddad1f079e1089d685bd204ee1cfe1d01902 GIT binary patch literal 12430 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 cSLciz6AsI{U0tD9;7S&f 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

c)ijgxDm}8EsRXFt3h@+Ufr7@DN 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 literal 0 HcmV?d00001 diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/resources/base/profile/backup_config.json b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/resources/base/profile/backup_config.json new file mode 100755 index 0000000000..d742c2f96e --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/resources/base/profile/backup_config.json @@ -0,0 +1,3 @@ +{ + "allowToBackupRestore": true +} \ No newline at end of file diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/resources/base/profile/main_pages.json b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/resources/base/profile/main_pages.json new file mode 100755 index 0000000000..1898d94f58 --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/resources/base/profile/main_pages.json @@ -0,0 +1,5 @@ +{ + "src": [ + "pages/Index" + ] +} diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/resources/dark/element/color.json b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/resources/dark/element/color.json new file mode 100755 index 0000000000..438d5bc43b --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/main/resources/dark/element/color.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#000000" + } + ] +} \ No newline at end of file diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/ohosTest/ets/test/Ability.test.ets b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/ohosTest/ets/test/Ability.test.ets new file mode 100755 index 0000000000..0f8ce9a2c0 --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/ohosTest/ets/test/Ability.test.ets @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2025 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * 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. + */ + +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'; + +export default function abilityTest() { + describe('ActsAbilityTest', () => { + // Defines a test suite. Two parameters are supported: test suite name and test suite function. + beforeAll(() => { + // Presets an action, which is performed only once before all test cases of the test suite start. + // This API supports only one parameter: preset action function. + }) + beforeEach(() => { + // Presets an action, which is performed before each unit test case starts. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: preset action function. + }) + afterEach(() => { + // Presets a clear action, which is performed after each unit test case ends. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: clear action function. + }) + afterAll(() => { + // Presets a clear action, which is performed after all test cases of the test suite end. + // This API supports only one parameter: clear action function. + }) + it('assertContain', 0, () => { + // Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function. + hilog.info(0x0000, 'testTag', '%{public}s', 'it begin'); + let a = 'abc'; + let b = 'b'; + // Defines a variety of assertion methods, which are used to declare expected boolean conditions. + expect(a).assertContain(b); + expect(a).assertEqual(a); + }) + }) +} \ No newline at end of file diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/ohosTest/ets/test/GenerateKey.test.ets b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/ohosTest/ets/test/GenerateKey.test.ets new file mode 100755 index 0000000000..19c39f7844 --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/ohosTest/ets/test/GenerateKey.test.ets @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2025 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * 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. + */ + +import { describe, it, expect, beforeAll } from '@ohos/hypium'; +// 导入测试依赖kit +import { abilityDelegatorRegistry, Driver, ON } from '@kit.TestKit'; +import { UIAbility, Want } from '@kit.AbilityKit'; + +const delegator: abilityDelegatorRegistry.AbilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); +const bundleName = abilityDelegatorRegistry.getArguments().bundleName; +let want: Want; + +export default function generateKeyTest() { + describe('generateKeyTest', () => { + /** + * 打开应用 + */ + beforeAll(async () => { + want = { + bundleName: bundleName, + abilityName: 'EntryAbility' + }; + await delegator.startAbility(want); + const driver = Driver.create(); + await driver.delayMs(1000); + const ability: UIAbility = await delegator.getCurrentTopAbility(); + console.info('get top ability'); + await driver.delayMs(1000); + expect(ability.context.abilityInfo.name).assertEqual('EntryAbility'); + }) + + /** + * 点击按钮,生成密钥(C/C++) + */ + it('testGenerateKey001', 0, async () => { + console.info('uitest: testGenerateKey001 begin'); + const driver = Driver.create(); + const button1 = await driver.findComponent(ON.text('Call C/C++')); + await driver.delayMs(1000); + await button1.click(); + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('C/C++ Call Result: 0')); + console.info('uitest: testGenerateKey001 end'); + }) + + /** + * 点击按钮,生成密钥(ArkTS) + */ + it('testGenerateKey002', 0, async () => { + console.info('uitest: testGenerateKey002 begin'); + const driver = Driver.create(); + const button1 = await driver.findComponent(ON.text('Call ArkTS')); + await driver.delayMs(1000); + await button1.click(); + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('ArkTS Call Result: Success')); + console.info('uitest: testGenerateKey002 end'); + }) + }) +} \ No newline at end of file diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/ohosTest/ets/test/List.test.ets b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/ohosTest/ets/test/List.test.ets new file mode 100755 index 0000000000..05d18c925a --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/ohosTest/ets/test/List.test.ets @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2025 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * 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. + */ + +import abilityTest from './Ability.test'; +import generateKeyTest from './GenerateKey.test'; + +export default function testsuite() { + generateKeyTest(); +} \ No newline at end of file diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/ohosTest/module.json5 b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/ohosTest/module.json5 new file mode 100755 index 0000000000..9983b2ba4e --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/ohosTest/module.json5 @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2025 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * 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. + */ + +{ + "module": { + "name": "entry_test", + "type": "feature", + "deviceTypes": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false + } +} diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/test/List.test.ets b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/test/List.test.ets new file mode 100755 index 0000000000..f1186b1f53 --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/test/List.test.ets @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2025 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * 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. + */ + +import localUnitTest from './LocalUnit.test'; + +export default function testsuite() { + localUnitTest(); +} \ No newline at end of file diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/test/LocalUnit.test.ets b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/test/LocalUnit.test.ets new file mode 100755 index 0000000000..7fc57c77db --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/entry/src/test/LocalUnit.test.ets @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2025 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * 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. + */ + +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'; + +export default function localUnitTest() { + describe('localUnitTest', () => { + // Defines a test suite. Two parameters are supported: test suite name and test suite function. + beforeAll(() => { + // Presets an action, which is performed only once before all test cases of the test suite start. + // This API supports only one parameter: preset action function. + }); + beforeEach(() => { + // Presets an action, which is performed before each unit test case starts. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: preset action function. + }); + afterEach(() => { + // Presets a clear action, which is performed after each unit test case ends. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: clear action function. + }); + afterAll(() => { + // Presets a clear action, which is performed after all test cases of the test suite end. + // This API supports only one parameter: clear action function. + }); + it('assertContain', 0, () => { + // Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function. + let a = 'abc'; + let b = 'b'; + // Defines a variety of assertion methods, which are used to declare expected boolean conditions. + expect(a).assertContain(b); + expect(a).assertEqual(a); + }); + }); +} \ No newline at end of file diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/hvigor/hvigor-config.json5 b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/hvigor/hvigor-config.json5 new file mode 100755 index 0000000000..cef74543b1 --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/hvigor/hvigor-config.json5 @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2025 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * 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. + */ + +{ + "modelVersion": "5.0.1", + "dependencies": { + }, + "execution": { + // "analyze": "normal", /* Define the build analyze mode. Value: [ "normal" | "advanced" | false ]. Default: "normal" */ + // "daemon": true, /* Enable daemon compilation. Value: [ true | false ]. Default: true */ + // "incremental": true, /* Enable incremental compilation. Value: [ true | false ]. Default: true */ + // "parallel": true, /* Enable parallel compilation. Value: [ true | false ]. Default: true */ + // "typeCheck": false, /* Enable typeCheck. Value: [ true | false ]. Default: false */ + }, + "logging": { + // "level": "info" /* Define the log level. Value: [ "debug" | "info" | "warn" | "error" ]. Default: "info" */ + }, + "debugging": { + // "stacktrace": false /* Disable stacktrace compilation. Value: [ true | false ]. Default: false */ + }, + "nodeOptions": { + // "maxOldSpaceSize": 8192 /* Enable nodeOptions maxOldSpaceSize compilation. Unit M. Used for the daemon process. Default: 8192*/ + // "exposeGC": true /* Enable to trigger garbage collection explicitly. Default: true*/ + } +} diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/hvigorfile.ts b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/hvigorfile.ts new file mode 100755 index 0000000000..2a5e543f19 --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/hvigorfile.ts @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2025 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * 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. + */ + +import { appTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: appTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/oh-package.json5 b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/oh-package.json5 new file mode 100755 index 0000000000..eaef52736f --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/oh-package.json5 @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2025 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * 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. + */ + +{ + "modelVersion": "5.0.1", + "description": "Please describe the basic information.", + "dependencies": { + }, + "devDependencies": { + "@ohos/hypium": "1.0.19", + "@ohos/hamock": "1.0.0" + } +} diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/ohosTest.md b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/ohosTest.md new file mode 100755 index 0000000000..3f92d43bf3 --- /dev/null +++ b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/ohosTest.md @@ -0,0 +1,9 @@ +# 密钥删除测试用例归档 + +## 用例表 + +| 测试功能 | 预置条件 | 输入 | 预期输出 | 是否自动 | 测试结果 | +| ------------------------- | ------------ | ---- | ---------------- | -------- | -------- | +| 拉起应用 | 设备正常运行 | | 成功拉起应用 | 是 | Pass | +| 点击按钮,密钥删除(ArkTS) | 成功拉起应用 | | 成功新增输出日志 | 是 | Pass | +| 点击按钮,密钥删除(C/C++) | 成功拉起应用 | | 成功新增输出日志 | 是 | Pass | \ No newline at end of file diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/screenshots/ArkTS_1.png b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/screenshots/ArkTS_1.png new file mode 100755 index 0000000000000000000000000000000000000000..ebf2fff466956807e0dfdb33b9a8d6085002d478 GIT binary patch literal 16516 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 literal 0 HcmV?d00001 diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/screenshots/ArkTS_2.png b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/screenshots/ArkTS_2.png new file mode 100755 index 0000000000000000000000000000000000000000..4e59387a46803748114487b126874b5f02a1933d GIT binary patch literal 38789 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 literal 0 HcmV?d00001 diff --git a/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/screenshots/Cpp_2.png b/code/DocsSample/Security/UniversalKeystoreKit/KeyGenerationImport/KeyGeneration/DevelopmentGuidelines/GenerateKey/screenshots/Cpp_2.png new file mode 100755 index 0000000000000000000000000000000000000000..5d3e091010ae078e3af728e345fdff2f3fbedd77 GIT binary patch literal 33543 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 qPD-*;I{&%L|H6X*>#-5&4bkNlQ+z