# MongoDB\Driver\ClientEncryption::createDataKey

(mongodb >=1.7.0)

MongoDB\Driver\ClientEncryption::createDataKey — Creates a key document

### Beschreibung

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

Creates a new key document and inserts it into the key vault collection.

### Parameter-Liste

`kmsProvider`

  The KMS provider (e.g. `"local"`, `"aws"`) that will be used to encrypt the new data key.

`options`

  Data key options
  Option | Type | Description
  --- | --- | ---
  masterKey | array | The masterKey document identifies a KMS-specific key used to encrypt the new data key. This option is required unless `kmsProvider` is `"local"`.
  `"aws"`-Provider-Optionen
  Option | Typ | Beschreibung
  --- | --- | ---
  region | string | Erforderlich
  key | string | Erforderlich; der Amazon-Ressourcenname (ARN) für den AWS-Kundenhauptschlüssel (CMK).
  endpoint | string | Optional; ein alternativer Host-Bezeichner, an den KMS-Anfragen gesendet werden; kann die Portnummer enthalten.
  `"azure"`-Provider-Optionen
  Option | Typ | Beschreibung
  --- | --- | ---
  keyVaultEndpoint | string | Erforderlich; der Host mit optionalem Port (z. B. "example.vault.azure.net").
  keyName | string | Erforderlich
  keyVersion | string | Optional; eine bestimmte Version des genannten Schlüssels. Standardmäßig wird die primäre Version des Schlüssels verwendet.
  `"gcp"`-Provider-Optionen
  Option | Typ | Beschreibung
  --- | --- | ---
  projectId | string | Erforderlich
  location | string | Erforderlich
  keyRing | string | Erforderlich
  keyName | string | Erforderlich
  keyVersion | string | Optional; eine bestimmte Version des genannten Schlüssels. Standardmäßig wird die primäre Version des Schlüssels verwendet.
  endpoint | string | Optional; der Host mit optionalem Port. Der Standardwert ist "cloudkms.googleapis.com".
  `"kmip"`-Provider-Optionen
  Option | Typ | Beschreibung
  --- | --- | ---
  keyId | string | Optional; der eindeutige Bezeichner für ein 96 Byte großes, verwaltetes geheimes KMIP-Datenobjekt. Wenn nicht angegeben, erstellt der Treiber ein zufälliges geheimes KMIP-Datenobjekt mit 96 Byte.
  endpoint | string | Optional; der Host mit optionalem Port.
  delegated | bool | Optional; wenn true, soll dieser Schlüssel vom KMIP-Server entschlüsselt werden.
  keyAltNames | array | An optional list of string alternate names used to reference a key. If a key is created with alternate names, then encryption may refer to the key by the unique alternate name instead of by `_id`.
  keyMaterial | MongoDB\BSON\Binary | An optional 96-byte value to use as custom key material for the data key being created. If keyMaterial is given, the custom key material is used for encrypting and decrypting data. Otherwise, the key material for the new data key is generated from a cryptographically secure random device.

### Rückgabewerte

Returns the identifier of the new key as a MongoDB\BSON\Binary object with subtype 4 (UUID).

### Fehler/Exceptions

- Wirft eine MongoDB\Driver\Exception\InvalidArgumentException, wenn beim Analysieren von Argumenten ein Fehler auftritt.
- Wirft eine MongoDB\Driver\Exception\ConnectionException, wenn der Aufbau einer Verbindung zum Server fehlschlägt (aus einem anderen Grund als der Authentifizierung).
- Wirft eine MongoDB\Driver\Exception\AuthenticationException, wenn eine Authentifizierung erforderlich ist und fehlschlägt.
- Throws MongoDB\Driver\Exception\RuntimeException on other errors.

### Changelog

Version | Beschreibung
--- | ---
PECL mongodb 1.20.0 | Added `"delegated"` to the KMIP provider masterKey options.
PECL mongodb 1.15.0 | Added the `"keyMaterial"` option.
PECL mongodb 1.10.0 | Azure and GCP are now supported as KMS providers for client-side encryption.

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