S/MIME署名付きのみの電子メールで正確に消化されるものは何ですか?
それは間違いなく元のメッセージのsha256ダイジェストだけではありません。つまり、
$ openssl dgst -sha256 <<< "Text"
まったく同じ「テキスト」を持つS/MIMEメール用に作成されたダイジェストは作成されません。
RFC 5751 (セクション3.4.3.2)でこれに関する情報を読んで理解しようとしましたが、それでも私にはわかりません。正確にはdigestedS/MIME電子メールの場合。
元のメッセージは、 ハッシュおよび暗号化 になる前にどのように準備および拡張されますか?
私が正しく理解していれば、準備のためにいくつかのCMS処理と転送エンコードが行われます。プロセス全体を簡単な言葉で表現することは可能ですか?
これらのようなメモ( セクション3.1 )はさらに混乱します:
これらの(3つの)ステップは、規範的ではなく説明的です。実装者は、結果が同じである限り、任意の手順を自由に使用できます。
このようなあいまいな説明に基づいて、さまざまな電子メールアプリケーションをどのように連携させることができますか?
RFC 5652 、セクション5.4から
メッセージダイジェスト計算プロセスは、署名されているコンテンツまたは署名された属性とともにコンテンツのいずれかでメッセージダイジェストを計算します。
ただし、平文の(cms-)ダイジェストを手動で確認できます。
Test.eml
として保存します$ openssl cms -in Test.eml -cmsout -print
Test.txt
に保存します$ lua sha256-hash-Finder.lua Test.eml "4db15ae843e3 ... "