protected function assertValidVerify($expected, Swift_ByteStream_TemporaryFileByteStream $messageStream)
{
$actual = $messageStream->getContent();
// File is UNIX encoded so convert them to correct line ending
$expected = str_replace("\n", "\r\n", $expected);
$actual = trim(self::getBodyOfMessage($actual));
if (!$this->assertRegExp('%^' . $expected . '$\\s*%m', $actual)) {
return false;
}
$opensslOutput = new Swift_ByteStream_TemporaryFileByteStream();
$verify = openssl_pkcs7_verify($messageStream->getPath(), null, $opensslOutput->getPath(), array($this->samplesDir . 'smime/ca.crt'));
if (false === $verify) {
$this->fail('Verification of the message failed.');
return false;
} elseif (-1 === $verify) {
$this->fail(sprintf('Verification of the message failed. Internal error "%s".', openssl_error_string()));
return false;
}
return true;
}