openHiTLS

openHiTLS

openHiTLS密码开源社区由西安电子科技大学、山东大学、上海交通大学、华为技术有限公司等13家产学研机构共同发起,是业界首款面向全场景数智安全、独立创新的开源密码套件,旨在打造算法先进、 性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可裁剪的软件技术架构满足各行业不同场景的多样化要求, 同时积极探索后量子等先进算法创新实践,构建密码前沿技术底座!

公告

README

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签署。

热门项目
1.1 K

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

134

本仓将为广大高校开发者提供开源实践和创新开发平台,收集和展示openHiTLS示例代码及创新应用,欢迎大家投稿,让全世界看到您的精巧密码实现设计,也让更多人通过您的优秀成果,理解、喜爱上密码技术。

62

NssMPClib项目是一个通用的安全多方计算库,设计并实现了一系列基于算术秘密共享(Arithmetic Secret Sharing,ASS)和函数秘密共享(Function Secret Sharing,FSS)的隐私保护计算协议,并实现了神经网络密态推理等隐私保护机器学习应用。

37

密码创新仓PQCP(Pioneer Quotable Crypto Provider),为标准化过程中的先进算法提供良好创新环境,并联合学术界、产业界共同推动创新后量子算法的行业落地验证,加速其标准化进程。

13

openHiTLS-Nginx项目是基于openHiTLS开源密码库对Nginx中间件进行接口适配及国密算法改造的开源项目,旨在提供高性能、高安全性的Web服务器解决方案,支持国家密码标准,保障数据传输的安全性。

9

openHiTLS Java SDK,兼容JCE

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

    C
    1.1 K
    611
    MulanPSL-2.0
    更新于 10 小时前
    Star
  • NGCC benchmark

    C
    0
    5
    MulanPSL-2.0
    更新于 3月23日
    Star
  • 暂无简介

    2
    3
    MulanPSL-2.0
    更新于 2月11日
    Star
  • 密码创新仓PQCP(Pioneer Quotable Crypto Provider),为标准化过程中的先进算法提供良好创新环境,并联合学术界、产业界共同推动创新后量子算法的行业落地验证,加速其标准化进程。

    C
    37
    27
    MulanPSL-2.0
    更新于 2 天前
    Star
  • NssMPClib项目是一个通用的安全多方计算库,设计并实现了一系列基于算术秘密共享(Arithmetic Secret Sharing,ASS)和函数秘密共享(Function Secret Sharing,FSS)的隐私保护计算协议,并实现了神经网络密态推理等隐私保护机器学习应用。

    Python
    62
    39
    MIT
    更新于 23 小时前
    Star
  • 本仓将为广大高校开发者提供开源实践和创新开发平台,收集和展示openHiTLS示例代码及创新应用,欢迎大家投稿,让全世界看到您的精巧密码实现设计,也让更多人通过您的优秀成果,理解、喜爱上密码技术。

    C
    134
    673
    MulanPSL-2.0
    更新于 2025年9月8日
    Star
  • 暂无简介

    Java
    2
    8
    MulanPSL-2.0
    更新于 2 天前
    Star
  • sdfx

    C
    3
    4
    MulanPSL-2.0
    更新于 4月23日
    Star
  • openHiTLS-Nginx项目是基于openHiTLS开源密码库对Nginx中间件进行接口适配及国密算法改造的开源项目,旨在提供高性能、高安全性的Web服务器解决方案,支持国家密码标准,保障数据传输的安全性。

    C
    13
    6
    更新于 2025年6月3日
    Star
  • openHiTLS-curl项目是基于openHiTLS密码库对curl中间件进行接口适配及国密算法改造的开源项目,旨在提供高性能、高安全性的数据传输解决方案,支持国家密码标准,确保网络通信的安全性与可靠性。

    C
    6
    4
    NOASSERTION
    更新于 2025年10月22日
    Star
查看全部项目 >
公告
成就
1.41 K
Star
1.42 K
Fork
407.61 K
Download
常用语言
C
Java
Python
CMake