<?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 => 'ja',
  ),
  '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' => 'ja',
    '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>
          暗号化済み/署名済み のメッセージに対して 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> として用いる
          &quot;canonical&quot; フォーマットに変換されます:
          これは、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>
          メッセージを検証する際、
          通常は(もしあれば)メッセージに含まれる証明書を
          署名に用いた証明書として探します。
          このオプションを使うと、
          <span class="function"><a href="function.openssl-cms-verify.php" class="function">openssl_cms_verify()</a></span> 関数の
          <code class="parameter">untrusted_certificates_filename</code>
          引数で指定した証明書だけを検証に使うようになります。
          ここで証明書を指定しても、
          それは信頼されない証明書のまま引き続き使われます。
         </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>
          メッセージに署名する場合、
          通常は署名者の証明書がメッセージに付加されます -
          このオプションを使うと、その証明書を除去できます。
          証明書を除去すると、署名済みのメッセージのサイズが減りますが、
          (たとえば、<span class="function"><a href="function.openssl-cms-verify.php" class="function">openssl_cms_verify()</a></span>
          関数に <code class="parameter">untrusted_certificates_filename</code>
          を使って渡すなどして)
          検証する側が署名者の証明書をローカルに持っておく必要があります。
         </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> を使って、
          平文で署名します。
          これは、<span class="function"><a href="function.openssl-cms-sign.php" class="function">openssl_cms_sign()</a></span>
          で何も <code class="parameter">flags</code>
          を指定しなかったときのデフォルトの動作です。
          このオプションを無効にした場合、メッセージは
          opaque 署名を使って署名されます。
          これは、メールがリレーされる際の変換を防ぐ一方で、
          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 以降で利用可能です。
          メッセージを暗号化する場合に、content-type の値として
          <code class="literal">application/pkcs7-mime</code> ではなく
          <code class="literal">application/x-pkcs7-mime</code> を設定します。
         </td>
        </tr>

       </tbody>
      
     </table>

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