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

3.3. 署名アルゴリズム

3.3. 署名アルゴリズム

HTTP メッセージ署名は, 鍵素材, 環境, および署名者と検証者の必要性に適した暗号デジタル署名または MAC 方式を用いなければならない (MUST). 本仕様は利用可能な署名アルゴリズムを厳密には限定せず, これらの基本要件を満たす署名アルゴリズムは HTTP メッセージ署名のアプリケーションが用いてもよい (MAY).

各署名方式について, HTTP_SIGN は 2.5 節で定義される署名ベースをバイト列 (M) および署名鍵素材 (Ks) を入力とし, 結果の署名をバイト列 (S) として出力する:

HTTP_SIGN (M, Ks) -> S

各検証方式について, HTTP_VERIFY は 2.5 節で定義されるとおり再生成した署名ベースをバイト列 (M), 検証鍵素材 (Kv), および検証対象の提示署名をバイト列 (S) として入力とし, 検証結果 (V) をブール値として出力する:

HTTP_VERIFY (M, Kv, S) -> V

次の各節には一般的な署名アルゴリズムがいくつか含まれ, これらの暗号原始が上記の HTTP_SIGN および HTTP_VERIFY 定義にどのように対応するかを示す. 用いる方式は明示的な alg 署名パラメータ (2.3 節), 鍵素材への参照, または署名者と検証者間の相互合意を通じて伝えてよい. alg パラメータで選ばれた署名アルゴリズムは "HTTP Signature Algorithms" レジストリ (6.2 節) の値を用いなければならない (MUST).