Add specific exception in case of GPG encryption failing

This commit is contained in:
Joshua Ramon Enslin 2023-11-21 01:44:19 +01:00
parent 900c2733e5
commit bc998fbfa0
Signed by: jrenslin
GPG Key ID: 46016F84501B70AE
2 changed files with 26 additions and 3 deletions

View File

@ -0,0 +1,18 @@
<?PHP
declare(strict_types = 1);
/**
* Exception to be thrown
*/
final class MDMailerEncryptionFailedException {
/**
* Error message.
*
* @return string
*/
public function errorMessage() {
//error message
return 'GPG encryption failed';
}
}

View File

@ -43,11 +43,16 @@ final class MDMailerHelper {
} }
if ($gpg->addsignkey(MD_CONF_EMAIL::PGP_ENC_KEY) === false) { if ($gpg->addsignkey(MD_CONF_EMAIL::PGP_ENC_KEY) === false) {
throw new \Exception("Cannot set private key for GPG encryption"); throw new \MDMailerEncryptionFailedException("Cannot set private key for GPG encryption");
} }
try {
if (empty($msg = $gpg->encrypt($msg))) { if (empty($msg = $gpg->encrypt($msg))) {
throw new \Exception("Failed to sign and encrypt the message"); throw new \MDMailerEncryptionFailedException("Failed to sign and encrypt the message");
}
}
catch (Exception $e) {
throw new MDMailerEncryptionFailedException("Failed to sign and encrypt the message to " . $to);
} }
return $msg; return $msg;