PHP Conference Nagoya 2025

openssl_pkcs7_verify

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

openssl_pkcs7_verifyS/MIME imzalı bir iletinin imzasını doğrular

Açıklama

openssl_pkcs7_verify(
    string $girdi_dosyası,
    int $seçenekler,
    ?string $imzacı_sertifikaları_dosyası = null,
    array $CA_bilgisi = [],
    ?string $güvenilmez_sertifikalar_dosyası = null,
    ?string $içerik = null,
    ?string $çıktı_dosyası = null
): bool|int

S/MIME imzalı iletiyi içeren girdi_dosyası okunur ve iletinin imzası doğrulanmaya çalışılır.

Bağımsız Değişkenler

girdi_dosyası

İletinin bulunduğu dosyanın yolu.

seçenekler

İmzanın nasıl doğrulanacağı belirtilir. Ayrıntılı bilgi için PKCS7 sabitlerine bakınız.

imzacı_sertifikaları_dosyası

Belirtildiği takdirde, iletileri imzalamakta kullanılan sertifikaların PEM biçemli olarak saklandığı dosyanın yolu olmalıdır.

CA_bilgisi

Belirtildiği takdirde, doğrulama işleminde kullanılacak güvenilir CA sertifikaları hakkında bilgileri içeren bir dizi olmalıdır. Ayrıntılı bilgi için Sertifika Doğrulama bölümüne bakınız.

güvenilmez_sertifikalar_dosyası

Belirtildiği takdirde, güvenilmez CA'lar olarak kullanılacak sertifikaların bulunduğu dosyanın yolu olmalıdır.

içerik

çıktı_dosyası

Belirtildiği takdirde, imzası doğrulanmış iletinin içeriği imzasız olarak bu dosyaya kaydedilir.

Dönen Değerler

İmza doğru ise true, değilse (ileti kurcalanmışsa veya sertifika geçersizse) false, işlem sırasında bir hata oluşmuşsa -1 döner.

Sürüm Bilgisi

Sürüm: Açıklama
8.0.0 imzacı_sertifikaları_dosyası, güvenilmez_sertifikalar_dosyası, içerik ve çıktı_dosyası artık null olabiliyor.
7.2.0 çıktı_dosyası bağımsız değişkeni eklendi.

Notlar

Bilginize: RFC 2045'te belirtildiği gibi, girdi_dosyası satırları 76 karakterden uzun olamaz.

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