openHiTLS/openHiTLS

GitHub: openHiTLS/openHiTLS

openHiTLS 是一个高度模块化的开源密码学 SDK,提供完整的国密算法支持、TLS 协议实现及后量子密码能力,适用于资源受限设备到服务器的全场景安全通信需求。

Stars: 88 | Forks: 39

[简体中文](./README-zh.md) | English # openHiTLS 欢迎访问 openHiTLS 代码库,该代码库隶属于 openHiTLS 社区:。openHiTLS 旨在为全场景的密码学和传输层安全提供高效、敏捷的开源 SDK。openHiTLS 正在开发中,目前支持一些通用的标准密码算法、(D)TLS、(D)TLCP 协议。更多功能正在规划中。 ## 概述 openHiTLS 的架构高度模块化,可以根据模块和功能进行配置。RAM/ROM 占用取决于所选功能。它为密码算法提供了最优的性能优化。目前,已配置了 5 个组件和密码算法,通过了 ISO19790 认证,并完成了国密算法在 ARM、x86 上的性能优化。更多架构和功能正在规划中。 ## 功能介绍 ### 功能特性 - 协议: - TLS:支持 TLS1.3、TLS1.3-Hybrid-Key-Exchange、TLS-Provider、TLS-Multi-KeyShare、TLS-Custom-Extension、TLCP、DTLCP、TLS1.2、DTLS1.2。 - 认证:支持 Privacy Pass token、HOTP、TOTP、SPAKE2+。 - 算法: - 后量子算法:ML-DSA、ML-KEM、SLH-DSA、XMSS、Classic McEliece、FrodoKEM。 - 对称算法:AES、SM4、Chacha20 以及各种对称加密模式。 - 传统非对称算法:RSA、RSA-Bind、DSA、ECDSA、EDDSA、ECDH、DH、SM2、SM9、Paillier、ElGamal。 - 随机数:DRBG、DRBG-GM。 - 密钥派生:HKDF、SCRYPT、PBKDF2。 - 哈希:SHA 系列、MD5、SM3。 - 消息认证码:HMAC、CMAC。 - 其他:HPKE。 - PKI: - 后量子能力:支持 XMSS、ML-DSA、ML-KEM、SLH-DSA 证书功能,ML-DSA CMS SignedData 功能。 - 传统证书能力:支持 X509 解析和验证、CRL 解析和验证、CSR 请求生成、证书链生成、部分/完整证书链验证 - PKCS7、PKCS8、PKCS12 等。 - 命令行:支持基本命令、随机数、加密解密、密钥和参数管理、证书等。 ### DFX 特性 - 高度模块化的功能,支持按需裁剪特性。 - 基于 ARMv8、ARMv7、x86_64 CPU 的算法性能优化。 - 支持基于日志和错误栈功能的可维护性和可测试性。 ## 组件介绍 目前,openHiTLS 包含 5 个组件。BSL 组件将与其他组件配合使用。 - BSL 是 Base Support Layer(基础支撑层)的缩写,提供基础的 C 标准增强函数和 OS 适配。它将与其他模块一起使用。 - Crypto 提供高性能的完整密码学功能。它将被 TLS 使用,也可以与 BSL 一起使用。 - TLS 是 Transport Layer Security(传输层安全)的缩写,涵盖 TLS1.3 及之前的 TLS 版本。它将与 Crypto、BSL 以及其他第三方密码组件或 PKI 库一起使用。 - PKI 组件提供证书和 CRL 解析、证书和 CRL 验证以及证书请求和生成等功能。 - Auth 认证组件提供认证功能。目前,它提供 Privacy Pass token、TOTP/HOTP、SPAKE2+。 ## 开发 ### 依赖准备 openHiTLS 依赖于 Secure C (libboundscheck),该依赖**现在由 CMake 构建系统自动构建**,无需额外的脚本。 **快速开始(推荐)**: ``` # 使用 submodules 克隆以一步获取 source code 和 dependencies git clone --recurse-submodules https://gitcode.com/openhitls/openhitls.git cd openhitls mkdir -p build && cd build cmake .. && make && make install ``` **替代方法**: 1. **已克隆但未初始化子模块**: git submodule update --init platform/Secure_C mkdir -p build && cd build cmake .. && make && make install 2. **手动克隆依赖**(不使用子模块): git clone https://gitcode.com/openhitls/openhitls.git cd openhitls git clone https://gitee.com/openeuler/libboundscheck platform/Secure_C mkdir -p build && cd build cmake .. && make && make install ### 面向应用开发者 官方版本的源代码镜像正在规划中。 官方源代码仓库位于 。可以通过克隆获取 git 仓库的本地副本: ``` git clone https://gitcode.com/openhitls/openhitls.git ``` 如果您打算参与贡献,则需要在 gitcode 上 fork openhitls 仓库,并克隆您公开的 fork: ``` git clone https://gitcode.com/"your gitcode name"/openhitls.git ``` ## 文档 本文档旨在提高开发者和贡献者在 openHiTLS 上的学习效率。请参阅 [文档](docs/index/index.md)。 ## 构建和安装 Linux 中的主要步骤如下。请参阅 [构建和安装](docs/en/4_User%20Guide/1_Build%20and%20Installation%20Guide.md) Linux 中的主要步骤: 第 1 步(准备构建目录): ``` cd openhitls && mkdir -p ./build && cd ./build ``` 第 2 步(配置,根据需要选择): * 默认构建(启用所有功能,构建静态库、动态库和对象库): ``` cmake .. ``` * 使用预设进行完整构建: ``` cmake .. -DHITLS_BUILD_PROFILE=full ``` * 启用汇编优化(自动检测平台类型): ``` cmake .. -DHITLS_ASM=ON ``` * 启用 x86_64 汇编优化的完整构建: ``` cmake .. -DHITLS_BUILD_PROFILE=full -DHITLS_ASM_X8664=ON ``` * 构建命令行工具: ``` cmake .. -DHITLS_BUILD_EXE=ON ``` * 将所有模块打包成单个库: ``` cmake .. -DHITLS_BUNDLE_LIB=ON ``` 更多选项请参阅 [构建安装指南](docs/en/4_User%20Guide/1_Build%20and%20Installation%20Guide.md) 第 3 步(构建并安装): ``` make && make install ``` ## 贡献 如果您计划为 openHiTLS 社区做出贡献,请访问链接 [CLA 签署](https://cla.openhitls.net) 完成 CLA 签署。
标签:ARM优化, Bash脚本, CVE, DTLS, HOTP, HPKE, ISO19790, JSONLines, LangChain, ML-DSA, ML-KEM, OpenHiTLS, PQC, Privacy Pass, SM2, SM3, SM4, TLCP, TLS 1.3, TLS协议, TOTP, X.509, x86优化, 云配置检测, 传输层安全, 侧信道防护, 双因素认证, 后量子密码, 哈希算法, 国密算法, 客户端加密, 密码学, 密码模块, 密钥交换, 对称加密, 嵌入式安全, 开源安全库, 手动系统调用, 抗量子计算, 数字签名, 数字证书, 数据加密, 网络安全, 自动化审计, 轻量级, 隐私保护, 零信任, 非对称加密