PHP 8.4.2 Released!

openssl_pkcs7_verify

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

openssl_pkcs7_verifyVerifica a assinatura de uma mensagem assinada por S/MIME

Descrição

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() lê a mensagem S/MIME contida no arquivo fornecido e examina a assinatura digital.

Parâmetros

input_filename

Caminho para a o arquivo com a mensagem.

flags

flags contém opções que podem ser usadas ​​para afetar como a assinatura é verificada - consulte constantes PKCS7 para obter mais informações.

signers_certificates_filename

Se o signers_certificates_filename for especificado, deverá ser uma string contendo o nome de um arquivo no qual os certificados das pessoas que assinaram as mensagens serão armazenados no formato PEM.

ca_info

Se ca_info for especificado, ele deverá conter informações sobre os certificados de CA confiáveis ​​a serem usados ​​no processo de verificação - consulte verificação de certificado para obter mais informações informações sobre este parâmetro.

untrusted_certificates_filename

Se untrusted_certificates_filename for especificado, é o nome de um arquivo que contém vários certificados para usar como CAs não confiáveis.

content

Pode ser especificado um nome de arquivo com content que será preenchido com os dados verificados, mas sem as informações da assinatura.

output_filename

Valor Retornado

Retorna true se a assinatura for verificada, false se não estiver correto (a mensagem foi adulterada ou o certificado de assinatura é inválido) ou -1 em caso de erro.

Registro de Alterações

Versão Descrição
8.0.0 signers_certificates_filename, untrusted_certificates_filename, content e output_filename agora podem ser nulos.
7.2.0 O parâmetro output_filename foi adicionado.

Notas

Nota: Como especificado na RFC 2045, as linhas não podem ser mais longas que 76 caracteres no arquivo informado em input_filename.

adicione uma nota

Notas Enviadas por Usuários (em inglês) 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