1

私は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に関連するメモリへの特定の参照( によって参照されるメモリではなく) ではないため、コードはパラメーター 3 で渡されたパスに書き込むことができないというエラーを生成します。一時ファイルを使用する必要がありますが、ファイル コンテンツではなくメモリ コンテンツの使用が大幅に改善され、I/O レイテンシやその他の問題が回避されます。fopen$filepopenssl_pkcs7_verify()

4

0 に答える 0