跳到主要内容

5.2. Processing an Accept-Signature (处理 Accept-Signature)

5.2. Processing an Accept-Signature (处理 Accept-Signature)

Accept-Signature 字段的接收者按如下方式满足该头:

  1. 将字段值解析为 Dictionary.

  2. 对 Dictionary 的每个成员:

    2.1. 键作为第 4.1 节规定的输出签名的标签.

    2.2. 解析成员的值以获得被覆盖组成部分标识符集合.

    2.3. 确定被覆盖组成部分适用于目标消息. 若否, 过程失败并返回错误.

    2.4. 处理所请求参数, 例如签名算法与密钥材料. 若任何所请求参数无法满足或与目标消息认为适当的参数冲突, 过程失败并返回错误.

    2.5. 选择并生成完成签名所需的任何附加参数.

    2.6. 在目标消息上创建 HTTP 消息签名.

    2.7. 创建 Signature-InputSignature 字段值, 并将其与标签关联.

  3. 可选地创建任何附加的 Signature-InputSignature 字段值, 其标签在 Accept-Signature 字段中不存在且唯一.

  4. 合并所有带标签的 Signature-InputSignature 字段值, 并将两个字段附加到目标消息.

通过此过程, 应用于目标消息的签名必须具有相同标签, 必须包含相同的被覆盖组成部分集合, 必须处理全部所请求参数, 且可以有附加参数.

Accept-Signature 字段的接收者可忽略任何不符合应用参数的签名请求.

目标消息可包含 Accept-Signature 字段未指定的附加签名. 例如, 为覆盖附加消息组成部分, 签名者可创建第二条签名, 其除所请求签名的签名输出外还包含附加组成部分.