<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/class.mongodb-driver-clientencryption.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'mongodb-driver-clientencryption.createdatakey.php',
    1 => 'MongoDB\\Driver\\ClientEncryption::createDataKey',
    2 => 'Crear un documento clave',
  ),
  'up' => 
  array (
    0 => 'class.mongodb-driver-clientencryption.php',
    1 => 'MongoDB\\Driver\\ClientEncryption',
  ),
  'prev' => 
  array (
    0 => 'mongodb-driver-clientencryption.construct.php',
    1 => 'MongoDB\\Driver\\ClientEncryption::__construct',
  ),
  'next' => 
  array (
    0 => 'mongodb-driver-clientencryption.decrypt.php',
    1 => 'MongoDB\\Driver\\ClientEncryption::decrypt',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/mongodb/mongodb/driver/clientencryption/createdatakey.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="mongodb-driver-clientencryption.createdatakey" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">MongoDB\Driver\ClientEncryption::createDataKey</h1>
  <p class="verinfo">(mongodb &gt;=1.7.0)</p><p class="refpurpose"><span class="refname">MongoDB\Driver\ClientEncryption::createDataKey</span> &mdash; <span class="dc-title">Crear un documento clave</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-mongodb-driver-clientencryption.createdatakey-description">
  <h3 class="title">Descripción</h3>
  <div class="methodsynopsis dc-description">
   <span class="modifier">final</span> <span class="modifier">public</span> <span class="methodname"><strong>MongoDB\Driver\ClientEncryption::createDataKey</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$kmsProvider</code></span>, <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">$options</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></span></span>): <span class="type"><a href="class.mongodb-bson-binary.php" class="type MongoDB\BSON\Binary">MongoDB\BSON\Binary</a></span></div>

  <p class="para rdfs-comment">
   Crear un nuevo documento clave e insertarlo en la colección de claves.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-mongodb-driver-clientencryption.createdatakey-parameters">
  <h3 class="title">Parámetros</h3>
  <dl>
   
    <dt><code class="parameter">kmsProvider</code></dt>
    <dd>
     <p class="para">
      El proveedor KMS (por ejemplo <code class="literal">&quot;local&quot;</code>,
      <code class="literal">&quot;aws&quot;</code>) que se utilizará para cifrar el nuevo documento clave.
     </p>
    </dd>
   

   
    <dt><code class="parameter">options</code></dt>
    <dd>
     <p class="para">
      <table class="doctable table">
       <caption><strong>Opciones de datos de clave</strong></caption>
       
        <thead>
         <tr>
          <th>Opción</th>
          <th>Tipo</th>
          <th>Descripción</th>
         </tr>

        </thead>

        <tbody class="tbody">
         <tr>
          <td>masterKey</td>
          <td><span class="type"><a href="language.types.array.php" class="type array">array</a></span></td>
          <td>
           <p class="para">
            El documento masterKey identifica una clave específica de KMS utilizada para
            cifrar el nuevo documento clave. Esta opción es requerida a menos que
            <code class="parameter">kmsProvider</code> sea <code class="literal">&quot;local&quot;</code>.
           </p>
           
  <p class="para">
   <table class="doctable table">
    <caption><strong>Opciones del proveedor <code class="literal">&quot;aws&quot;</code></strong></caption>
    
     <thead>
      <tr>
       <th>Opción</th>
       <th>Tipo</th>
       <th>Descripción</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>region</td>
       <td>string</td>
       <td>Requis.</td>
      </tr>

      <tr>
       <td>key</td>
       <td>string</td>
       <td>Requis. El nombre de recurso Amazon (ARN) de la clave maestra del cliente AWS (CMK).</td>
      </tr>

      <tr>
       <td>endpoint</td>
       <td>string</td>
       <td>Opcional. Un identificador de host alternativo para enviar las solicitudes KMS. Puede incluir el número de puerto.</td>
      </tr>

     </tbody>
    
   </table>

  </p>
  <p class="para">
   <table class="doctable table">
    <caption><strong>Opciones del proveedor <code class="literal">&quot;azure&quot;</code></strong></caption>
    
     <thead>
      <tr>
       <th>Opción</th>
       <th>Tipo</th>
       <th>Descripción</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>keyVaultEndpoint</td>
       <td>string</td>
       <td>Requis. Host con puerto opcional (por ejemplo, &quot;example.vault.azure.net&quot;).</td>
      </tr>

      <tr>
       <td>keyName</td>
       <td>string</td>
       <td>Requis.</td>
      </tr>

      <tr>
       <td>keyVersion</td>
       <td>string</td>
       <td>Opcional. Una versión específica de la clave nombrada. Por omisión, se utiliza la versión primaria de la clave.</td>
      </tr>

     </tbody>
    
   </table>

  </p>
  <p class="para">
   <table class="doctable table">
    <caption><strong>Opciones del proveedor <code class="literal">&quot;gcp&quot;</code></strong></caption>
    
     <thead>
      <tr>
       <th>Opción</th>
       <th>Tipo</th>
       <th>Descripción</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>projectId</td>
       <td>string</td>
       <td>Requis.</td>
      </tr>

      <tr>
       <td>location</td>
       <td>string</td>
       <td>Requis.</td>
      </tr>

      <tr>
       <td>keyRing</td>
       <td>string</td>
       <td>Requis.</td>
      </tr>

      <tr>
       <td>keyName</td>
       <td>string</td>
       <td>Requis.</td>
      </tr>

      <tr>
       <td>keyVersion</td>
       <td>string</td>
       <td>Opcional. Una versión específica de la clave nombrada. Por omisión, se utiliza la versión primaria de la clave.</td>
      </tr>

      <tr>
       <td>endpoint</td>
       <td>string</td>
       <td>Opcional. Host con puerto opcional. El valor por omisión es &quot;cloudkms.googleapis.com&quot;.</td>
      </tr>

     </tbody>
    
   </table>

  </p>
  <p class="para">
   <table class="doctable table">
    <caption><strong>Opciones del proveedor <code class="literal">&quot;kmip&quot;</code></strong></caption>
    
     <thead>
      <tr>
       <th>Opción</th>
       <th>Tipo</th>
       <th>Descripción</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>keyId</td>
       <td>string</td>
       <td>Opcional. Identificador único de un objeto gestionado de 96 bytes de datos secretos KMIP. Si no se especifica, el controlador crea un objeto gestionado aleatorio de 96 bytes de datos secretos KMIP.</td>
      </tr>

      <tr>
       <td>endpoint</td>
       <td>string</td>
       <td>Opcional. Host con puerto opcional.</td>
      </tr>

      <tr>
       <td>delegated</td>
       <td>bool</td>
       <td>Opcional. Si es verdadero, esta clave debe ser descifrada por el servidor KMIP.</td>
      </tr>

     </tbody>
    
   </table>

  </p>

          </td>
         </tr>

         <tr>
          <td>keyAltNames</td>
          <td><span class="type"><a href="language.types.array.php" class="type array">array</a></span></td>
          <td>
           <p class="para">
            Una lista opcional de nombres alternativos de string utilizados para referenciar una clave.
            Si una clave se crea con nombres alternativos, entonces el cifrado puede referirse
            a la clave por el nombre alternativo único en lugar de por
            <code class="literal">_id</code>.
           </p>
          </td>
         </tr>

         <tr>
          <td>keyMaterial</td>
          <td><span class="classname"><a href="class.mongodb-bson-binary.php" class="classname">MongoDB\BSON\Binary</a></span></td>
          <td>
           <p class="para">
            Un valor opcional de 96 bytes a utilizar como material de clave
            para el documento clave en curso de creación. Si keyMaterial es dado,
            el material de clave personalizado se utiliza para cifrar y descifrar
            los datos. De lo contrario, el material de clave para el nuevo documento clave es
            generado a partir de un dispositivo aleatorio criptográficamente seguro.
           </p>
          </td>
         </tr>

        </tbody>
       
      </table>

     </p>
    </dd>
   
  </dl>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-mongodb-driver-clientencryption.createdatakey-returnvalues">
  <h3 class="title">Valores devueltos</h3>
  <p class="para">
   Devuelve un identificador del nuevo documento clave como un objeto
   <span class="classname"><a href="class.mongodb-bson-binary.php" class="classname">MongoDB\BSON\Binary</a></span> con el subtipo 4 (UUID).
  </p>
 </div>


 <div class="refsect1 errors" id="refsect1-mongodb-driver-clientencryption.createdatakey-errors">
  <h3 class="title">Errores/Excepciones</h3>
  <ul class="simplelist">
   <li>Lanza una excepción <span class="classname"><strong class="classname">MongoDB\Driver\InvalidArgumentException</strong></span> en caso de error durante el análisis de un argumento.</li><li>Lanza una excepción <span class="classname"><strong class="classname">MongoDB\Driver\ConnectionException</strong></span> si la conexión al servidor falla por una razón distinta a un problema de identificación</li><li>Lanza una excepción <span class="classname"><strong class="classname">MongoDB\Driver\AuthenticationException</strong></span> si se requiere una identificación pero falla</li>
   <li>Lanza una <span class="classname"><a href="class.mongodb-driver-exception-runtimeexception.php" class="classname">MongoDB\Driver\Exception\RuntimeException</a></span> en caso de otros errores.</li>
  </ul>
 </div>


 <div class="refsect1 changelog" id="refsect1-mongodb-driver-clientencryption.createdatakey-changelog">
  <h3 class="title">Historial de cambios</h3>
  <p class="para">
   <table class="doctable informaltable">
    
     <thead>
      <tr>
       <th>Versión</th>
       <th>Descripción</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>PECL mongodb 1.20.0</td>
       <td>
        Adición de <code class="literal">&quot;delegated&quot;</code> a las opciones masterKey del proveedor KMIP.
       </td>
      </tr>

      <tr>
       <td>PECL mongodb 1.15.0</td>
       <td>
        Adición de la opción <code class="literal">&quot;keyMaterial&quot;</code>.
       </td>
      </tr>

      <tr>
       <td>PECL mongodb 1.10.0</td>
       <td>
        Azure y GCP son ahora soportados como proveedores KMS para
        el cifrado lado-cliente.
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </div>


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