# MongoDB\Driver\ClientEncryption::createDataKey

(mongodb >=1.7.0)

MongoDB\Driver\ClientEncryption::createDataKey — Créer un document clé

### Description

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

Créer un nouveau document clé et l'insère dans la collection de coffre de clés.

### Liste de paramètres

`kmsProvider`

  Le fournisseur KMS (par exemple `"local"`, `"aws"`) qui sera utilisé pour chiffrer le nouveau document clé.

`options`

  Options de données de clé
  Option | Type | Description
  --- | --- | ---
  masterKey | array | Le document masterKey identifie une clé spécifique à KMS utilisée pour chiffrer le nouveau document clé. Cette option est requise à moins que `kmsProvider` soit `"local"`.
  Options du fournisseur `"aws"`
  Option | Type | Description
  --- | --- | ---
  region | string | Requis.
  key | string | Requis. Le nom de ressource Amazon (ARN) de la clé maîtresse du client AWS (CMK).
  endpoint | string | Optionnel. Un identifiant d'hôte alternatif pour envoyer les demandes KMS. Peut inclure le numéro de port.
  Options du fournisseur `"azure"`
  Option | Type | Description
  --- | --- | ---
  keyVaultEndpoint | string | Requis. Hôte avec port optionnel (par exemple, "example.vault.azure.net").
  keyName | string | Requis.
  keyVersion | string | Optionnel. Une version spécifique de la clé nommée. Par défaut, la version primaire de la clé est utilisée.
  Options du fournisseur `"gcp"`
  Option | Type | Description
  --- | --- | ---
  projectId | string | Requis.
  location | string | Requis.
  keyRing | string | Requis.
  keyName | string | Requis.
  keyVersion | string | Optionnel. Une version spécifique de la clé nommée. Par défaut, la version primaire de la clé est utilisée.
  endpoint | string | Optionnel. Hôte avec port optionnel. La valeur par défaut est "cloudkms.googleapis.com".
  Options du fournisseur `"kmip"`
  Option | Type | Description
  --- | --- | ---
  keyId | string | Optionnel. Identifiant unique d'un objet géré de 96 octets de données secrètes KMIP. S'il n'est pas spécifié, le pilote crée un objet géré aléatoire de 96 octets de données secrètes KMIP.
  endpoint | string | Optionnel. Hôte avec port optionnel.
  delegated | bool | Optionnel. Si vrai, cette clé devrait être déchiffrer par le serveur KMIP.
  keyAltNames | array | Une liste optionnelle de noms alternatifs de chaîne utilisés pour référencer une clé. Si une clé est créée avec des noms alternatifs, alors le chiffrement peut se référer à la clé par le nom alternatif unique au lieu de par `_id`.
  keyMaterial | MongoDB\BSON\Binary | Une valeur optionnelle de 96 octets à utiliser comme matériel de clé pour le document clé en cours de création. Si keyMateria est donné, le matériel de clé personnalisé est utilisé pour chiffrer et déchiffrer les données. Sinon, le matériel de clé pour le nouveau document clé est généré à partir d'un dispositif aléatoire cryptographiquement sécurisé.

### Valeurs de retour

Renvoie un identifiant du nouveau document clé en tant qu'objet MongoDB\BSON\Binary avec le sous-type 4 (UUID).

### Erreurs / Exceptions

- Lance une exception MongoDB\Driver\AuthenticationException si une identification est nécessaire mais qu'elle échoue
- Lance une exception MongoDB\Driver\ConnectionException si la connexion au serveur échoue pour une autre raison qu'en raison d'un problème d'identification
- Lance une MongoDB\Driver\Exception\RuntimeException sur d'autres erreurs.

### Historique

Version | Description
--- | ---
PECL mongodb 1.20.0 | Ajout de `"delegated"` aux options masterKey du fournisseur KMIP.
PECL mongodb 1.15.0 | Ajout de l'option `"keyMaterial"`.
PECL mongodb 1.10.0 | Azure et GCP sont désormais pris en charge en tant que fournisseurs KMS pour le chiffrement côté client.