0b6bf8ac创建于 6月29日历史提交
文件最后提交记录最后更新时间
2 年前
2 年前
2 年前
2 年前
2 年前
2 年前
1 年前
2 个月前
2 年前
2 年前
2 年前
2 年前
2 年前
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