]> Sergey Matveev's repositories - stargrave-blog.git/commit
go.stargrave.org/pgpmaildecryptor
authorSergey Matveev <stargrave@stargrave.org>
Fri, 10 Jan 2025 11:17:18 +0000 (14:17 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Fri, 10 Jan 2025 11:17:18 +0000 (14:17 +0300)
commit99da812a3d62fde2ef99a7ed8eff69fe2acfe0a7
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904
parent257c224f2c80442b583aa1165e92ed26b8b77675
go.stargrave.org/pgpmaildecryptor

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 сообщения не сложно
устроены.