Crea un documento de clave

# MongoDB\Driver\ClientEncryption::createDataKey

(mongodb >=1.7.0)

MongoDB\Driver\ClientEncryption::createDataKey — Crea un documento de clave

### Descripción

final public function MongoDB\Driver\ClientEncryption::createDataKey(string `$kmsProvider`, ?array `$options` = `null`): MongoDB\BSON\Binary

Crea un nuevo documento de clave e inserta en la colección de almacén de claves.

### Parámetros

`kmsProvider`
  El proveedor KMS (por ejemplo `"local"`, `"aws"`) que se utilizará para cifrar la nueva clave de datos.
`options`

  Opciones de clave de datos
  Opción | Tipo | Descripción
  --- | --- | ---
  masterKey | array | 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 `kmsProvider` sea `"local"`.
  Opciones del proveedor `"aws"`
  Opción | Tipo | Descripción
  --- | --- | ---
  region | string | Requis.
  key | string | Requis. El nombre de recurso Amazon (ARN) de la clave maestra del cliente AWS (CMK).
  endpoint | string | Opcional. Un identificador de host alternativo para enviar las solicitudes KMS. Puede incluir el número de puerto.
  Opciones del proveedor `"azure"`
  Opción | Tipo | Descripción
  --- | --- | ---
  keyVaultEndpoint | string | Requis. Host con puerto opcional (por ejemplo, "example.vault.azure.net").
  keyName | string | Requis.
  keyVersion | string | Opcional. Una versión específica de la clave nombrada. Por omisión, se utiliza la versión primaria de la clave.
  Opciones del proveedor `"gcp"`
  Opción | Tipo | Descripción
  --- | --- | ---
  projectId | string | Requis.
  location | string | Requis.
  keyRing | string | Requis.
  keyName | string | Requis.
  keyVersion | string | Opcional. Una versión específica de la clave nombrada. Por omisión, se utiliza la versión primaria de la clave.
  endpoint | string | Opcional. Host con puerto opcional. El valor por omisión es "cloudkms.googleapis.com".
  Opciones del proveedor `"kmip"`
  Opción | Tipo | Descripción
  --- | --- | ---
  keyId | string | 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.
  endpoint | string | Opcional. Host con puerto opcional.
  delegated | bool | Opcional. Si es verdadero, esta clave debe ser descifrada por el servidor KMIP.
  keyAltNames | array | 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 `_id`.
  keyMaterial | MongoDB\BSON\Binary | 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.

### Valores devueltos

Devuelve el identificador de la nueva clave como un objeto MongoDB\BSON\Binary con subtipo 4 (UUID).

### Errores/Excepciones

- Lanza una excepción MongoDB\Driver\InvalidArgumentException en caso de error durante el análisis de un argumento.
- Lanza una excepción MongoDB\Driver\ConnectionException si la conexión al servidor falla por una razón distinta a un problema de identificación
- Lanza una excepción MongoDB\Driver\AuthenticationException si se requiere una identificación pero falla
- Lanza MongoDB\Driver\Exception\RuntimeException en caso de otros errores.

### Historial de cambios

Versión | Descripción
--- | ---
PECL mongodb 1.20.0 | Añadido `"delegated"` a las opciones de masterKey del proveedor KMIP.
PECL mongodb 1.15.0 | Añadida la opción `"keyMaterial"`.
PECL mongodb 1.10.0 | Azure y GCP ahora son compatibles como proveedores KMS para cifrado lado-cliente.

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open