Funciones de OpenSSL
PHP Manual

openssl_pkcs7_sign

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_pkcs7_signFirma un mensaje S/MIME

Descripción

bool openssl_pkcs7_sign ( string $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

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

flags se puede usar para alterar la salida - véase constantes PKCS7.

extracerts

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ó.

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");
}
?>


Funciones de OpenSSL
PHP Manual