mirror of
https://github.com/the-djmaze/snappymail.git
synced 2024-09-20 15:45:55 +08:00
Verify S/MIME signed automatically and log Exception
This commit is contained in:
parent
b2009f6bc0
commit
27fbe01876
|
@ -201,7 +201,7 @@ export class MessageModel extends AbstractModel {
|
||||||
|
|
||||||
this.smimeSigned.subscribe(value => {
|
this.smimeSigned.subscribe(value => {
|
||||||
value?.body && MimeToMessage(value.body, this);
|
value?.body && MimeToMessage(value.body, this);
|
||||||
value?.body && this.smimeVerified(value.verified);
|
'verified' in value && this.smimeVerified(value.verified);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -171,15 +171,22 @@ class MailClient
|
||||||
$aFetchResponse = $this->oImapClient->Fetch($aFetchItems, $iIndex, $bIndexIsUid);
|
$aFetchResponse = $this->oImapClient->Fetch($aFetchItems, $iIndex, $bIndexIsUid);
|
||||||
if (\count($aFetchResponse)) {
|
if (\count($aFetchResponse)) {
|
||||||
$oMessage = Message::fromFetchResponse($sFolderName, $aFetchResponse[0], $oBodyStructure);
|
$oMessage = Message::fromFetchResponse($sFolderName, $aFetchResponse[0], $oBodyStructure);
|
||||||
// S/MIME opaque signed. Verify it, so we have the raw mime body to show
|
// S/MIME signed. Verify it, so we have the raw mime body to show
|
||||||
if ($oMessage->smimeSigned && !$oMessage->smimeSigned['detached']) {
|
if ($oMessage->smimeSigned) try {
|
||||||
|
$bOpaque = !$oMessage->smimeSigned['detached'];
|
||||||
$sBody = $this->oImapClient->FetchMessagePart(
|
$sBody = $this->oImapClient->FetchMessagePart(
|
||||||
$oMessage->Uid,
|
$oMessage->Uid,
|
||||||
$oMessage->smimeSigned['partId']
|
$oMessage->smimeSigned['partId']
|
||||||
);
|
);
|
||||||
$result = (new \SnappyMail\SMime\OpenSSL(''))->verify($sBody, null, true);
|
$result = (new \SnappyMail\SMime\OpenSSL(''))->verify($sBody, null, $bOpaque);
|
||||||
$oMessage->smimeSigned['body'] = $result['body'];
|
if ($result) {
|
||||||
$oMessage->smimeSigned['verified'] = true;
|
if ($bOpaque) {
|
||||||
|
$oMessage->smimeSigned['body'] = $result['body'];
|
||||||
|
}
|
||||||
|
$oMessage->smimeSigned['verified'] = $result['success'];
|
||||||
|
}
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
$this->logException($e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue