GmSSL项目编译与安装全指南
GmSSL 支持国密SM2/SM3/SM4/SM9/SSL的密码工具箱 项目地址: https://gitcode.com/gh_mirrors/gm/GmSSL
前言
GmSSL是一个开源的密码学工具包,提供了丰富的密码算法实现和安全通信协议支持。本文将全面介绍如何在各种平台上编译和安装GmSSL项目,帮助开发者快速上手使用这一强大的密码学工具。
基础编译流程
GmSSL采用CMake作为构建系统,这使得它能够在大多数主流操作系统上编译和运行。以下是标准的编译安装流程:
-
创建构建目录:
mkdir build cd build
-
配置项目:
cmake ..
-
编译项目:
make
-
运行测试:
make test
-
安装到系统:
sudo make install
编译成功后,可执行文件和库文件会生成在build/bin
目录下。安装完成后,gmssl
命令行工具将可在终端直接调用。
重要注意事项
-
测试环节不可省略:密码学软件的正确性至关重要,务必在安装前通过
make test
验证所有功能。 -
安装目录结构:
- 头文件:
/usr/local/include/gmssl
- 库文件:
/usr/local/lib
- 头文件:
编译选项配置
GmSSL提供了多种编译选项,可以通过CMake变量进行配置:
库类型选择
cmake .. -DBUILD_SHARED_LIBS=ON # 生成动态库
cmake .. -DBUILD_SHARED_LIBS=OFF # 生成静态库
算法优化选项
GmSSL支持多种硬件加速实现:
cmake .. -DENABLE_SM3_AVX_BMI2=ON # SM3算法的AVX+BMI2优化
cmake .. -DENABLE_SM3_X8_AVX2=ON # SM3算法的AVX2并行优化
cmake .. -DENABLE_SM4_AESNI_AVX=ON # SM4算法的AESNI+AVX优化
cmake .. -DENABLE_RDRND=ON # Intel硬件随机数生成器
教学用不安全算法
出于教学目的,可以启用一些不安全的传统算法:
cmake .. -DENABLE_BROKEN_CRYPTO=ON
这将包含DES、SHA1、MD5和RC4等算法。
Windows平台编译指南
Visual Studio环境
-
打开VS开发人员命令提示符
-
使用NMake构建:
cmake .. -G "NMake Makefiles" nmake nmake test
-
管理员权限安装:
nmake install
Cygwin环境
Cygwin提供了类Linux的编译环境:
unzip GmSSL-master.zip
cd GmSSL-master
mkdir build
cd build
cmake ..
make
make test
make install
注意:Cygwin编译的程序依赖cygwin1.dll
。
移动平台交叉编译
iOS平台
需要iOS工具链文件:
cmake .. -G Xcode -DCMAKE_TOOLCHAIN_FILE=../ios.toolchain.cmake -DPLATFORM=OS64
cmake --build . --config Release
Android平台
使用Android NDK工具链:
cmake .. -DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-23
make
安装包构建
GmSSL支持生成多种格式的安装包:
DEB包
cmake .. -DCMAKE_BUILD_TYPE=Release
cpack -G DEB
RPM包
cmake .. -DCMAKE_BUILD_TYPE=Release
cpack -G RPM
二进制发布包制作
制作不依赖特定优化的通用二进制包:
#!/bin/bash
VERSION=3.2.0
OS=macos
ARCH=arm64
mkdir build; cd build; cmake ..; make
cmake .. -DBUILD_SHARED_LIBS=OFF; make
mkdir gmssl-$VERSION
cd gmssl-$VERSION
mkdir bin; mkdir lib; mkdir include
cp ../bin/gmssl bin
cp -P ../bin/libgmssl* lib
cp -r ../../include/gmssl include
cd ..
tar czvf gmssl-$VERSION-$OS-$ARCH.tar.gz gmssl-$VERSION
常见问题解决
-
测试失败:可单独运行测试程序查看详细错误:
./build/bin/sm4test
-
Visual Studio编译问题:
- 确保使用正确的开发人员命令提示符(x86/x64)
- 可能需要设置开发团队签名
-
Cygwin环境问题:
- 确保所有必需工具已安装
- 注意动态库依赖问题
结语
本文详细介绍了GmSSL在各种平台上的编译安装方法,从基础流程到高级配置,再到移动平台交叉编译和安装包制作。掌握这些方法后,开发者可以灵活地在不同环境中部署和使用GmSSL密码学工具包。
GmSSL 支持国密SM2/SM3/SM4/SM9/SSL的密码工具箱 项目地址: https://gitcode.com/gh_mirrors/gm/GmSSL
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考