145 Star 1.4K Fork 1.7K

OpenHarmony/applications_app_samples

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
.gitee
code
AI/MindSporeLiteCDemoASR
BasicFeature
DataMock
DocsSample
LanguageBaseClassLibrary
Performance
Project
Solutions
SuperFeature
SystemFeature
Ability/AbilityFeatureSystem
ApplicationModels
AutoFill
Connectivity
DataManagement/CrossAppDataShare
DeviceManagement
DeviceUsageStatistics/DeviceUsageStatistics
DistributedAppDev
FileManagement
FullScreenStart
IDL/AbilityConnectServiceExtension
IPC/ObjectTransfer
Internationalnation/International
Media
Notification
ResourceAllocation/ApplicationThemeSwitch
Security
AbilityAccessCtrl
AuthorizedButton
CertificateFramework
AppScope
entry
hvigor
screenshots/device
.gitignore
README.md
README_zh.md
build-profile.json5
hvigorfile.ts
hvigorw
hvigorw.bat
oh-package.json5
ohosTest.md
DLP
DLPManager
TaskManagement
Telephony
UIExtensionSamples
Widget
WindowManagement
UI
.gitattributes
.gitignore
CodeCommitChecklist.md
LICENSE
OAT.xml
README.md
README_zh.md
SampleReadTemplate.md
changelog.md
ohosTestTemplate.md
releasenote.md
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

证书算法库框架

介绍

本示例使用了@ohos.security.cert相关接口实现了对签名数据进行校验的功能。

实现场景(一)如下:

1)使用正确的原始数据和签名数据进行签名校验场景:模拟服务端通过客户端证书获取公钥,利用公钥对签名数据进行校验,验证客户端身份和原始数据完整性。

2)使用错误的原始数据或签名数据进行签名校验场景:模拟攻击者修改原始数据或签名数据,服务端在利用公钥进行签名校验时,攻击者身份不可信或原始数据不完整,验证失败。

效果预览

主页 校验通过 校验失败

使用说明

1、点击数据展示按钮,页面文本框中分别显示正确的证书、原始和签名数据内容。

2、点击签名校验按钮,页面弹出弹窗,提示校验通过

3、点击修改原始数据按钮,页面显示修改后的原始数据和正确的证书、签名数据;点击签名校验按钮,页面弹出弹窗,提示校验失败

4、点击修改签名数据按钮,页面显示修改后的签名数据和正确的证书、原始数据;点击签名校验按钮,页面弹出弹窗,提示校验失败

5、点击数据展示按钮,页面恢复正确证书、原始和签名数据的展示;点击签名校验按钮,页面弹出弹窗,提示校验通过

实现场景(二)如下:

1)使用证书链数据根证书数据进行证书链校验场景:验证证书链的根证书是否在可信任列表中。

2)使用证书链数据证书吊销列表:验证证书链中的证书是否被吊销。

效果预览

主页 校验通过 校验失败

使用说明

1、点击数据展示按钮,页面文本框中分别显示正确的证书链、根证书和CRL数据内容。

2、点击证书链校验按钮,页面弹出弹窗,提示校验通过

3、开启校验证书吊销列表,点击证书链校验按钮,页面弹出弹窗,提示校验失败

工程目录

entry/src/main/ets/
|---entryability
|   |---EntryAbility.ts       
|---model
|   |---Data.ts                                               // 证书数据
|   |---CertChainModel.ts                                     // 证书链校验模型文件
|   |---CertFrameworkModel.ts                                 // 证书算法库框架模型文件
|   |---Logger.ts                                             // 日志文件
|---pages
|   |---Index.ets                                             // 主界面

具体实现

场景(一)

  • 使用证书公钥实现签名校验的功能接口Verify封装在CertFrameworkModel中

场景(二)

  • 使用证书公钥实现签名校验的功能接口validate封装在CertChainModel中
    • 创建证书链: 调用cert.createX509CertChain接口生成证书链对象certChainObject。
    • 验证证书链: 从根证书中获取校验参数,然后使用certChainObject对象中的validate能力来对证书链进行验证。

相关权限

不涉及。

依赖

约束与限制

1、本示例仅支持标准系统上运行。

2、本示例已适配API version 11版本SDK,适用版本号:2023年12月23日及之后的CI每日构建版本(4.1.5.3),或更新的Beta版本、Release版本。

3、本示例需要使用DevEco Studio 4.0 Release(Build Version: 4.0.0.600)及以上版本才可编译运行,由于hvigor的限制,本Sample工程在同步hvigor的方式存在一定的限制,需要通过如下步骤规避:

(1)将build-profile.json5中的compileSdkVersion、compatibleSdkVersion支持的版本从11修改为10,同步hvigor;

(2)成功同步hvigor后,再将build-profile.json5中的compileSdkVersion、compatibleSdkVersion支持的版本从10修改为11,即可执行编译。

下载

如需单独下载本工程,执行如下命令:

git init
git config core.sparsecheckout true
echo code/SystemFeature/Security/CertificateFramework > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/openharmony/applications_app_samples.git
git@gitee.com:openharmony/applications_app_samples.git
openharmony
applications_app_samples
applications_app_samples
master

搜索帮助