There is a hidden sixth argument: string pointing to a file where the contents of the signed message should be saved.
It is very important for verifying signed and encrypted messages from MS Outlook which uses opaque signing. After decrypting of message you will get another MIME envelope like this:
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
MIIM/QYJ...
Even if you use base64_decode() you will not get decrypted message but PKCS #7 object.
BTW: How to create opaque signed message like from MS Outlook? Switch off PKCS7_DETACHED flag (the last 0 does it):
<?php
openssl_pkcs7_sign(
"full_path_to_message_file",
"full_path_where_to_store_signed_message_file",
"file://full_path_to_my_public_certificate.pem",
array("file://full_path_to_my_private_key.pem", "password"),
array(),
0
);
?>
openssl_pkcs7_verify
(PHP 4 >= 4.0.6, PHP 5)
openssl_pkcs7_verify — S/MIME imzalı bir iletinin imzasını doğrular
Açıklama
$dosya
, int $seçenekler
[, string $sertifikalar
[, array $CA_bilgisi
[, string $ek_sertifikalar
[, string $çıktı_dosyası
]]]] )
S/MIME imzalı iletiyi içeren dosya okunur ve
iletinin imzası doğrulanmaya çalışılır.
Değiştirgeler
-
dosya -
İ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.
-
sertifikalar -
Belirtildiği takdirde, şahsın iletileri imzalamakta kullandığı 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.
-
ek_sertifikalar -
Belirtildiği takdirde, güvenilmez CA'lar olarak kullanılacak sertifikaların bulunduğu dosyanın yolu olmalıdır.
-
çı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 |
|---|---|
| 5.1.0 |
çıktı_dosyası değiştirgesi eklendi.
|
