# Класс MongoDB\Driver\ClientEncryption

(mongodb >=1.7.0)

## Введение

Класс MongoDB\Driver\ClientEncryption обрабатывает создание ключей данных для шифрования на стороне клиента, а также ручное шифрование и расшифровку значений

## Обзор класса

final class MongoDB\Driver\ClientEncryption {
/* Константы */
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;
/* Методы */
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
}

## Предопределённые константы

`MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC`
  Указывает алгоритм для » детерминированного шифрования, который подходит для выполнения запросов.
`MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_RANDOM`
  Указывает алгоритм для » рандомизированного шифрования.
`MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED`
  Указывает алгоритм для проиндексированной зашифрованной полезной нагрузки, который может использоваться с доступным для запросов шифрованием. Чтобы вставить или запросить индексированные зашифрованные полезные данные, менеджер MongoDB\Driver\Manager необходимо настроить с опцией драйвера `autoEncryption`. Для опции автоматического шифрования `bypassQueryAnalysis` разрешается устанавливать значение `true`. Параметру автоматического шифрования `bypassAutoEncryption` требуется установить значение `false`.
`MongoDB\Driver\ClientEncryption::ALGORITHM_UNINDEXED`
  Указывает алгоритм для непроиндексированной зашифрованной полезной нагрузки.
`MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE`
  Указывает алгоритм для диапазона зашифрованной полезной нагрузки, который можно использовать с доступным для запросов шифрованием. Чтобы запросить диапазон зашифрованных полезных данных, менеджер MongoDB\Driver\Manager требуется настроить с опцией драйвера `autoEncryption`. Для опции автоматического шифрования `bypassQueryAnalysis` разрешается устанавливать значение `true`. Параметру автоматического шифрования `bypassAutoEncryption` требуется установить значение `false`.

  > Замечание: Модуль пока не поддерживает запросы диапазона для BSON-полей с типом Decimal128.

`MongoDB\Driver\ClientEncryption::QUERY_TYPE_EQUALITY`
  Указывает тип запроса равенства, который используется в сочетании с опцией `MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED`.
`MongoDB\Driver\ClientEncryption::QUERY_TYPE_RANGE`
  Указывает тип запроса диапазона, который используется в сочетании с опцией `MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE`.

## Список изменений

Версия | Описание
--- | ---
PECL-модуль mongodb 2.0.0 | Удалили константы `MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW` и `MongoDB\Driver\ClientEncryption::QUERY_TYPE_RANGE_PREVIEW`.
PECL-модуль mongodb 1.20.0 | Добавили опции `MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE` и `MongoDB\Driver\ClientEncryption::QUERY_TYPE_RANGE`. Опции `MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW` и `MongoDB\Driver\ClientEncryption::QUERY_TYPE_RANGE_PREVIEW` устарели.
PECL-модуль mongodb 1.16.0 | Добавили константы `MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW` и `MongoDB\Driver\ClientEncryption::QUERY_TYPE_RANGE_PREVIEW`.
PECL-модуль mongodb 1.14.0 | Добавили опции `MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED`, `MongoDB\Driver\ClientEncryption::ALGORITHM_UNINDEXED`, и `MongoDB\Driver\ClientEncryption::QUERY_TYPE_EQUALITY`.

## Смотрите также

- MongoDB\Driver\Manager::createClientEncryption()

## Содержание

- MongoDB\Driver\ClientEncryption::addKeyAltName — Добавляет альтернативное имя к документу с ключом
- MongoDB\Driver\ClientEncryption::__construct — Создаёт новый объект ClientEncryption
- MongoDB\Driver\ClientEncryption::createDataKey — Создаёт документ с ключом
- MongoDB\Driver\ClientEncryption::decrypt — Расшифровывает данные
- MongoDB\Driver\ClientEncryption::deleteKey — Удаляет документ с ключом
- MongoDB\Driver\ClientEncryption::encrypt — Шифрует данные
- MongoDB\Driver\ClientEncryption::encryptExpression — Шифрует совпадение или агрегированное выражение
- MongoDB\Driver\ClientEncryption::getKey — Получает документ с ключом
- MongoDB\Driver\ClientEncryption::getKeyByAltName — Получает документ с ключом по альтернативному имени
- MongoDB\Driver\ClientEncryption::getKeys — Получает все документы с ключом
- MongoDB\Driver\ClientEncryption::removeKeyAltName — Удаляет альтернативное имя из документа с ключом
- MongoDB\Driver\ClientEncryption::rewrapManyDataKey — Переворачивает ключи данных

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