gmssl基础命令介绍

gmssl基础命令:

help:打印此帮助信息
version:打印版本信息
rand:生成随机字节
sm2keygen:生成SM2密钥对
sm2sign:生成SM2签名
sm2verify:验证SM2签名
sm2encrypt:使用SM2公钥加密
sm2decrypt:使用SM2私钥解密
sm3:生成SM3哈希
sm3hmac:生成SM3 HMAC标签
sm3_pbkdf2:使用PBKDF2算法将密码哈希成密钥
sm3xmss_keygen:生成SM3-XMSS密钥对
sm4_ecb:使用SM4 ECB模式加密或解密
sm4_cbc:使用SM4 CBC模式加密或解密
sm4_ctr:使用SM4 CTR模式加密或解密
sm4_cfb:使用SM4 CFB模式加密或解密
sm4_ofb:使用SM4 OFB模式加密或解密
sm4_ccm:使用SM4 CCM模式加密或解密
sm4_gcm:使用SM4 GCM模式加密或解密
sm4_xts:使用SM4 XTS模式加密或解密
sm4_cbc_sm3_hmac:使用SM4 CBC模式和SM3-HMAC加密或解密
sm4_ctr_sm3_hmac:使用SM4 CTR模式和SM3-HMAC加密或解密
sm4_cbc_mac:生成SM4 CBC-MAC
ghash:生成GHASH
zuc:使用ZUC加密或解密
sm9setup:生成SM9主密钥
sm9keygen:生成SM9私钥
sm9sign:生成SM9签名
sm9verify:验证SM9签名
sm9encrypt:SM9公钥加密
sm9decrypt:SM9解密
reqgen:生成证书签名请求(CSR)
reqsign:从CSR生成证书
reqparse:解析并打印CSR
crlget:下载指定证书的CRL
crlgen:使用CA证书和私钥签署CRL
crlverify:使用发行者证书验证CRL
crlparse:解析并打印CRL
certgen:生成自签名证书
certparse:解析并打印证书
certverify:验证证书链
certrevoke:撤销证书并输出撤销的证书记录
cmsparse:解析CMS(加密消息语法)文件
cmsencrypt:生成CMS封装数据
cmsdecrypt:解密CMS封装数据
cmssign:生成CMS签名数据
cmsverify:验证CMS签名数据
sdfinfo:打印SDF设备信息
sdfdigest:使用SDF设备生成SM3哈希
sdfexport:从SDF设备导出SM2签名公钥
sdfsign:使用SDF内部私钥生成SM2签名
sdfencrypt:使用SDF设备进行SM2/SM4-CBC混合加密
sdfdecrypt:使用SDF设备进行SM2/SM4-CBC混合解密
sdftest:测试供应商的SDF库和设备
tlcp_client:TLCP客户端
tlcp_server:TLCP服务器
tls12_client:TLS 1.2客户端
tls12_server:TLS 1.2服务器
tls13_client:TLS 1.3客户端
tls13_server:TLS 1.3服务器
### gmssl命令的使用说明及错误解决 #### 一、gmssl命令简介 `gmssl` 是基于 OpenSSL 的国密算法实现工具,主要用于支持中国国家密码标准的相关操作。通过该工具可以完成加密解密、签名验证等功能。 如果 `gmssl` 工具能够正常调用并显示版本号,则表明安装过程基本成功[^2]。然而,在实际运行过程中可能会遇到一些动态链接库相关的错误。 --- #### 二、关于 `/usr/local/gmssl/bin/gmssl: relocation error` 错误分析 此错误的核心在于动态链接器无法找到所需的符号定义 `PBEPARAM_it`,这通常是因为依赖的 `libcrypto.so.1.1` 文件不匹配或者缺失造成的。具体原因可能包括: - 安装的 OpenSSL 版本过旧(如提到的 1.0.2d),未修复某些安全漏洞或功能缺陷。 - 动态链接库路径配置不当,导致程序加载了错误版本的共享库文件。 - 编译环境与运行环境之间的差异引起兼容性问题。 针对上述情况,可以通过以下方法尝试解决问题: --- #### 三、解决方案 ##### 方法一:更新 OpenSSL 至最新稳定版 确保使用的 OpenSSL 库是最新的稳定版本(推荐至少为 1.1.x)。下载源码包后按照如下步骤编译安装: ```bash ./config --prefix=/usr/local/openssl make && make install ``` 完成后需确认新版本已生效,并将其加入系统的 LD_LIBRARY_PATH 中以便于动态链接[^3]: ```bash export LD_LIBRARY_PATH=/usr/local/openssl/lib:$LD_LIBRARY_PATH ldconfig -v | grep openssl ``` ##### 方法二:重新编译 GMSSL 工具 若仍存在冲突现象,建议清理原有构建产物后再重新编译整个项目: ```bash cd /path/to/gmssl/source/ make clean ./Configure linux-x86_64 shared no-deprecated --prefix=/usr/local/gmssl make depend make make test make install ``` 注意此处指定了目标平台架构以及启用共享库选项 (`shared`) 和禁用废弃 API(`no-deprecated`) 参数来优化最终输出物的质量。 ##### 方法三:调整环境变量 临时修改当前会话中的动态链接器搜索顺序也可能缓解部分场景下的异常状况: ```bash export PATH=/usr/local/gmssl/bin:$PATH export LD_PRELOAD=/usr/local/gmssl/lib/libcrypto.so.1.1:/usr/local/gmssl/lib/libssl.so.1.1 ``` 以上措施均实施完毕之后再次测试是否恢复正常工作状态即可。 --- #### 四、GMSSL 命令常用参数示例 以下是几个典型的 `gmssl` 子命令及其作用介绍: 1. **查看帮助文档** 显示所有可用子命令列表及相关描述信息。 ```bash gmssl help ``` 2. **生成随机数** 创建指定长度的安全伪随机字节序列用于初始化向量(IV)或其他目的。 ```bash gmssl rand -hex 32 ``` 3. **SM2 密钥对生成** 构建符合 SM2 标准的一对公私钥材料保存到独立文件当中去。 ```bash gmssl ecparam -genkey -name sm2p256v1 -out private_key.pem gmssl ec -in private_key.pem -pubout -out public_key.pem ``` 4. **数据摘要计算(SM3哈希函数)** 对输入字符串应用国密标准规定的散列算法得出固定大小的结果表示形式。 ```bash echo "Sample Text" | gmssl dgst -sm3 ``` 更多高级特性可参照官方手册进一步学习掌握。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

亦诗亦诗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值