fix: pubkey should not be collected as attachment

This commit is contained in:
James Houlahan
2020-08-21 13:45:20 +02:00
parent fa5f4acdac
commit 4ab8f7d6b5
2 changed files with 12 additions and 7 deletions

View File

@ -44,12 +44,6 @@ func Parse(r io.Reader, key, keyName string) (m *pmapi.Message, mimeBody, plainB
return
}
if key != "" {
if err = attachPublicKey(p.Root(), key, keyName); err != nil {
return
}
}
m = pmapi.NewMessage()
if err = parseMessageHeader(m, p.Root().Header); err != nil {
@ -68,6 +62,15 @@ func Parse(r io.Reader, key, keyName string) (m *pmapi.Message, mimeBody, plainB
return
}
// We only attach the public key manually to the MIME body for
// signed/encrypted external recipients. It's not important for it to be
// collected as an attachment; that's already done when we upload the draft.
if key != "" {
if err = attachPublicKey(p.Root(), key, keyName); err != nil {
return
}
}
mimeBodyBuffer := new(bytes.Buffer)
if err = p.NewWriter().Write(mimeBodyBuffer); err != nil {

View File

@ -322,7 +322,9 @@ func TestParseWithAttachedPublicKey(t *testing.T) {
assert.Equal(t, "body", m.Body)
assert.Equal(t, "body", plainBody)
require.Len(t, attReaders, 1)
// The pubkey should not be collected as an attachment.
// We upload the pubkey when creating the draft.
require.Len(t, attReaders, 0)
}
func TestParseTextHTMLWithEmbeddedForeignEncoding(t *testing.T) {