MIME を使って署名つきメッセージを送るための媒体型です。
RFC 1847 urn:ietf:rfc:1847 が定義しています。
ちなみに RFC 1847 は multipart/encrypted媒体型も定義してます。
boundary | mime.boundary | 必須 | 多部分境界 [MIME] (See multipart/*媒体型) |
micalg | mime.type "/" mime.subtype | 必須 | 署名の媒体型 [RFC 1847] |
protocol | mime.value | 必須 | Message Integrity Check (MIC) [RFC 1847] |
protocol パラメーターの値には、署名の媒体型を書きます。
micalg パラメーターは、メッセージ完全性検査
Message Integrity Check (MIC) の名前を書き入れます。
RFC 1847 曰く:
[3] 最初の部分は署名される部分です。署名部分には MIME 頭も含まれます。
MIME として妥当ならどんなものでも構いません。
(てことは、 multipart/*
MIME型でもいいんだ。)
と思いきや、
... って書いてあるや。 multipart はどーなんだろう。
[4] 2つ目の部分は署名で、 protocol パラメーターの値と同じ
MIME型になります。
1. MIME 正規形で(ほんとの)本文部分を用意する。
適切な MIME 頭も。
1.5. 7bit 表現にする。転送系が 8bit や binary
であっても、関門で 7bit 世界に突入することを考慮して、
予め quoted-printable か Base64 を使っておく
必要がある。
3. (ほんとの)本文 (と MIME 頭) を署名処理に通す。
で、署名の検証に要るデータをもらう。
3.5. 以上で用意したデータから、 multipart/signed 本文を組み立てる。
1. 最初の部分(ほんとの本文) と2つ目の部分 (検証用データ)
を取り出す。2つ目の部分の媒体型は protocol パラメーター
と一致するはず。しなければ誤り。
2. 検証プログラムに両部分を渡す。検証プログラムは検証し、
妥当か不当かを返す。
3. 検証結果を利用者に示す。必要なら次の処理へ進む。