誰かが MDC とデータ暗号化を少しクリアしてくれませんか? RFC 4880 では、次のように述べています。
暗号化されるデータの平文は SHA-1 ハッシュ関数を介して渡され、ハッシュの結果は変更検出コード パケットの平文に追加されます。ハッシュ関数への入力には、上記のプレフィックス データが含まれます。これにはすべての平文が含まれており、値 0xD3、0x14 の 2 つのオクテットも含まれています。これらは、変更検出コード パケット タグと 20 オクテットの長さフィールドのエンコードを表します。
最初は、mdc (ヘッダー データなし) は次のように見えます。sha1([data]) -> hash_value
次に、セミコロンまでの2番目の文は、次のように見えますsha1(OpenPGP_CFB_extra_data + [data]) -> hash_value
セミコロンの後のことは、私がやるべきことのように思わせますsha1([data] + "\xd3\x14") -> hash_value
。(これはまったく意味がありませんが、書かれているようです)
何が起こっている?
正しい MDC を取得した後、それで何が行われますか? それは独自のパケットですか、それともこのようなものですか (私の理解によると) 完了しましたか?:
tag18_header + encrypt(plaintext + "\xd3\x14" + 20 byte hash)