GmSSL is an open-source cryptographic library developed by Peking University, offering comprehensive support for Chinese national cryptographic algorithms, standards, and secure communication protocols. It's compatible with major operating systems and processors, including mobile devices, and supports various domestic cryptographic hardware. This document details its features, installation, and usage.
GmSSL
GmSSL是由北京大学自主开发的国产商用密码开源库,实现了对国密算法、标准和安全通信协议的全面功能覆盖,支持包括移动端在内的主流操作系统和处理器,支持密码钥匙、密码卡等典型国产密码硬件,提供功能丰富的命令行工具及多种编译语言编程接口。
主要特性
下载
编译与安装
GmSSL 3 采用了cmake构建系统。下载源代码后将其解压缩,进入源码目录,执行:
在make install完成后,GmSSL会在默认安装目录中安装gmssl命令行工具,在头文件目录中创建gmssl目录,并且在库目录中安装libgmssl.a、libgmssl.so等库文件。
Visual Studio环境编译
在Visual Studio命令提示符下执行:
主要功能
密码算法
证书和数字信封
SSL协议
多语言接口
GmSSL通过子项目提供多种多种编程语言绑定
支持国密硬件
GmSSL内置支持国密SDF密码硬件(通常为PCI-E接口的密码卡或者服务器密码机)和SKF密码硬件(通常为小型USB密码钥匙)。经过测试的密码产品型号包括:
开发者也可以用GmSSL的子项目SoftSDF(https://github.com/GmSSL/SoftSDF) ,用功能等效(但是不具备密码硬件密钥保护等价的安全性)的软件SDF模块来进行开发和测试,正式部署的时候再替换为硬件SDF。
OpenSSL兼容性
GmSSL 3.0版本重写了所有的代码并改变了原有API,因此当前GmSSL版本和OpenSSL不兼容,无法直接用GmSSL替换OpenSSL进行编译。GmSSL提供了子项目 OpenSSL-Compatibility-Layer (https://github.com/GmSSL/OpenSSL-Compatibility-Layer) 提供了OpenSSL的兼容层,Nginx等应用可以通过OpenSSL-Compatibility-Layer调用GmSSL功能。经过测试目前兼容层可以兼容Nginx 1.16 ~ 1.25 之间的版本。
Benchmark
性能测试结果是在单核单线程且未修改处理器默认配置下5次测试中取最好效果。由于未关闭睿频或进行大小核设置,这个成绩通常会略高于多核多线程中每核心的平均成绩。
MacBook Pro 13-inch 2018: 2.7 GHz Quad-Core Intel Core i7, Intel Iris Plus Graphics 655. 8 GB 2133 HMz LPDDR3. macOS Sonoma 14.3.
MacBook Air M2 2022. Apple M2. 16 GB. Sonoma 14.5.
ChangeLog
自从3.1.1版本以来
开发者们
Stargazers over time