Qualcuno saprebbe dirmi perchè la funzione openssl_pkcs7_verify() mi torna sempre il valore -1 durante la verifica di un file firmato ?
Girando in rete ho capito che i messaggi devono essere nella versione mime 1.0 ed il file formattato in righe da 64 caratteri in più sui evince che il 4° parametor da passare alla suddetta funzione deve essere un array contenente il percorso e il nome del certificato da utilizzare per la verifica ( non si evince se si puo utilizzare il formato pem ) il codice che uso è il seguente
Codice PHP:
<?php
// OPERAZIONE DI RIFORTMATTAZIONE DEL FILE CON STANDARD MIME 1.0
$signature = file_get_contents( "lista.p7m" ) ;
$signature = chunk_split($signature,64);
$signature = "MIME-Version: 1.0\nContent-Disposition: attachment;
filename=\"lista.p7m\"\nContent-Type: application/x-pkcs7-mime;
name=\"lista.p7m\"\nContent-Transfer-Encoding: base64\n\n" . $signature;
// ARRAY DEI CERTIFICATI
$ca = array();
$ca[0] = "c:\ca.pem";
$sign_cert_file = "sign_cert_file";
$tmpfile = "temp_sig_file";
$handler = fopen($tmpfile,"w");
fwrite($handler, "$signature");
fclose ($handler);
$status = openssl_pkcs7_verify ( $tmpfile , PKCS7_BINARY , $sign_cert_file, $ca);
echo $status;
?>
la struttura mi stampa sempre -1 sto impazzendo help please