From 99da812a3d62fde2ef99a7ed8eff69fe2acfe0a7 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Fri, 10 Jan 2025 14:17:18 +0300 Subject: [PATCH] go.stargrave.org/pgpmaildecryptor MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit gopher://box.matto.nl/0/export-decrypted-messages-from-entire-mailbox.txt https://datatracker.ietf.org/doc/id/draft-autocrypt-lamps-protected-headers-02.html http://www.git.stargrave.org/?p=pgpmaildecryptor.git;a=summary В 7f67390fdbb9f5c147c9d86d10299ed59f1b0850 писал про то, как можно хранить дешифрованные PGP письма, чтобы по ним можно бы было искать (и не забывать чтобы поисковый индекс, как и сами сообщения, были на зашифрованных разделах). Тогда я использовал встроенные возможности Mutt по расшифровыванию. Но защищённые заголовки письма им просто добавлялись в конец текущих. Отображать такие письма он может нормально, но тот же не единственный Subject будет источником проблем в других местах. В той записи блога был скрипт на Python, потом был на Perl: http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=bin/bin/mail_dup_hdrs_remove.pl;h=dcc78ca93b8ea54fa5ed1f43bc458f934909c14e;hb=HEAD Коряво это всё выглядит: использование интерактивной программы, после которой ещё и всё равно надо доправлять сообщения. Написал pgpmaildecryptor утилиту на Go, которая на stdin принимает RFC822 сообщение, находит в нём pgp-encrypted часть, дешифрует через внешний запускаемый gpg, заменяет дешифрованным результатом заголовки и тело сообщения, с учётом protected-headers. Вроде работает хорошо, пока проблем не встретил. Сам Go то здесь по сути излишен: можно и Perl-ом бы было обойтись, но в Go из коробки есть средства парсинга MIME. Вообще ожидал гораздо большую боль со всем этим, но именно зашифрованные PGP MIME сообщения не сложно устроены. -- 2.48.1