mirror of
https://git.friendi.ca/friendica/friendica-addons.git
synced 2024-11-21 22:23:41 +00:00
Fix secure Mail addon
This commit is contained in:
parent
360e58e6e3
commit
7603b23799
1 changed files with 12 additions and 4 deletions
|
@ -116,6 +116,8 @@ function securemail_settings_post(App &$a, array &$b)
|
|||
*/
|
||||
function securemail_emailer_send_prepare(App &$a, IEmail &$email)
|
||||
{
|
||||
DI::logger()->warning('start securemail', ['email' => $email]);
|
||||
|
||||
if (empty($email->getRecipientUid())) {
|
||||
return;
|
||||
}
|
||||
|
@ -124,6 +126,7 @@ function securemail_emailer_send_prepare(App &$a, IEmail &$email)
|
|||
|
||||
$enable_checked = DI::pConfig()->get($uid, 'securemail', 'enable');
|
||||
if (!$enable_checked) {
|
||||
DI::logger()->warning('No check!!', ['email' => $email]);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -133,12 +136,17 @@ function securemail_emailer_send_prepare(App &$a, IEmail &$email)
|
|||
$marker = empty($matches[1]) ? 'MESSAGE' : $matches[1];
|
||||
$public_key = OpenPGP::unarmor($public_key_ascii, $marker);
|
||||
|
||||
DI::logger()->warning('public key', ['public_key' => $public_key]);
|
||||
|
||||
$key = OpenPGP_Message::parse($public_key);
|
||||
|
||||
$data = new OpenPGP_LiteralDataPacket($email->getMessage(true), [
|
||||
'format' => 'u',
|
||||
'filename' => 'encrypted.gpg'
|
||||
]);
|
||||
|
||||
DI::logger()->warning('data', ['data' => $data]);
|
||||
|
||||
try {
|
||||
$encrypted = OpenPGP_Crypt_Symmetric::encrypt($key, new OpenPGP_Message([$data]));
|
||||
$armored_encrypted = wordwrap(
|
||||
|
@ -148,10 +156,10 @@ function securemail_emailer_send_prepare(App &$a, IEmail &$email)
|
|||
true
|
||||
);
|
||||
|
||||
$email = Friendica\Object\EMail::createFromPrototype($email, [
|
||||
'textVersion' => $armored_encrypted,
|
||||
'htmlVersion' => null,
|
||||
]);
|
||||
$email = $email->withMessage($armored_encrypted, null);
|
||||
|
||||
DI::logger()->warning('End securemail', ['email' => $email]);
|
||||
|
||||
} catch (Exception $e) {
|
||||
DI::logger()->warning('Encryption failed.', ['email' => $email, 'exception' => $e]);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue