openHiTLS:高效敏捷全场景开源密码学开发套件,支持多协议与算法优化

旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!

分支6Tags16
文件最后提交记录最后更新时间
Refine PR and ISSUE templates for both languages5 个月前
Disable 'Upload artifacts' of riscv64 github flow temporarily6 个月前
feat(apps): refine enc command output and fixes16 天前
Fix code review issues1 个月前
feat: Add PQC certificate support to the protocol layer5 天前
Fix ISO 19790 cmake compilation issue5 天前
Ignore unsupported decoder providers during chain discovery22 天前
Support Pure cmake build2 个月前
Reject RSA private key encoding without public exponent1 天前
feat(apps): refine enc command output and fixes16 天前
feat: Support for encoding and decoding of the CDP field in certificates1 天前
feat: Support for encoding and decoding of the CDP field in certificates1 天前
feat: Support for encoding and decoding of the CDP field in certificates1 天前
feat: Add PQC certificate support to the protocol layer5 天前
add .clang-format file1 年前
feat: build system improvements and cross-platform support (macOS)7 个月前
Remove libboundscheck (securec) dependency and harden sensitive data cleansing1 个月前
chore: Enhance default compilation options1 个月前
docs: update CONTRIBUTING-zh.md1 个月前
openhitls repo init1 年前
feat(crypto/benchmark/chore): Add x25519 armv8 NEON interleave implementation1 个月前
feat(crypto/benchmark/chore): Add x25519 armv8 NEON interleave implementation1 个月前
refactor: remove libsctp1 年前

English | 简体中文

openHiTLS

欢迎访问openHiTLS代码仓,该代码仓的项目官网是openHiTLS社区https://openhitls.net,openHiTLS的目标是提供高效、敏捷的全场景开源密码学开发套件。openHiTLS已支持通用的标准密码算法、(D)TLS、(D)TLCP等安全通信协议,更多特性待规划。

概述

openHiTLS架构高度模块化,可通过模块和特性配置。RAM/ROM尺寸取决于所选的特性。openHiTLS为密码算法提供最佳性能优化。当前已支持5个组件和算法特性可按需配置,已经通过ISO19790认证,支持ARM、x86架构CPU上的算法性能优化,更多架构和特性待规划。

特性简介

功能特性

  • 协议:
    • 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,GM-DRBG;
    • 密钥派生: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+等协议;

开发

快速开始

git clone https://gitcode.com/openhitls/openhitls.git
cd openhitls
mkdir -p build && cd build
cmake .. && make && make install

致应用开发人员

正式版本的源码镜像尚未正式开放,还在规划当中。

官方代码仓库托管在https://gitcode.com/openhitls,您可以通过如下命令将Git库克隆为一个本地副本进行使用:

git clone https://gitcode.com/openhitls/openhitls.git

如果您有意贡献代码,请在gitcode上复制openhitls库,再克隆您的公共副本:

git clone https://gitcode.com/"your gitcode name"/openhitls.git

文档

本文档旨在帮助开发者和贡献者更快地上手openHiTLS,详情参考文档列表

构建与安装

在Linux系统中进行构建与安装时,可参考构建安装指导 Linux系统中的主要步骤有:

  1. 准备构建目录:
cd openhitls && mkdir -p ./build && cd ./build
  1. 配置(按需选择):
  • 默认构建(启用所有特性,同时生成静态库和共享库):
cmake ..
  • 全量构建(使用预设):
cmake .. -DHITLS_BUILD_PROFILE=full
  • 手动选择特性:
cmake .. -DHITLS_BUILD_PROFILE=none -DHITLS_CRYPTO_SHA256=ON
  • 启用汇编优化(自动检测平台类型):
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

更多选项介绍可参考构建安装指导

  1. 执行构建和安装:
make && make install

贡献

如果您有意为openHiTLS社区做贡献,请先在CLA签署平台上完成CLA签署。

项目介绍

旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!

定制我的领域