(PHP 4 >= 4.0.6, PHP 5)
openssl_pkcs7_sign — Firma un mensaje S/MIME
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.
headers es 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 se puede usar para alterar la salida - véase constantes PKCS7.
extracerts especifica 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ó.
Devuelve TRUE en caso de éxito o FALSE en caso de error.
Example #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");
}
?>