openssl_pkcs7_sign

openssl_pkcs7_sign -- Unterzeichnen einer S/MIME Nachricht

Beschreibung

bool openssl_pkcs7_sign ( string infilename, string outfilename, mixed signcert, mixed privkey, array headers [, long flags [, string extracertsfilename]])

Warnung

Diese Funktion ist EXPERIMENTELL . Das Verhalten , der Funktionsname und alles Andere was hier dokumentiert ist , kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern . Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko .

Die Funktion openssl_pkcs7_sign( ) unterzeichnet die Inhalte der Datei , angegeben durch den Pararmeter infilename . Beim Unterzeichnen wird das Zertifikat , angegeben durch signcert , und der dazu gehörige private Schlüssel , angegeben durch privkey , benutzt .

Der Parameter headers ist ein Array aus Headern die den Daten vorangestellt werden , nachdem diese unterzeichnet wurden ( Für mehr Informationen über das Format dieses Parameters schauen Sie bei der Funktion openssl_pkcs7_encrypt( ) nach ) .

Der Parameter flags kann zur Änderung der Ausgabe benutzt werden - siehe PKCS7 Konstanten - falls nicht angegeben ist die Vorgabe PKCS7_DETACHED .

Der Parameter extracertsfilename gibt den Namen einer Datei an , die ein Bündel von extra Zertifikaten enthält , die in die Unterschrift mit eingefügt werden . Das kann zum Beispiel als Hilfe für einen Empfänger dienen , das von Ihnen benutze Zertifikat zu überprüfen .

Beispiel 1 . openssl_pkcs7_sign( ) Beispiel

 
/

 
/

 
Die

 
Nachricht

 
die

 
Sie

 
unterschreiben

 
möchten

 
,

 
damit

 
der

 
Empfänger

 
sicher

 
sein

 
,

 
/

 
/

 
dass

 
diese

 
Nachricht

 
von

 
Ihnen

 
stammt

 
.

 
$data

 
=

 
EOD

 
Sie

 
haben

 
meine

 
Erlaubnis

 
20,000.

 
-

 
DM

 
für

 
Essen

 
auszugeben

 
.




 
Der

 
CEO

 
EOD

 
;

 
/

 
/

 
Nachricht

 
in

 
einer

 
Datei

 
speichern

 
$fp

 
=

 
fopen("msg.txt"

 
,

 
"w")

 
;

 
fwrite($fp

 
,

 
$data)

 
;

 
fclose($fp)

 
;

 
/

 
/

 
encrypt

 
it

 
if

 
(openssl_pkcs7_sign("msg.txt"

 
,

 
"signed.txt"

 
,

 
"mycert.pem"

 
,

 
array("mycert.pem"

 
,

 
"mypassphrase")

 
,

 
array("To

 
"

 
=

 
"joes@sales.com"

 
,

 
/

 
/

 
keyed

 
syntax

 
"From

 
:




 
HQ

 
ceo@sales.com

 
"

 
,

 
/

 
/

 
indexed

 
syntax

 
"Subject

 
"

 
=

 
"Eyes

 
only")

 
)

 
{

 
/

 
/

 
Nachricht

 
unterschrieben

 
-

 
abschicken

 
!

 
exec(ini_get("sendmail_path"

 
)

 
.

 
"

 
signed.txt")

 
;

 
}





Anmerkung : Diese Funktion wurde in 4.0.6 hinzugefügt .