1[English](./README.md) | 简体中文 2 3# openHiTLS 4欢迎访问openHiTLS代码仓,该代码仓的项目官网是openHiTLS社区<https://openhitls.net>,openHiTLS的目标是提供高效、敏捷的全场景开源密码学开发套件。openHiTLS已支持通用的标准密码算法、(D)TLS、(D)TLCP等安全通信协议,更多特性待规划。 5 6## 概述 7 8openHiTLS架构高度模块化,可通过模块和特性配置。RAM/ROM尺寸取决于所选的特性。openHiTLS为密码算法提供最佳性能优化。当前已支持5个组件和算法特性可按需配置,支持ARM、x86架构CPU上的算法性能优化,更多架构和特性待规划。 9 10## 特性简介 11 12### 功能特性 13 14- 协议:支持TLS1.3, TLS1.3-Hybrid-Key-Exchange, TLS-Provider, TLS-Multi-KeyShare, TLS-Custom-Extension, TLCP, DTLCP, TLS1.2, DTLS1.2, Auth; 15- 算法:支持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等; 16- 证书:支持证书、CRL解析,证书、CRL验证,证书请求、生成等; 17 18### DFX特性 19 20- 特性高度模块化,支持按需裁剪特性 21- 基于ARMv8、x8664 CPU算法性能优化 22- 支持基于日志和错误堆栈功能维测 23 24## 组件简介 25 26目前,openHiTLS有5个组件,其中BSL组件需和其他组件一起使用。 27- BSL是Base Support Layer的缩写,提供基础C类标准的增强功能和OS适配器,需与其他模块一起使用 28- 密码算法组件(Crypto)提供了完整的密码功能,且性能较优。该组件既可以被TLS使用,也可与BSL一起使用 29- TLS是Transport Layer Security的缩写,涵盖了TLS1.3及之前的TLS版本,会与Crypto、BSL以及其他三方密码组件或PKI库一起使用 30- PKI组件提供证书、CRL解析,证书、CRL验证以及证书请求、生成等功能 31- Auth认证组件提供了认证功能,当前提供了基于RFC9578的publicly token认证功能 32 33## 开发 34 35### 依赖准备 36 37openHiTLS依赖于Secure C,因此需将Secure C下载到${openHiTLS_dir}/platform/Secure_C,Secure C的一个官方Git库是 <https://gitee.com/openeuler/libboundscheck>。 38 39* 下载安全函数库 40```bash 41# 方式1 与openHiTLS代码仓一起拉取 42git clone --recurse-submodules https://gitcode.com/openhitls/openhitls.git 43 44# 方式2 单独拉取安全函数库 45git clone https://gitcode.com/openhitls/openhitls.git 46cd ${openHiTLS_dir} 47git clone https://gitee.com/openeuler/libboundscheck platform/Secure_C 48``` 49 50* 构建安全函数库 51```bash 52cd ${openHiTLS_dir}/platform/Secure_C 53make -j 54``` 55 56### 致应用开发人员 57 58正式版本的源码镜像尚未正式开放、还在规划当中。 59 60 61官方代码仓库托管在<https://gitcode.com/openhitls>,您可以通过如下命令将Git库克隆为一个本地副本进行使用: 62``` 63git clone https://gitcode.com/openhitls/openhitls.git 64``` 65如果您有意贡献代码,请在gitcode上复制openhitls库,再克隆您的公共副本: 66``` 67git clone https://gitcode.com/"your gitcode name"/openhitls.git 68``` 69 70## 文档 71 72本文档旨在帮助开发者和贡献者更快地上手openHiTLS,详情参考[文档列表](docs/index/index.md) 。 73 74## 构建与安装 75 76在Linux系统中进行构建与安装时,可参考[构建安装指导](docs/zh/4_使用指南/1_构建及安装指导.md) 77Linux系统中的主要步骤有: 78 791. 准备构建目录: 80``` 81cd openHiTLS && mkdir -p ./build && cd ./build 82``` 832. 生成构建配置: 84``` 85python3 ../configure.py ["option"] 86``` 87* C全量构建 88``` 89python3 ../configure.py --enable hitls_bsl hitls_crypto hitls_tls hitls_pki hitls_auth --lib_type static --bits=64 --system=linux 90``` 91 92* x8664优化全量构建: 93``` 94python3 ../configure.py --enable hitls_bsl hitls_crypto hitls_tls hitls_pki hitls_auth --lib_type static --bits=64 --system=linux --asm_type x8664 95``` 96选项介绍可参考[构建安装指导](docs/zh/4_使用指南/1_构建及安装指导.md) 97 983. 生成构建脚本: 99``` 100cmake .. 101``` 1024. 执行构建和安装: 103``` 104make && make install 105``` 106 107## 贡献 108 109如果您有意为openHiTLS社区做贡献,请先在[CLA签署](https://cla.openhitls.net)平台上完成CLA签署。 110