跳到主要内容

3.3. Signature Algorithms (签名算法)

3.3. Signature Algorithms (签名算法)

HTTP 消息签名必须使用适合密钥材料, 环境与签名者及验证者需求的密码学数字签名或 MAC 方法. 本规范不严格限制可用签名算法, 任何满足这些基本要求的签名算法均可由 HTTP 消息签名的应用使用.

对每种签名方法, HTTP_SIGN 以第 2.5 节定义的签名基作为字节数组 (M) 与签名密钥材料 (Ks) 为输入, 输出结果签名字节数组 (S):

HTTP_SIGN (M, Ks) -> S

对每种验证方法, HTTP_VERIFY 以第 2.5 节重建的签名基作为字节数组 (M), 验证密钥材料 (Kv) 与待验证的呈现签名字节数组 (S) 为输入, 输出验证结果 (V) 为 Boolean:

HTTP_VERIFY (M, Kv, S) -> V

下列各节包含若干常见签名算法并演示这些密码学原语如何映射到上述 HTTP_SIGN 与 HTTP_VERIFY 定义. 可通过显式算法 (alg) 签名参数 (第 2.3 节), 引用密钥材料, 或签名者与验证者相互约定来传达所用方法. 通过 alg 参数选择的签名算法必须使用来自 "HTTP Signature Algorithms" 注册表 (第 6.2 节) 的值.