# La clase MongoDB\Driver\ClientEncryption

(mongodb >=1.7.0)

## Introducción

La clase MongoDB\Driver\ClientEncryption gestiona la creación de claves de datos para la cifrado lado-cliente, así como el cifrado y descifrado manual de valores.

## Sinopsis de la Clase

final class MongoDB\Driver\ClientEncryption {
/* Constantes */
const string AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC = AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic;
const string AEAD_AES_256_CBC_HMAC_SHA_512_RANDOM = AEAD_AES_256_CBC_HMAC_SHA_512-Random;
const string ALGORITHM_INDEXED = Indexed;
const string ALGORITHM_UNINDEXED = Unindexed;
const string ALGORITHM_RANGE = Range;
const string QUERY_TYPE_EQUALITY = equality;
const string QUERY_TYPE_RANGE = range;
/* Métodos */
final public function addKeyAltName(MongoDB\BSON\Binary `$keyId`, string `$keyAltName`): ?object
final public function __construct(array `$options`)
final public function createDataKey(string `$kmsProvider`, ?array `$options` = `null`): MongoDB\BSON\Binary
final public function decrypt(MongoDB\BSON\Binary `$value`): mixed
final public function deleteKey(MongoDB\BSON\Binary `$keyId`): object
final public function encrypt(mixed `$value`, ?array `$options` = `null`): MongoDB\BSON\Binary
final public function encryptExpression(array|object `$expr`, ?array `$options` = `null`): object
final public function getKey(MongoDB\BSON\Binary `$keyId`): ?object
final public function getKeyByAltName(string `$keyAltName`): ?object
final public function getKeys(): MongoDB\Driver\Cursor
final public function removeKeyAltName(MongoDB\BSON\Binary `$keyId`, string `$keyAltName`): ?object
final public function rewrapManyDataKey(array|object `$filter`, ?array `$options` = `null`): object
}

## Constantes predefinidas

`MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC`
  Especifica un algoritmo para el » cifrado determinista, que es adecuado para consultas.
`MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_RANDOM`
  Especifica un algoritmo para el » cifrado aleatorio
`MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED`
  Especifica un algoritmo para un contenido cifrado indexado, que puede usarse con cifrado consultable. Para insertar o consultar con un contenido cifrado indexado, el MongoDB\Driver\Manager debe configurarse con la opción de controlador `"autoEncryption"`. La opción de auto-cifrado `"bypassQueryAnalysis"` puede ser `true`. La opción de auto-cifrado `"bypassAutoEncryption"` debe ser `false`.
`MongoDB\Driver\ClientEncryption::ALGORITHM_UNINDEXED`
  Especifica un algoritmo para un contenido cifrado no indexado.
`MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE`
  Especifica un algoritmo para un contenido cifrado de rango, que puede usarse con cifrado consultable. Para consultar con un contenido cifrado de rango, el MongoDB\Driver\Manager debe configurarse con la opción de controlador `"autoEncryption"`. La opción de auto-cifrado `"bypassQueryAnalysis"` puede ser `true`. La opción de auto-cifrado `"bypassAutoEncryption"` debe ser `false`.

  > Nota: La extensión aún no admite consultas de rango para tipos de campo BSON Decimal128.

`MongoDB\Driver\ClientEncryption::QUERY_TYPE_EQUALITY`
  Especifica un tipo de consulta de igualdad, que se usa en conjunto con `MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED`.
`MongoDB\Driver\ClientEncryption::QUERY_TYPE_RANGE`
  Especifica un tipo de consulta de rango, que se usa en conjunto con `MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE`.

## Historial de cambios

Versión | Descripción
--- | ---
PECL mongodb 2.0.0 | Se eliminó `MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW` y `MongoDB\Driver\ClientEncryption::QUERY_TYPE_RANGE_PREVIEW`.
PECL mongodb 1.20.0 | Se añadió `MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE` y `MongoDB\Driver\ClientEncryption::QUERY_TYPE_RANGE`. Se declaró obsoleto `MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW` y `MongoDB\Driver\ClientEncryption::QUERY_TYPE_RANGE_PREVIEW`.
PECL mongodb 1.16.0 | Se añadió `MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW` y `MongoDB\Driver\ClientEncryption::QUERY_TYPE_RANGE_PREVIEW`.
PECL mongodb 1.14.0 | Se añadió `MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED`, `MongoDB\Driver\ClientEncryption::ALGORITHM_UNINDEXED`, y `MongoDB\Driver\ClientEncryption::QUERY_TYPE_EQUALITY`.

## Ver también

- MongoDB\Driver\Manager::createClientEncryption()

## Tabla de contenidos

- MongoDB\Driver\ClientEncryption::addKeyAltName — Añade un nombre alternativo a un documento de clave
- MongoDB\Driver\ClientEncryption::__construct — Crea un nuevo objeto ClientEncryption
- MongoDB\Driver\ClientEncryption::createDataKey — Crea un documento de clave
- MongoDB\Driver\ClientEncryption::decrypt — Descifra un valor
- MongoDB\Driver\ClientEncryption::deleteKey — Elimina un documento de clave
- MongoDB\Driver\ClientEncryption::encrypt — Cifra un valor
- MongoDB\Driver\ClientEncryption::encryptExpression — Cifra una expresión de coincidencia o agregación
- MongoDB\Driver\ClientEncryption::getKey — Obtiene un documento de clave
- MongoDB\Driver\ClientEncryption::getKeyByAltName — Obtiene un documento de clave por un nombre alternativo
- MongoDB\Driver\ClientEncryption::getKeys — Obtiene todos los documentos de claves
- MongoDB\Driver\ClientEncryption::removeKeyAltName — Elimina un nombre alternativo de un documento de clave
- MongoDB\Driver\ClientEncryption::rewrapManyDataKey — Reenvuelve claves de datos

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