5.2. Accept-Signature の処理 (Processing an Accept-Signature)
5.2. Accept-Signature の処理 (Processing an Accept-Signature)
Accept-Signature フィールドの受信者は, 次のようにそのヘッダを満たす:
-
フィールド値を辞書 (Dictionary) として解析する.
-
辞書の各メンバーについて:
2.1. キーを 4.1 節で規定される出力署名のラベルとして扱う.
2.2. メンバーの値を解析し, 被覆コンポーネント識別子の集合を得る.
2.3. 被覆コンポーネントがターゲットメッセージに適用可能であることを判定する. そうでなければ, 処理は失敗しエラーを返す.
2.4. 署名アルゴリズムや鍵素材など, 要求されたパラメータを処理する. 要求されたパラメータのいずれかを満たせない場合, または要求されたパラメータがターゲットメッセージに適切と判断されるものと矛盾する場合, 処理は失敗しエラーを返す.
2.5. 署名を完成させるために必要な追加パラメータを選択し生成する.
2.6. ターゲットメッセージに対して HTTP メッセージ署名を作成する.
2.7. Signature-Input および Signature フィールドの値を作成し, ラベルと関連付ける.
-
任意で, Accept-Signature フィールドにない一意のラベルで追加の Signature-Input および Signature フィールドの値を作成する.
-
すべてのラベル付き Signature-Input および Signature フィールドの値を結合し, 両フィールドをターゲットメッセージに添付する.
この過程により, ターゲットメッセージに適用される署名は同一のラベルを持たなければならず (MUST), 同一の被覆コンポーネント集合を含まなければならず (MUST), すべての要求されたパラメータを処理しなければならず (MUST), 追加のパラメータを含めてもよい (MAY).
Accept-Signature フィールドの受信者は, アプリケーションのパラメータに合致しない署名要求を無視してもよい (MAY).
ターゲットメッセージには, Accept-Signature フィールドで指定されていない追加の署名を含めてもよい (MAY). 例えば, 追加のメッセージコンポーネントを被覆するため, 署名者は要求された署名の署名出力を含む追加コンポーネントを含む第 2 の署名を作成できる.