downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

openssl_pkey_export_to_file> <openssl_pkcs7_sign
Last updated: Fri, 30 Oct 2009

view this page in

openssl_pkcs7_verify

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_verifyüberprüft die Unterschrift einer mit S/MIME unterschriebenen Nachricht

Beschreibung

mixed openssl_pkcs7_verify ( string $filename , int $flags [, string $outfilename [, array $cainfo [, string $extracerts [, string $content ]]]] )

openssl_pkcs7_verify() liest die in der angegebenen Datei enthaltene S/MIME Nachricht und untersucht die digitale Signatur.

Parameter-Liste

filename

Pfad zur Datei.

flags

Mit dem Parameter flags wird beeinflusst auf welche Art die Signatur verifiziert wird. Für mehr Informationen siehe PKCS7 Konstanten

outfilename

Wird der Parameter outfilename angegeben, sollte dies eine Zeichenkette sein, die den Namen einer Datei enthält, in der das Zertifikat der unterzeichnenden Person im PEM Format gespeichert wird.

cainfo

Der Parameter cainfo sollte sofern angegeben Informationen über die vertrauenswürdigen CA Zertifikate enthalten, die für den Überprüfungsprozess benutzt werden. Für weitere Informationen siehe Zertifikat Nachweis

extracerts

Wird der Parameter extracerts angegeben, ist es der Name einer Datei, die ein mehrere extra Zertifikate enthält, die als nicht vertrauenswürdige CAs genutzt werden.

content

content ist der Name einer Datei die mit den verifizierten Daten gefüllt wird, jedoch ohne Signaturinformationen.

Rückgabewerte

Gibt TRUE zurück wenn die Signatur verifiziert werden konnte, FALSE wenn die Signatur nicht korrekt ist (die Daten wurden verändert oder das signierende Zertifikat ist ungültig). Im Falle eines Fehlers wird -1 zurückgegeben.

Changelog

Version Beschreibung
5.1.0 Der Parameter content wurde hinzugefügt.



add a note add a note User Contributed Notes
openssl_pkcs7_verify
hema
29-Sep-2006 09:39
As someone already mentioned in the previous comment it didn't work for me until I passed in that hidden sixth argument and also explicitly add the mime header into the $in_filename contents. (I am using PHP5)

 $data = file_get_contents($in_filename);

 file_put_contents($in_filename, "MIME-Version: 1.0\nContent-Disposition: attachment; filename=\"smime.p7m\"\nContent-Type: app
lication/x-pkcs7-mime; name=\"smime.p7m\"\nContent-Transfer-Encoding: base64\n\n$data");

 openssl_pkcs7_verify("$in_filename",
                              $flag,
                              "$out_filename.cert",
                              array($path_to_cert),
                              $path_to_cert,
                              $out_filename));
14-Feb-2006 12:59
There is a hidden sixth argument: string pointing to a file where the contents of the signed message should be saved.

It is very important for verifying signed and encrypted messages from MS Outlook which uses opaque signing. After decrypting of message you will get another MIME envelope like this:

MIME-Version: 1.0
Content-Disposition: attachment; filename="smime.p7m"
Content-Type: application/x-pkcs7-mime; smime-type=signed-data; name="smime.p7m"
Content-Transfer-Encoding: base64

MIIM/QYJ...

Even if you use base64_decode() you will not get decrypted message but PKCS #7 object.

BTW: How to create opaque signed message like from MS Outlook? Switch off PKCS7_DETACHED flag (the last 0 does it):
openssl_pkcs7_sign(
    "full_path_to_message_file",
    "full_path_where_to_store_signed_message_file",
    "file://full_path_to_my_public_certificate.pem",
    array("file://full_path_to_my_private_key.pem", "password"),
    array(),
    0
  );

openssl_pkey_export_to_file> <openssl_pkcs7_sign
Last updated: Fri, 30 Oct 2009
 
 
show source | credits | sitemap | contact | advertising | mirror sites