Nette Mailer a odesílání e-mailů zašifrovaných PGP

DefenestrationPraha
Člen | 110
+
0
-

Vážení a milí,

snažím se do svého produktu zabudovat odesílání šifrovaných e-mailů pomocí knihovny GNUPG. Všechno mi celkem funguje, dokonce i ty současné e-maily už se umějí jinde (na Thunderbirdu) dešifrovat, ale mám problém s jejich strukturou.

Ideálně by totiž takový PGP šifrovaný e-mail měl zhruba toto složení:

Content-Type: multipart/encrypted;
 protocol="application/pgp-encrypted";
 boundary="------------xmSAVs0A8shx2KAmSjinm9UO"

This is an OpenPGP/MIME encrypted message (RFC 4880 and 3156)
--------------xmSAVs0A8shx2KAmSjinm9UO
Content-Type: application/pgp-encrypted
Content-Description: PGP/MIME version identification

Version: 1

--------------xmSAVs0A8shx2KAmSjinm9UO
Content-Type: application/octet-stream; name="encrypted.asc"
Content-Description: OpenPGP encrypted message
Content-Disposition: inline; filename="encrypted.asc"

-----BEGIN PGP MESSAGE-----

Kdežto můj současný e-mail, který odesílám pomocí Nette, má toto složení:

Content-Type: multipart/alternative;
	boundary="--------v5w8rv8wl7"

----------v5w8rv8wl7
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP MESSAGE----- hQIMA43G8S8f5xsHAQ//UObVojykFaOogJdnVUeunIYN2z6=
It3GtEnr0z1GF1Jew r7ja7dCC+H3TVPyw5ykOM2hFfQXcgePH5Ubwd6+E9MXcfQew7paDyXmUI=
cvKmWYq WdbPq+HNOCfkIwBKroMTPbsUojEFwjmTgsbcy5gqhPZBe2XoSKqOvc5A+/hAfUi5 Lu=
E5c6Q5y6Zk+zOJeY4LPkMMw9CdckthlZ3gjrBFG9/GjbUe19Scpy+AKy1vtdNx eHvKX1ishmWq=
D8BMn/HM4t2PjYRNmoFeyoVKxBGMQSEem39TIdYl1YoR7sb55PVq GK2wxfr25l8Khctll359Mb=
MZHcxoS4zx77jmZvZziU4Gw99DvSRTeboODDiqcrF3 YYR3WREg2G/pl7YISJfoLE5gK5SXZ6iV=
B9Kg3JJ3NxAxMxdW34fxla1j4FJem6mG Ve5zZPk8VDQ4ObkK6mqgj4uZrroOE78ik7nXgcCo6Y=
DOYalCa4CsFiC1H8M65NMO ZRox3zSqtd4VYYlcqQXD64OS0DXrBcTsisIWI8ErbbNWk6GM34Kr=
9d7xDp7PZXZm AHo8GO/XYvyNyxU+aE5WTM7GsowZrv8IEnLeVnul0GjIjyz2iTrHCwimfwO7/J=
/t 6JqeLz9LGqAixnavVa6rZP1xQ7mGERpBmz2paxV+yZB6RB3kGjMWkeRpqqwFe7TS wEUBWMH=
Ve0VHu8XFIShmQETx0B0XwbQv6DzyedBrJhjhDjRf8UEot/NRza1Xldx7 aHuY40brduE+WQ8Qj=
t8kcJu+TdQQb5t8NtLWUo1hTDgQ+rwn3qRzIiGY9oHsmrHL 58cxn89Rr0uiop1B+hMsbUFn3cj=
GrzENPGjjaFxBuGAf1p4IZsVjSusxbSLbhKg8 GJSgjpMgjFvbmm+2f3fghhnhg/hmgNhBLlgKt=
mDmIaV48XtckWYYZpBNO3dxJP8R VbDH8wOVq88CR1yh1aRlh4+ea68r3KHLj8evgL0jMuYSjMU=
HvVAn/hVN5/rAVmIw f2Wi325hx92RC9Hg/VQxc/bhxDGQ4mE=3D =3DpTaF -----END PGP M=
ESSAGE-----
----------v5w8rv8wl7
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

-----BEGIN PGP MESSAGE-----

Jinými slovy, potřeboval bych odesílanému e-mailu nastavit Content-Type „multipart/encrypted“ s protokolem „application/pgp-encrypted“ a pak mu tam dát ty dva MIMY, jeden, který jen upozorňuje na to, že jde o šifrovaný e-mail (PGP/MIME version identification) a ten druhý s testovacím tělem.

Jakým způsobem mohu odesílanému e-mailu nastavit multipart Content Type a naskládat do něj jednotlivé MIMY?

DefenestrationPraha
Člen | 110
+
+1
-

Nakonec jsem to vyřešil tak, že jsem si udělal potomka Nette Message a dal mu novou metodu build(), která ten multipart/encrypted umí udělat.

Marek Bartoš
Nette Blogger | 1173
+
0
-

@DefenestrationPraha Podělíš se o implementaci? Rád ji otestuju a publikuju i pro ostatní

DefenestrationPraha
Člen | 110
+
0
-

Marek Bartoš napsal(a):

@DefenestrationPraha Podělíš se o implementaci? Rád ji otestuju a publikuju i pro ostatní

Momentálně to generuje nevalidní podpisy. To ještě řešíme. Šifrování a dešifrování už běhá dobře.