PHP Conference Nagoya 2025

openssl_pkcs7_verify

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

openssl_pkcs7_verifyVérifie la signature d'un message S/MIME

Description

openssl_pkcs7_verify(
    string $input_filename,
    int $flags,
    ?string $signers_certificates_filename = null,
    array $ca_info = [],
    ?string $untrusted_certificates_filename = null,
    ?string $content = null,
    ?string $output_filename = null
): bool|int

openssl_pkcs7_verify() lit le message S/MIME contenu dans le fichier filename et examine la signature digitale.

Liste de paramètres

input_filename

Chemin vers le message.

flags

flags sert à modifier la façon dont la signature est vérifiée. Voyez les constantes PKCS7. Par défaut, la valeur est : PKCS7_DETACHED.

signers_certificates_filename

Si le paramètre signers_certificates_filename est spécifié, il doit être une chaîne contenant le nom d'un fichier qui contient le certificat du signataire, au format PEM.

ca_info

Si le paramètre ca_info est spécifié, il doit contenir les informations sur les tiers de certificats de confiance utilisé lors de la vérification. Voyez vérification des certificats pour plus de détails.

untrusted_certificates_filename

Si le paramètre untrusted_certificates_filename est spécifié, il doit représenter le nom d'un fichier contenant un ensemble de certificats utilisés comme certificats de peu de confiance.

content

Vous pouvez spécifier un nom de fichier avec le paramètre content qui peut être remplit avec les données vérifiées, mais avec les informations de signature.

output_filename

Valeurs de retour

Retourne true si la signature est vérifiée, et false sinon (le message a été modifié, ou bien le certificat de signature est invalide) ou -1 si une erreur survient.

Historique

Version Description
8.0.0 signers_certificates_filename, untrusted_certificates_filename, content et output_filename sont désormais nullable.
7.2.0 Le paramètre output_filename a été ajouté.

Notes

Note: Tel que spécifié dans la RFC 2045, les lignes ne doivent pas être plus longues que 76 caractères dans le paramètre input_filename.

add a note

User Contributed Notes 1 note

up
11
reg1barclay at REMOVETHIS dot live dot it
6 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