<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/openssl.constants.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ru',
  ),
  'this' => 
  array (
    0 => 'openssl.cms.flags.php',
    1 => 'Константы-флаги стуктур CMS',
    2 => 'Константы-флаги стуктур CMS',
  ),
  'up' => 
  array (
    0 => 'openssl.constants.php',
    1 => 'Предопределённые константы',
  ),
  'prev' => 
  array (
    0 => 'openssl.pkcs7.flags.php',
    1 => 'Константы-флаги структур PKCS7',
  ),
  'next' => 
  array (
    0 => 'openssl.signature-algos.php',
    1 => 'Алгоритмы подписи',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ru',
    'path' => 'reference/openssl/constants.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="openssl.cms.flags" class="section">
  <h2 class="title">Константы-флаги стуктур <abbr>CMS</abbr></h2>
  <p class="para">
   Функции для работы с CMS-сообщениями принимают флаги, которые определяют как битовое поле.
   Поле битов включает одно или набор следующих значений:
   <table class="doctable table">
    <caption><strong>Константы <abbr>CMS</abbr></strong></caption>
    
     <thead>
      <tr>
       <th>Константа</th>
       <th>Описание</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr id="constant.openssl-cms-text">
       <td>
        <strong><code><a href="openssl.cms.flags.php#constant.openssl-cms-text">OPENSSL_CMS_TEXT</a></code></strong>
        (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
       </td>
       <td>
        Добавляет заголовки content-type text/plain в зашифрованное/подписанное
        сообщение. При расшифровке или проверке эти заголовки удаляются из вывода —
        если расшифрованное или проверенное сообщение не относится к MIME-типу
        text/plain, произойдёт ошибка.
       </td>
      </tr>

      <tr id="constant.openssl-cms-binary">
       <td>
        <strong><code><a href="openssl.cms.flags.php#constant.openssl-cms-binary">OPENSSL_CMS_BINARY</a></code></strong>
        (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
       </td>
       <td>
        Обычно входное сообщение преобразовывается в «каноничный» формат, который
        эффективно использует символы <code class="literal">CR</code> и <code class="literal">LF</code>
        в качестве конца строки: как требует спецификация CMS. Когда
        присутствует эта опция, перевод не выполняется. Это полезно при обработке
        двоичных данных, которые могут быть не в формате CMS.
       </td>
      </tr>

      <tr id="constant.openssl-cms-nointern">
       <td>
        <strong><code><a href="openssl.cms.flags.php#constant.openssl-cms-nointern">OPENSSL_CMS_NOINTERN</a></code></strong>
        (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
       </td>
       <td>
        При проверке сообщения сертификаты (если есть), включённые в сообщение,
        обычно проверяются на наличие сертификата подписи. С этой опцией используются
        только сертификаты, указанные в параметре <code class="parameter">untrusted_certificates_filename</code>
        функции <span class="function"><a href="function.openssl-cms-verify.php" class="function">openssl_cms_verify()</a></span>.
        Однако предоставленные сертификаты можно использовать как ненадёжные центры сертификации.
       </td>
      </tr>

      <tr id="constant.openssl-cms-noverify">
       <td>
        <strong><code><a href="openssl.cms.flags.php#constant.openssl-cms-noverify">OPENSSL_CMS_NOVERIFY</a></code></strong>
        (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
       </td>
       <td>
        Не проверять сертификат подписавшего у подписанного сообщения.
       </td>
      </tr>

      <tr id="constant.openssl-cms-nocerts">
       <td>
        <strong><code><a href="openssl.cms.flags.php#constant.openssl-cms-nocerts">OPENSSL_CMS_NOCERTS</a></code></strong>
        (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
       </td>
       <td>
        При подписании сообщения сертификат подписывающей стороны обычно
        включается — с этой опцией он исключается. Это уменьшит размер
        подписанного сообщения, но у проверяющего должна быть копия сертификата
        подписавшего, доступная локально (например, переданная в параметр <code class="parameter">untrusted_certificates_filename</code>
        функции <span class="function"><a href="function.openssl-cms-verify.php" class="function">openssl_cms_verify()</a></span>).
       </td>
      </tr>

      <tr id="constant.openssl-cms-noattr">
       <td>
        <strong><code><a href="openssl.cms.flags.php#constant.openssl-cms-noattr">OPENSSL_CMS_NOATTR</a></code></strong>
        (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
       </td>
       <td>
        Обычно при подписании сообщения включается набор атрибутов,
        который включает время подписи и поддерживаемые симметричные алгоритмы.
        С этой опцией они не включены.
       </td>
      </tr>

      <tr id="constant.openssl-cms-detached">
       <td>
        <strong><code><a href="openssl.cms.flags.php#constant.openssl-cms-detached">OPENSSL_CMS_DETACHED</a></code></strong>
        (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
       </td>
       <td>
        При подписании сообщения используйте подпись открытым текстом с MIME-типом
        <code class="literal">&quot;multipart/signed&quot;</code>. Это значение по умолчанию,
        если вы не укажете никаких <code class="parameter">flags</code> для
        <span class="function"><a href="function.openssl-cms-sign.php" class="function">openssl_cms_sign()</a></span>.
        Если вы отключите эту опцию, сообщение будет подписано с использованием
        непрозрачной подписи, которая более устойчива к переводу почтовыми
        ретрансляторами, но не может быть прочитана почтовыми агентами,
        не поддерживающими S/MIME.
       </td>
      </tr>

      <tr id="constant.openssl-cms-nosigs">
       <td>
        <strong><code><a href="openssl.cms.flags.php#constant.openssl-cms-nosigs">OPENSSL_CMS_NOSIGS</a></code></strong>
        (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
       </td>
       <td>Не пытаться проверять подписи в сообщении</td>
      </tr>

      <tr id="constant.openssl-cms-oldmimetype">
       <td>
        <strong><code><a href="openssl.cms.flags.php#constant.openssl-cms-oldmimetype">OPENSSL_CMS_OLDMIMETYPE</a></code></strong>
        (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
       </td>
       <td>
        Доступно начиная с PHP 8.3.0.
        Устанавливает тип содержимого <code class="literal">application/x-pkcs7-mime</code>
        вместо <code class="literal">application/pkcs7-mime</code> для шифрования сообщения.
       </td>
      </tr>

     </tbody>
    
   </table>

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