You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用SoftHSM生成Ed25519密钥对时遇PKCS #11用户错误求助

问题解决:SoftHSM中生成Ed25519密钥对出现PKCS#11用户错误

错误根源分析

你遇到的Error in pkcs11_generate:1355: PKCS #11 user error主要由三个问题导致:

  1. 多余的--bits 1024参数:Ed25519密钥长度是固定的(256位),不需要手动指定比特数,该参数会导致p11tool解析错误。
  2. 重复初始化token:先用softhsm2-util完成了token初始化,后续又用p11tool --initialize重复操作,导致token状态异常,PIN配置冲突。
  3. PIN参数混用:--login操作应使用用户PIN(mysecret1),而非SO PIN(mysopin1),SO PIN仅用于管理员级别的token操作(如重置用户PIN)。

修复步骤

1. 清理异常token(可选)

如果之前的token状态混乱,先删除现有token:

softhsm2-util --delete-token --token token-label

2. 重新初始化token(仅用softhsm2-util)

使用softhsm2-util完成token初始化,这一步已经同时设置了SO PIN和用户PIN,无需再用p11tool重复初始化:

softhsm2-util --init-token --free --label token-label --so-pin mysopin1 --pin mysecret1

3. 正确生成Ed25519密钥对

执行以下命令生成密钥,注意移除多余的--bits参数,并用用户PIN登录:

# 先获取token URL(和你之前的操作一致)
export TOKEN=$(p11tool --list-token-urls | grep token-label)

# 生成Ed25519密钥对
p11tool --login --pin mysecret1 --generate-privkey=Ed25519 --label my-ed25519-key --outfile MyNewKey.pub "$TOKEN"

额外排查项

如果问题仍存在,可以尝试:

  • 检查SoftHSM版本:Ubuntu 22.04默认的softhsm包是SoftHSMv2,它支持Ed25519,但可以通过softhsm2-util --version确认版本,确保是最新稳定版。
  • 启用调试日志:导出环境变量开启调试,查看详细错误信息:
    export SOFTHSM2_DEBUG=1
    # 重新执行生成密钥的命令
    
  • 验证OpenSSL PKCS11引擎:确保Docker中安装的libengine-pkcs11-openssl正常工作,执行openssl engine pkcs11 -t确认引擎可用。

内容的提问来源于stack exchange,提问作者Kjeld Flarup

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 14:25:45