1# openHiTLS 2本仓库包含开源软件openHiTLS,为OpenHarmony提供高效、敏捷的全场景开源密码学开发套件。 3 4## 概述 5 6openHiTLS架构高度模块化,可通过模块和特性配置。RAM/ROM尺寸取决于所选的特性。openHiTLS为密码算法提供性能优化。当前已支持5个组件和算法特性可按需配置,支持ARM、x86架构CPU上的算法性能优化,更多架构和特性待规划。 7 8## 特性简介 9 10功能特性主要包含如下: 11 12- 协议:支持TLS1.3, TLS1.3-Hybrid-Key-Exchange, TLS-Provider, TLS-Multi-KeyShare, TLS-Custom-Extension, TLCP, DTLCP, TLS1.2, DTLS1.2, Auth; 13- 算法:支持ML-DSA,ML-KEM,SLH-DSA,AES,SM4,Chacha20,RSA,RSA-Bind,DSA,ECDSA,ECDH,DH,SM2,DRBG,DRBG-GM,HKDF,SCRYPT,PBKDF2,SHA2,SHA3,MD5,SM3,HMAC等; 14- 证书:支持证书、CRL解析,证书、CRL验证,证书请求、生成等; 15 16 17## 组件简介 18 19目前,openHiTLS有5个组件,其中BSL组件需和其他组件一起使用。 20- BSL是Base Support Layer的缩写,提供基础C类标准的增强功能和OS适配器,需与其他模块一起使用 21- 密码算法组件(Crypto)提供了完整的密码功能,且性能较优。该组件既可以被TLS使用,也可与BSL一起使用 22- TLS是Transport Layer Security的缩写,涵盖了TLS1.3及之前的TLS版本,会与Crypto、BSL以及其他三方密码组件或PKI库一起使用 23- PKI组件提供证书、CRL解析,证书、CRL验证以及证书请求、生成等功能 24- Auth认证组件提供了认证功能,当前提供了基于RFC9578的publicly token认证功能 25 26## 构建指导 27 28适配OpenHarmony平台的编译脚本请见[gn构建脚本](BUILD.gn)。 29 30 31以rk3568平台为例,编译命令为: 32```bash 33./build.sh --product-name rk3568 --ccache --build-target openhitls 34``` 35编译完成后会在out/rk3568/thirdparty/openhitls目录下生成所有的动态库。 36 37## OpenHarmony如何使用openHiTLS 38 39OpenHarmony中系统部件需要在BUILD.gn中引用openhitls部件以使用openHiTLS。 40 41以Crypto模块为例,需要引用openhitls_crypto部件,具体模块信息可参考[bundle.json](bundle.json)。 42 43``` 44// BUILD.gn 45external_deps += [ "liburing:liburing" ] 46``` 47 48## 详细介绍文档 49 50本文档旨在帮助开发者和贡献者更快地上手openHiTLS,详情参考[文档列表](docs/index/index.md) 。 51 52 53## License 54 55Mulan PSL v2 56 57见[LICENSE](LICENSE). 58