3

私は DER 署名付きファイルを持っていて、彼のコンテンツを抽出して署名を削除したいと思っています... PHP の openssl_pkcs7_verify 関数は、PEM 署名付きファイルでのみ機能します。これが私が最初に発見したことです。そのため、コンテンツをbase64でエンコードし、ファイルに保存して、再度ラップを解除しようとしました。

何もありません。まだ次のエラーが発生します。

エラー:02001000:システム ライブラリ:fopen:システム ライブラリ

エラー:2006D002:BIO ルーチン:BIO_new_file:システム ライブラリ

これは私のコードからの抜粋です:

$nomeFileEstratto = substr($nomeFileP7M,0,-4);
$nomeTemporaneoP7M = $_SERVER['DOCUMENT_ROOT'].'/temp/'.basename($nomeFileP7M);
$nomeTemporaneoEstratto = $_SERVER['DOCUMENT_ROOT'].'/temp/'.basename($nomeFileEstratto);

//Salvo il file p7m nella cartella temporanea
file_put_contents($nomeTemporaneoP7M,$this->der2pem($contenutoFileP7M));

//Estrazione dei dati
//exec('openssl smime -decript -in \''.$nomeTemporaneoP7M.'\' -inform DER -verify -noverify -out \''.$nomeTemporaneoEstratto.'\'');
openssl_pkcs7_verify($nomeTemporaneoP7M, PKCS7_NOVERIFY, null, array(), null, $nomeTemporaneoEstratto);

システムコールを使用できないことに注意してください。

私も ANS1PHP と PHPSECLIB に落ちましたが、私の目的のためにそれらを使用する方法を推測していません。

4

0 に答える 0