summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorKoni Marti <koni.marti@gmail.com>2022-04-22 13:38:41 +0200
committerRobin Jarry <robin@jarry.cc>2022-04-25 12:31:33 +0200
commit698c0957d7f7ad6a4461120853102b38a76d0780 (patch)
treeca339fa48b0ba2e658c33ae5662a5e8dc4ec72e1 /lib
parent5e5d5a0d1f2d8ba6b7224a665248b0d22176d3a9 (diff)
downloadaerc-698c0957d7f7ad6a4461120853102b38a76d0780.zip
pgp: ensure CRLF line endings in pgpmail reader
Ensure CRLF line endings in the pgpmail reader. Fix the pgp signature verification for maildir and notmuch. These backends do not return the full message body with CRLF line endings. But the accepted OpenPGP convention is for signed data to end with a <CR><LF> sequence (see RFC3156). If this is not the case the signed and transmitted data are considered not the same and thus signature verification fails. Link: https://datatracker.ietf.org/doc/html/rfc3156 Reported-by: Tim Culverhouse <tim@timculverhouse.com> Signed-off-by: Koni Marti <koni.marti@gmail.com> Tested-by: Tim Culverhouse <tim@timculverhouse.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/messageview.go2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/messageview.go b/lib/messageview.go
index 8db7994..f221fb2 100644
--- a/lib/messageview.go
+++ b/lib/messageview.go
@@ -69,7 +69,7 @@ func NewMessageStoreView(messageInfo *models.MessageInfo,
if usePGP(messageInfo.BodyStructure) {
store.FetchFull([]uint32{messageInfo.Uid}, func(fm *types.FullMessage) {
- reader := fm.Content.Reader
+ reader := lib.NewCRLFReader(fm.Content.Reader)
pgpReader, err := pgpmail.Read(reader, Keyring, decryptKeys, nil)
if err != nil {
cb(nil, err)