protected function toSMimeByteStream(Swift_InputByteStream $inputStream, Swift_Message $message)
{
$mimeEntity = $this->createMessage($message);
$messageStream = new Swift_ByteStream_TemporaryFileByteStream();
$mimeEntity->toByteStream($messageStream);
$messageStream->commit();
if (null !== $this->signCertificate && null !== $this->encryptCert) {
$temporaryStream = new Swift_ByteStream_TemporaryFileByteStream();
if ($this->signThenEncrypt) {
$this->messageStreamToSignedByteStream($messageStream, $temporaryStream);
$this->messageStreamToEncryptedByteStream($temporaryStream, $inputStream);
} else {
$this->messageStreamToEncryptedByteStream($messageStream, $temporaryStream);
$this->messageStreamToSignedByteStream($temporaryStream, $inputStream);
}
} elseif ($this->signCertificate !== null) {
$this->messageStreamToSignedByteStream($messageStream, $inputStream);
} else {
$this->messageStreamToEncryptedByteStream($messageStream, $inputStream);
}
}