gmkitx API - v0.10.1
    正在准备搜索索引...

    接口 SignOptions

    签名选项

    SM2 签名算法的可配置选项,用于控制签名过程的各个方面

    interface SignOptions {
        curveParams?: SM2CurveParams;
        outputFormat?: OutputFormatType;
        signatureFormat?: SM2SignatureFormat;
        skipZComputation?: boolean;
        userId?: string;
    }
    索引
    curveParams?: SM2CurveParams

    标准曲线参数兼容声明。

    省略即可使用标准 SM2 曲线。当前实现不支持自定义曲线;传入与标准曲线 不同的参数会抛出错误。

    outputFormat?: OutputFormatType

    输出格式

    • hex:十六进制字符串(默认)
    • base64:Base64 编码字符串
    signatureFormat?: SM2SignatureFormat

    签名格式

    • raw(默认): 返回 Raw 格式签名(r || s,64 字节)
    • der: 返回 DER 编码格式签名(符合 ASN.1 标准,长度可变)
    skipZComputation?: boolean

    是否跳过 Z 值计算

    • false(默认): 标准 SM2 签名流程,计算 e = SM3(Z || M)
    • true: 简化流程,直接计算 e = SM3(M),跳过 Z 值

    该路径计算 e = SM3(M),不执行标准 SM2 的 e = SM3(Z || M)。 它只用于迁移已经采用相同 no-Z 约定的旧协议,不能用于新协议,也不是 性能优化选项。Bouncy Castle 的标准 SM2Signer 不接受这种签名。

    非标准旧协议兼容选项。新代码应保留默认值 false;调用方已持有 预计算 e 时使用摘要签名接口,不要用该选项代替预计算 e。

    userId?: string

    用户 ID(用于计算 Z 值)

    本库默认值:'1234567812345678'(保持向后兼容)

    Z 值是 SM2 签名算法的一个特殊部分,包含了用户身份信息和公钥信息, 用于将签名与特定用户绑定。不同的用户 ID 会产生不同的 Z 值, 从而产生不同的签名。

    兼容约定:省略值或空字符串都会回落到 DEFAULT_USER_ID。 如需自定义身份,请传入非空字符串,并确保验签端使用相同值。