Merge pull request #3657 from ChadiRachid/feature/smime-signing

Expose signingOptions and extraCerts params
This commit is contained in:
Lucas Bartholemy 2019-09-19 13:18:43 +02:00 committed by GitHub
commit a9beaa92b1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 3 deletions

View File

@ -41,6 +41,17 @@ class Mailer extends \yii\swiftmailer\Mailer
* @var string|null Path for the sigining certificate private key. If provided emails will be digitally signed before sending.
*/
public $signingPrivateKeyPath = null;
/**
* @var string|null Path for extra sigining certificates (i.e. intermidiate certificates).
*/
public $signingExtraCertsPath = null;
/**
* @var int Bitwise operator options for openssl_pkcs7_sign()
*/
public $signingOptions = PKCS7_DETACHED;
/**
* Creates a new message instance and optionally composes its body content via view rendering.
@ -72,7 +83,8 @@ class Mailer extends \yii\swiftmailer\Mailer
}
if ($this->signingCertificatePath !== null && $this->signingPrivateKeyPath !== null) {
$message->setSmimeSigner($this->signingCertificatePath, $this->signingPrivateKeyPath);
$message->setSmimeSigner($this->signingCertificatePath, $this->signingPrivateKeyPath, $this->signingOptions, $this->signingExtraCertsPath);
}
return $message;

View File

@ -16,11 +16,11 @@ namespace humhub\components\mail;
*/
class Message extends \yii\swiftmailer\Message
{
public function setSmimeSigner($signingCertificatePath, $signingPrivateKeyPath)
public function setSmimeSigner($signingCertificatePath, $signingPrivateKeyPath, $signingOptions = PKCS7_DETACHED, $extraCerts = null)
{
$signer = \Swift_Signers_SMimeSigner::newInstance();
$signer->setSignCertificate($signingCertificatePath, $signingPrivateKeyPath);
$signer->setSignCertificate($signingCertificatePath, $signingPrivateKeyPath, $signingOptions, $extraCerts);
$this->getSwiftMessage()->attachSigner($signer);