I’ve followed this guide from @adbenitez on Delta Chat before and on Arcane Chat just now again (thought maybe it would be a different result).
The goal is to send and receive messages from a DC profile to an external mail client. I tested this with Mutt. I could send an encrypted message from the DC profile to my personal email, but couldn’t send one back.
It probably has something to do with how Mutt encrypts the email. Here the full email i’ve send (I also tried it with disabled Autocrypt, same result).
I have looked at the message. The reason filtermail rejects the message is because the message uses legacy pre-OpenPGP packet format, while filtermail expects standard OpenPGP packet format.
The beginning of the message looks like this, I decoded it with base64 -d | xxd:
I have looked at GnuPG source code, it seems there is no way to make it send PKESK packets using standard OpenPGP packet format.
Here is the code writing PKESK packet:
Inside build_packet the variable new_ctb is not set:
One option is that we make filtermail accept legacy packet format. The other is to fix packet generation in FreePG project, this is essentially the version of GnuPG used in all major Linux distributions such as Debian, Ubuntu and Arch Linux and it aims to be compatible to OpenPGP.
Just an aside: I am running OpenBSD and couldn’t find a port for FreePG. Maybe I would be able to compile it, but it seems the “better” solution for me would be to accept legacy packet format in filtermail, but since I have no idea if there are security implications with this, I won’t ask for anything. Please do what is best for the project and not for my edge case.
Shall I already select your answer as the solution or is it better to wait until it is implemented either in filtermail or FreePG? Sorry not sure how you’re doing this here, just let me know.
I marked it as the solution, let’s track it in filtermail issue. I agree that it’s easiest to fix it there. Don’t think there are any security problems with accepting legacy format, it is just length encoding.