<?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 => 'Crea un documento de 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">Crea un documento de 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="simpara">
   Crea un nuevo documento de clave e inserta en la colección de almacé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>
     <span class="simpara">
      El proveedor KMS (por ejemplo <code class="literal">&quot;local&quot;</code>,
      <code class="literal">&quot;aws&quot;</code>) que se utilizará para cifrar la nueva clave de datos.
     </span>
    </dd>
   

   
    <dt><code class="parameter">options</code></dt>
    <dd>
     <p class="para">
      <table class="doctable table">
       <caption><strong>Opciones de clave de datos</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>
           <span class="simpara">
            El documento masterKey identifica una clave específica del KMS utilizada para cifrar
            la nueva clave de datos. Esta opción es obligatoria a menos que
            <code class="parameter">kmsProvider</code> sea <code class="literal">&quot;local&quot;</code>.
           </span>
           
  <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>
           <span class="simpara">
            Una lista opcional de nombres alternativos de tipo string utilizados para referenciar una clave.
            Si se crea una clave con nombres alternativos, entonces el cifrado puede referirse a la clave
            mediante el nombre alternativo único en lugar de por <code class="literal">_id</code>.
           </span>
          </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>
           <span class="simpara">
            Un valor opcional de 96 bytes para usar como material de clave personalizado para la clave de datos
            que se está creando. Si se proporciona keyMaterial, el material de clave personalizado se utiliza
            para cifrar y descifrar datos. De lo contrario, el material de la nueva clave de datos se genera
            a partir de un dispositivo criptográficamente seguro aleatorio.
           </span>
          </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="simpara">
   Devuelve el identificador de la nueva clave como un objeto
   <span class="classname"><a href="class.mongodb-bson-binary.php" class="classname">MongoDB\BSON\Binary</a></span> con 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 <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>
  <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>
       Añadido <code class="literal">&quot;delegated&quot;</code> a las opciones de masterKey del proveedor KMIP.
      </td>
     </tr>

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

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

    </tbody>
   
  </table>

 </div>


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