Может кто-нибудь, пожалуйста, проясните немного MDC и шифрование данных для меня? в RFC 4880 написано:
Открытый текст данных, которые будут
зашифрованный передается через SHA-1
хэш-функция, и результат
Хеш добавляется в открытый текст в
Модификация пакета с кодом обнаружения.
Вход в хеш-функцию
включает данные префикса, описанные
выше; это включает в себя все
открытый текст, а затем также включает в себя два
октеты значений 0xD3, 0x14. Эти
представляют кодировку
Пакетная метка кода обнаружения модификации
и длина поля 20 октетов.
сначала кажется, что mdc (без данных заголовка) просто: sha1([data]) -> hash_value
тогда второе предложение до точки с запятой выглядит так: sha1(OpenPGP_CFB_extra_data + [data]) -> hash_value
материал после точки с запятой заставляет меня думать, что я должен сделать sha1([data] + "\xd3\x14") -> hash_value
. (это вообще не имеет смысла, но похоже, что написано)
что происходит?
после получения правильного MDC, что с ним делать? это собственный пакет или что-то вроде этого (согласно моему пониманию) сделано?:
tag18_header + encrypt(plaintext + "\xd3\x14" + 20 byte hash)