ml_dsa_sign
[pqc_signature] 使用 ML-DSA 私钥对消息签名(FIPS 204)。 【双模式】sign_mode 支持 RAW(默认)和 EXTERNAL_MU 两种模式。
RAW 模式:直接签名原始消息(liboqs,最大 256 字节)
EXTERNAL_MU 模式:先计算 mu = SHAKE-256(tr||M', 64),再通过 OpenSSL 3.5+ mu 模式签名(最大 2048 字节),与 AWS KMS ML-DSA EXTERNAL_MU 语义等价 【消息长度策略】
RAW:最大 256 字节,空消息合法
EXTERNAL_MU:最大 2048 字节,空消息合法
256 且 <= 2048 字节:使用 EXTERNAL_MU
2048 字节:拒绝 【算法】algorithm 支持 ML-DSA-44 / ML-DSA-65(默认)/ ML-DSA-87。 【参数】
private_key_in_hex:ml_dsa_keygen 返回的私钥 hex
public_key_spki_in_hex:EXTERNAL_MU 模式必填,ml_dsa_keygen 返回的公钥 hex(SPKI DER)
message_in_hex:待签消息 hex
context_in_hex:可选上下文 hex(最大 255 字节)
sign_mode:RAW 或 EXTERNAL_MU(默认 RAW) 【输出】signature_in_hex、signature_in_base64、algorithm、message_bytes、signature_bytes。
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| algorithm | No | 密码算法名称(具体可选值因工具而异,见工具描述) | ML-DSA-65 |
| sign_mode | No | ML-DSA 签名模式,可选值:RAW(默认,直接签名原文)/ EXTERNAL_MU(先计算 mu 再签名,与 AWS KMS 语义等价) | RAW |
| context_in_hex | No | ML-DSA 上下文的十六进制字符串(可选,最大 255 字节) | |
| message_in_hex | No | 消息的十六进制字符串(空字符串表示空消息) | |
| private_key_in_hex | No | ML-DSA 私钥的十六进制字符串(PKCS#8 DER 编码) | |
| public_key_spki_in_hex | No | ML-DSA 公钥的十六进制字符串(SPKI DER 或裸公钥均可) |