openssl_pkcs7_sign

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

openssl_pkcs7_signBir S/MIME iletiyi imzalar

Açıklama

openssl_pkcs7_sign(
    string$girdi_dosyası,
    string$çıktı_dosyası,
    OpenSSLCertificate|string$sertifika,
    OpenSSLAsymmetricKey|OpenSSLCertificate|array|string$gizli_anahtar,
    ?array$başlıklar,
    int$seçenekler = PKCS7_DETACHED,
    ?string$güvenilmez_sertifikalar_dosyası = null
): bool

İleti girdi_dosyası'ndan okunur, sertifika ve bununla ilgili gizli_anahtar kullanılarak imzalanır, elde edilen imzalı ileti çıktı_dosyası'na kaydedilir.

Bağımsız Değişkenler

girdi_dosyası

İmzalanacak girdiyi içeren dosya.

çıktı_dosyası

İmzalanan girdinin kaydedileceği dosya.

sertifika

girdi_dosyasını imzalamakta kullanılacak X.509 sertifikası. Geçerli değerler için bkz: Anahtar/Sertifika bağımsız değişkenleri

gizli_anahtar

sertifika ile ilişkili gizli anahtar. Geçerli değerler için bkz: Gizli/Genel Anahtar bağımsız değişkenleri

başlıklar

İleti imzalandıktan sonra hazırlanan başlıkları içeren bir dizidir. Bu bağımsız değişken ile ilgili ayrıntılı bilgi için openssl_pkcs7_encrypt() işlevine bakınız.

seçenekler

Çıktıda değişiklik yapmak için kullanılır. Bkz: PKCS7 sabitleri.

güvenilmez_sertifikalar_dosyası

Alıcının imzayı doğrulamasına yardımcı olması için imzaya eklenecek sertifikaları içeren dosyanın yolu.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: Açıklama
8.0.0sertifika artık OpenSSLCertificate örneği kabul ediyor; evvelce, OpenSSL X.509 CSR özkaynağı kabul edilirdi.
8.0.0gizli_anahtar artık OpenSSLAsymmetricKey veya OpenSSLCertificate örneği kabul ediyor; evvelce, OpenSSL key veya OpenSSL X.509 CSR özkaynağı kabul edilirdi. was accepted.

Örnekler

Örnek 1 - openssl_pkcs7_sign() örneği

<?php
// Alıcının, iletinin sizden geldiğinden emin olması için
// iletiyi imzalamak istediğinizi varsayalım.
$data = <<<EOD

Ağırlama giderleri için sana 10.000 TL harcama yetkisi veriyorum.

Başkan
EOD;

// İletiyi dosyaya kaydedelim
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);

// şifreleyelim
if (openssl_pkcs7_sign("msg.txt", "signed.txt", "file://mycert.pem",
array(
"file://mycert.pem", "mypassphrase"),
array(
"To" => "joes@example.com", // ilişkisel
"From: HQ <ceo@example.com>", // indisli
"Subject" => "Kişiye özel")
)) {
// ileti imzalandığına göre gönderebiliriz!
exec(ini_get("sendmail_path") . " < signed.txt");
}
?>
To Top