<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.openssl.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'de',
  ),
  'this' => 
  array (
    0 => 'function.openssl-pkcs7-sign.php',
    1 => 'openssl_pkcs7_sign',
    2 => 'Signiert eine S/MIME-Nachricht',
  ),
  'up' => 
  array (
    0 => 'ref.openssl.php',
    1 => 'OpenSSL-Funktionen',
  ),
  'prev' => 
  array (
    0 => 'function.openssl-pkcs7-read.php',
    1 => 'openssl_pkcs7_read',
  ),
  'next' => 
  array (
    0 => 'function.openssl-pkcs7-verify.php',
    1 => 'openssl_pkcs7_verify',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    'path' => 'reference/openssl/functions/openssl-pkcs7-sign.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.openssl-pkcs7-sign" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">openssl_pkcs7_sign</h1>
  <p class="verinfo">(PHP 4 &gt;= 4.0.6, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">openssl_pkcs7_sign</span> &mdash; <span class="dc-title">Signiert eine S/MIME-Nachricht</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.openssl-pkcs7-sign-description">
  <h3 class="title">Beschreibung</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>openssl_pkcs7_sign</strong></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$input_filename</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$output_filename</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><span class="type"><a href="class.opensslcertificate.php" class="type OpenSSLCertificate">OpenSSLCertificate</a></span>|<span class="type"><a href="language.types.string.php" class="type string">string</a></span></span> <code class="parameter">$certificate</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="attribute"><a href="class.sensitiveparameter.php">#[\SensitiveParameter]</a> </span><span class="type"><span class="type"><a href="class.opensslasymmetrickey.php" class="type OpenSSLAsymmetricKey">OpenSSLAsymmetricKey</a></span>|<span class="type"><a href="class.opensslcertificate.php" class="type OpenSSLCertificate">OpenSSLCertificate</a></span>|<span class="type"><a href="language.types.array.php" class="type array">array</a></span>|<span class="type"><a href="language.types.string.php" class="type string">string</a></span></span> <code class="parameter">$private_key</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.array.php" class="type array">array</a></span></span> <code class="parameter">$headers</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$flags</code><span class="initializer"> = <strong><code><a href="openssl.pkcs7.flags.php#constant.pkcs7-detached">PKCS7_DETACHED</a></code></strong></span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.string.php" class="type string">string</a></span></span> <code class="parameter">$untrusted_certificates_filename</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></span></span><br>): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>

  <p class="para rdfs-comment">
   Die Funktion <span class="function"><strong>openssl_pkcs7_sign()</strong></span> nimmt den Inhalt der
   durch <code class="parameter">input_filename</code> angegebenen Datei und signiert
   ihn. Verwendet werden dafür das Zertifikat, angegeben durch
   <code class="parameter">certificate</code>, und der dazugehörige private Schlüssel
   <code class="parameter">private_key</code>.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.openssl-pkcs7-sign-parameters">
  <h3 class="title">Parameter-Liste</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">input_filename</code></dt>
     <dd>
      <p class="para">
       Die Eingabedatei, die digital signiert werden soll.
      </p>
     </dd>
    
    
     <dt><code class="parameter">output_filename</code></dt>
     <dd>
      <p class="para">
       Die Datei, in die die digitale Signatur geschrieben werden soll.
      </p>
     </dd>
    
    
     <dt><code class="parameter">certificate</code></dt>
     <dd>
      <p class="para">
       Das X.509-Zertifikat, das für die digitale Signierung von
       <code class="parameter">input_filename</code> verwendet werden soll. Gültige
       Werte sind dem Abschnitt <a href="openssl.certparams.php" class="link">Schlüssel/Zertifikat-Parameter</a> zu
       entnehmen.
      </p>
     </dd>
    
    
     <dt><code class="parameter">private_key</code></dt>
     <dd>
      <p class="para">
       <code class="parameter">private_key</code> ist der private Schlüssel, der zu
       <code class="parameter">certificate</code> gehört. Gültige Werte sind dem
       Abschnitt <a href="openssl.certparams.php" class="link">Öffentliche/Private
       Schlüssel-Parameter</a> zu entnehmen.
      </p>
     </dd>
    
    
     <dt><code class="parameter">headers</code></dt>
     <dd>
      <p class="para">
       <code class="parameter">headers</code> ist ein Array aus Headern, die den Daten
       vorangestellt werden, nachdem diese signiert wurden (weitere
       Informationen über das Format dieses Parameters sind der Dokumentation
       zu <span class="function"><a href="function.openssl-pkcs7-encrypt.php" class="function">openssl_pkcs7_encrypt()</a></span> zu entnehmen).
      </p>
     </dd>
    
    
     <dt><code class="parameter">flags</code></dt>
     <dd>
      <p class="para">
       <code class="parameter">flags</code> kann zur Änderung der Ausgabe verwendet
       werden - siehe die <a href="openssl.pkcs7.flags.php" class="link">PKCS7-Konstanten</a>.
      </p>
     </dd>
    
    
     <dt><code class="parameter">untrusted_certificates_filename</code></dt>
     <dd>
      <p class="para">
       <code class="parameter">untrusted_certificates_filename</code> gibt den Namen
       einer Datei an, die ein oder mehrere extra Zertifikate enthält, die in
       die Signatur mit eingefügt werden. Das kann zum Beispiel als Hilfe für
       einen Empfänger dienen, das von Ihnen verwendete Zertifikat zu
       überprüfen.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.openssl-pkcs7-sign-returnvalues">
  <h3 class="title">Rückgabewerte</h3>
  <p class="para">
   Gibt bei Erfolg <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> zurück. Bei einem Fehler wird <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> zurückgegeben.
  </p>
 </div>


 <div class="refsect1 changelog" id="refsect1-function.openssl-pkcs7-sign-changelog">
  <h3 class="title">Changelog</h3>
  <table class="doctable informaltable">
   
    <thead>
     <tr>
      <th>Version</th>
      <th>Beschreibung</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>8.0.0</td>
      <td>
       <code class="parameter">certificate</code> akzeptiert nun eine
       <span class="classname"><a href="class.opensslcertificate.php" class="classname">OpenSSLCertificate</a></span>-Instanz; vorher wurde eine
       <a href="language.types.resource.php" class="link">Ressource</a> vom Typ <code class="literal">OpenSSL X.509 CSR</code> akzeptiert.
      </td>
     </tr>

     <tr>
      <td>8.0.0</td>
      <td>
       <code class="parameter">private_key</code> akzeptiert nun eine
       <span class="classname"><a href="class.opensslasymmetrickey.php" class="classname">OpenSSLAsymmetricKey</a></span>- oder
       <span class="classname"><a href="class.opensslcertificate.php" class="classname">OpenSSLCertificate</a></span>-Instanz; vorher wurde eine
       <a href="language.types.resource.php" class="link">Ressource</a> vom Typ <code class="literal">OpenSSL-Schlüssel</code> oder
       <code class="literal">OpenSSL X.509 CSR</code> akzeptiert.
      </td>
     </tr>

    </tbody>
   
  </table>

 </div>


 <div class="refsect1 examples" id="refsect1-function.openssl-pkcs7-sign-examples">
  <h3 class="title">Beispiele</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Beispiel #1 <span class="function"><strong>openssl_pkcs7_sign()</strong></span>-Beispiel</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">// Die Nachricht,  die Sie signieren möchten, damit der Empfänger sicher<br />// sein kann, dass diese Nachricht von Ihnen stammt.<br /><br /></span><span style="color: #0000BB">$data </span><span style="color: #007700">= &lt;&lt;&lt;EOD<br /></span><span style="color: #DD0000"><br />Sie haben meine Erlaubnis 10.000 EUR für Essen auszugeben.<br /><br />Der CEO<br /></span><span style="color: #007700">EOD;<br /></span><span style="color: #FF8000">// Nachricht in einer Datei speichern<br /></span><span style="color: #0000BB">$fp </span><span style="color: #007700">= </span><span style="color: #0000BB">fopen</span><span style="color: #007700">(</span><span style="color: #DD0000">"msg.txt"</span><span style="color: #007700">, </span><span style="color: #DD0000">"w"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">fwrite</span><span style="color: #007700">(</span><span style="color: #0000BB">$fp</span><span style="color: #007700">, </span><span style="color: #0000BB">$data</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">fclose</span><span style="color: #007700">(</span><span style="color: #0000BB">$fp</span><span style="color: #007700">);<br /></span><span style="color: #FF8000">// Verschlüsseln<br /></span><span style="color: #007700">if (</span><span style="color: #0000BB">openssl_pkcs7_sign</span><span style="color: #007700">(</span><span style="color: #DD0000">"msg.txt"</span><span style="color: #007700">, </span><span style="color: #DD0000">"signed.txt"</span><span style="color: #007700">, </span><span style="color: #DD0000">"mycert.pem"</span><span style="color: #007700">,<br />    array(</span><span style="color: #DD0000">"file://mycert.pem"</span><span style="color: #007700">, </span><span style="color: #DD0000">"mypassphrase"</span><span style="color: #007700">),<br />    array(</span><span style="color: #DD0000">"To" </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"joes@example.com"</span><span style="color: #007700">, </span><span style="color: #FF8000">// keyed syntax<br />          </span><span style="color: #DD0000">"From: HQ &lt;ceo@example.com&gt;"</span><span style="color: #007700">, </span><span style="color: #FF8000">// indexed syntax<br />          </span><span style="color: #DD0000">"Subject" </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"Eyes only"</span><span style="color: #007700">)<br />    )) {<br />    </span><span style="color: #FF8000">// Nachricht signiert - abschicken!<br />    </span><span style="color: #0000BB">exec</span><span style="color: #007700">(</span><span style="color: #0000BB">ini_get</span><span style="color: #007700">(</span><span style="color: #DD0000">"sendmail_path"</span><span style="color: #007700">) . </span><span style="color: #DD0000">" &lt; signed.txt"</span><span style="color: #007700">);<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
 </div>


</div><?php manual_footer($setup); ?>