CakeFest 2024: The Official CakePHP Conference

openssl_pkcs7_verify

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

openssl_pkcs7_verifyVerifica la firma de un mensaje S/MIME firmado

Descripción

openssl_pkcs7_verify(
    string $filename,
    int $flags,
    string $outfilename = ?,
    array $cainfo = ?,
    string $extracerts = ?,
    string $content = ?
): mixed

openssl_pkcs7_verify() lee el mensaje S/MIME contenido en el archivo dado y examina la firma digital.

Parámetros

filename

Ruta del mensaje.

flags

flags se puede usar para indicar cómo se verifica la firma - véase constantes PKCS7 para más información.

outfilename

Si se especifica outfilename, debería se una cadena que contiene el nombre de un archivo en el que los certificados de las personas que firmaron los mensajes serán guardados en formato PEM.

cainfo

Si se especifica cainfo, debería contener información sobre los certificados de la AC de confianza para usarla en el proceso de verificación - véase verificación de certificados para más información acerca de este parámetro.

extracerts

Si se especifica extracerts, éste es el nombre de archivo de un archivo que contiene un grupo de certificados que se van a usar como AC que no sea de confianza.

content

Se puede especificar un nombre de archivo con content, que será rellenado con la información verificada, pero con la información de la firma eliminada.

Valores devueltos

Devuelve true si la firma es verificada, false si no es correcta (el mensaje ha sido interferido, o el certificado de firma no es válido), o -1 si se produjo un error.

Historial de cambios

Versión Descripción
5.1.0 Se añadió el parámetro content.

Notas

Nota: Como está especificado en RFC 2045, la líneas no pueden ser más largas de 76 caracteres en el parámetro filename.

add a note

User Contributed Notes 1 note

up
11
reg1barclay at REMOVETHIS dot live dot it
5 years ago
To verify a .p7m file with openssl_pkcs7_verify() you must convert it to S/MIME format. For example...
<?php
function der2smime($file)
{
$to=<<<TXT
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
\n
TXT;
$from=file_get_contents($file);
$to.=chunk_split(base64_encode($from));
return
file_put_contents($file,$to);
}
?>
To Top