可以openssl pkcs7_verify接受文件指针吗?

时间:2013-11-08 09:35:06

标签: php php-openssl

我使用openssl_pkcs7_verify()http://www.php.net/manual/en/function.openssl-pkcs7-verify.php)来验证带有smime(p7s)信息的签名邮件内容。这个函数对我来说很有用,但是我想把它用于存储在内存包装器上的内容(php:// memory或php:// temp),openssl_pkcs7_verify()只接受文件路径作为参数而不是文件指针(如我可以从fopen(' php:// memory',...)获得,我试图使用这段代码:

  $filep = fopen('php://memory', 'wb+');
  $file_metadata = stream_get_meta_data($filep);
  $filename = $file_metadata["uri"];
  openssl_pkcs7_verify($filename, PKCS7_NOVERIFY, $filename)

但显然$filename包含php://memory,并没有特别提及与fopen调用相关的内存(而不是$filep引用的内存),因此代码会生成错误openssl_pkcs7_verify()无法在参数3上传递的路径上写入。 它迫使我使用临时文件,但在内存内容和文件内容方面可能是一个很大的改进,避免了I / O延迟和其他问题。

0 个答案:

没有答案