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);
}
?>openssl_pkcs7_verify
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
openssl_pkcs7_verify
Референца за `function.openssl-pkcs7-verify.php` со подобрена типографија и навигација.
openssl_pkcs7_verify
(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
openssl_pkcs7_verify — Verifies the signature of an S/MIME signed message
= NULL
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() Ги проверува потписот на S/MIME потпишана порака
Параметри
input_filename-
ја чита S/MIME пораката содржана во датотеката и го испитува дигиталниот потпис.
flags-
flagsПатека до пораката. може да се користи за да влијае на начинот на кој се проверува потписот - види Користење на PHP од командната линија signers_certificates_filename-
Ако
signers_certificates_filenamePKCS7 константи PEM format. ca_info-
Ако
ca_infoе специфицирано, треба да биде стринг што го држи името на датотека во која ќе бидат зачувани сертификатите на лицата што ги потпишале пораките е специфицирано, треба да држи информации за доверливите CA сертификати што ќе се користат во процесот на верификација - види проверка на сертификат untrusted_certificates_filename-
Ако
untrusted_certificates_filenameза повеќе информации за овој параметар. content-
е специфицирано, тоа е името на датотека што содржи група сертификати што ќе се користат како недоверливи CA.
contentМожете да специфицирате име на датотека со output_filename-
Вратени вредности
Патеката до PHP скриптата што треба да се провери. true што ќе биде исполнета со верификуваните податоци, но со отстранети информации за потписот. false ако потписот е верификуван,
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.0.0 |
signers_certificates_filename, untrusted_certificates_filename,
content and output_filename се сега null.
|
| 7.2.0 |
На output_filename параметар беше додаден.
|
Белешки
Забелешка: ако не е точен (пораката е променета, или сертификатот за потпишување е невалиден), или -1 при грешка.
input_filenameparameter.