openssl_pkcs7_sign
(PHP 4 >= 4.0.6, PHP 5)
openssl_pkcs7_sign — Firma un mensaje S/MIME
Descripción
$infilename
, string $outfilename
, mixed $signcert
, mixed $privkey
, array $headers
[, int $flags = PKCS7_DETACHED
[, string $extracerts
]] )
openssl_pkcs7_sign() toma el contenido del archivo
nombrado por infilename y lo firma usando el
certificado y su clave privada coincidente especificados por los
parámetros signcert y
privkey.
Parámetros
-
infilename -
-
outfilename -
-
signcert -
-
privkey -
-
headers -
headerses una matriz de cabeceras que serán añadidas delante de la información después de que se haya firmado (véase openssl_pkcs7_encrypt() para más información acerca del formato de este parámetro). -
flags -
flagsse puede usar para alterar la salida - véase constantes PKCS7. -
extracerts -
extracertsespecifica el nombre de un archivo que contiene un grupo de certificados extra, para incluir en la firma, que puede ser usado para, por ejemplo, ayudar al destinatario a verificar el certificado que se usó.
Valores devueltos
Devuelve TRUE en caso de éxito o FALSE en caso de error.
Ejemplos
Ejemplo #1 Ejemplo de openssl_pkcs7_sign()
<?php
// el mensaje que quiere firmar, por lo que el destinatario puede estar serguro de fue usted
// el que lo envió
$data = <<<EOD
Tiene mi autorización para emplear $10,000 en gastos de comida.
El Presidente
EOD;
// guardar el mensaje en un archivo
$fp = fopen("mensaje.txt", "w");
fwrite($fp, $data);
fclose($fp);
// encriptarlo
if (openssl_pkcs7_sign("mensaje.txt", "firmado.txt", "micert.pem",
array("file://micert.pem", "mi_frase_de_contraseña"),
array("Para" => "joes@example.com", // sintaxis asociativa
"DE: C.G. <presidente@example.com>", // sintaxis indexada
"Tema" => "Confidencial")
)) {
// mensaje firmado - ¡envíelo!
exec(ini_get("ruta_correo") . " < firmado.txt");
}
?>