メインコンテンツまでスキップ

5.2. Accept-Signature の処理 (Processing an Accept-Signature)

5.2. Accept-Signature の処理 (Processing an Accept-Signature)

Accept-Signature フィールドの受信者は, 次のようにそのヘッダを満たす:

  1. フィールド値を辞書 (Dictionary) として解析する.

  2. 辞書の各メンバーについて:

    2.1. キーを 4.1 節で規定される出力署名のラベルとして扱う.

    2.2. メンバーの値を解析し, 被覆コンポーネント識別子の集合を得る.

    2.3. 被覆コンポーネントがターゲットメッセージに適用可能であることを判定する. そうでなければ, 処理は失敗しエラーを返す.

    2.4. 署名アルゴリズムや鍵素材など, 要求されたパラメータを処理する. 要求されたパラメータのいずれかを満たせない場合, または要求されたパラメータがターゲットメッセージに適切と判断されるものと矛盾する場合, 処理は失敗しエラーを返す.

    2.5. 署名を完成させるために必要な追加パラメータを選択し生成する.

    2.6. ターゲットメッセージに対して HTTP メッセージ署名を作成する.

    2.7. Signature-Input および Signature フィールドの値を作成し, ラベルと関連付ける.

  3. 任意で, Accept-Signature フィールドにない一意のラベルで追加の Signature-Input および Signature フィールドの値を作成する.

  4. すべてのラベル付き Signature-Input および Signature フィールドの値を結合し, 両フィールドをターゲットメッセージに添付する.

この過程により, ターゲットメッセージに適用される署名は同一のラベルを持たなければならず (MUST), 同一の被覆コンポーネント集合を含まなければならず (MUST), すべての要求されたパラメータを処理しなければならず (MUST), 追加のパラメータを含めてもよい (MAY).

Accept-Signature フィールドの受信者は, アプリケーションのパラメータに合致しない署名要求を無視してもよい (MAY).

ターゲットメッセージには, Accept-Signature フィールドで指定されていない追加の署名を含めてもよい (MAY). 例えば, 追加のメッセージコンポーネントを被覆するため, 署名者は要求された署名の署名出力を含む追加コンポーネントを含む第 2 の署名を作成できる.