首页/安全/加密与证书速查/openssl list 能力清单查询

openssl list 能力清单查询

list 命令枚举当前构建支持的对象:命令、摘要、密码算法、公钥算法、KEM 与 provider;核对与实现对接时先看这里,比翻文档更直接。

加密与证书速查安全更新于 2026-10-13

openssl list 是干什么的

openssl list 枚举当前这个 OpenSSL 构建到底支持什么:可用子命令、摘要算法、对称密码、公钥算法、KEM 算法以及已加载的 provider。它回答的是「本机的 OpenSSL 能不能跑 SM3、SM4、SM2、ChaCha20」这类具体问题。各发行版与容器镜像的编译选项差别很大,手册里写着支持的算法不一定被编译进来,对接与选型前先看这个命令的输出最可靠。

基本信息

命令清单openssl list -commands
摘要算法openssl list -digest-algorithms | grep -i sm3
对称密码openssl list -cipher-algorithms | grep -i chacha
其他类别-public-key-algorithms、-kem-algorithms、-mac-algorithms
provideropenssl list -providers 查看已加载的算法来源与状态
版本信息openssl version -a 给出编译选项与安装目录,跨机器对比要先比它

典型使用场景

  • 跨平台对接核验:客户端与服务端各自支持的算法清单不一致时,先确认两边构建能力。
  • 算法可用性确认:确认本机是否支持国密算法,避免写完脚本才发现命令不存在。
  • 版本升级评估:升级 OpenSSL 前后对比清单,判断是否有算法被移出默认 provider。
  • PQC 迁移准备:用 -kem-algorithms 核对新版本是否包含进军算法实现。
  • 故障定位:命令报 unknown algorithm 时,先看清单而不是改代码。

核对关键能力

核对关键能力
openssl list -providers                        # 看已加载的 provider 与状态
openssl list -digest-algorithms | grep -i -E 'sm3|sha3' | head
openssl list -cipher-algorithms | grep -i -E 'sm4|chacha' | head
openssl list -public-key-algorithms | grep -i -E 'ed25519|sm2' | head
openssl version -a                             # 记录版本与编译选项,便于跨机器对比

常用选项读法

选项列出内容用来看什么
-commands可用子命令某个算法类命令是否存在
-digest-algorithms摘要算法与别名SM3、SHA3 是否编译进来
-cipher-algorithms对称密码与模式SM4、ChaCha20-Poly1305 是否可用
-providersprovider 列表与状态算法来源,3.x 中决定能力边界
-kem-algorithms密钥封装算法后量子迁移的能力核对
-mac-algorithms消息认证码GMAC、CMAC、HMAC 是否齐全
OpenSSL 3.x 采用 provider 机制,老的或强度不足的算法集中在 legacy provider 中且默认不加载;因此本机「看不到」MD4、RC4 这类算法,原因通常是 provider 未启用而不是版本不支持。
清单里同一算法可能有多个名字与别名(如大小写不同的写法),脚本里按规范名调用更稳;跨容器与宿主对比时,版本与编译选项必须一起记录,否则结论不可复现。

易错点

  • 按官网文档假设算法可用:发行版或镜像常裁剪编译选项,实际运行时报未知算法。
  • 对比清单时未说明版本:容器与宿主机的 OpenSSL 版本、provider 配置不同,清单差异被误读为环境故障。
  • 在脚本里硬编码算法别名:不同版本别名集合有变化,改用规范名并加一次能力探测更稳。
  • 把清单存在当成功能正确:算法可用不代表参数范围、密钥长度都符合业务要求,仍需跑一遍实际用例。

数据来源与参考

  • OpenSSL 官方文档(list)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌