In-Use Encryption
In-Use Encryption consists of two features:
Installation
Using In-Use Encryption in the C driver requires the dependency libmongocrypt. See the MongoDB Manual for libmongocrypt installation instructions.
Once libmongocrypt is installed, configure the C driver with -DENABLE_CLIENT_SIDE_ENCRYPTION=ON
to require In-Use Encryption be enabled.
$ cd mongo-c-driver $ mkdir cmake-build && cd cmake-build $ cmake -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_CLIENT_SIDE_ENCRYPTION=ON .. $ cmake --build . --target install
API
mongoc_client_encryption_t is used for explicit encryption and key management. mongoc_client_enable_auto_encryption and mongoc_client_pool_enable_auto_encryption is used to enable automatic encryption.
The Queryable Encryption and CSFLE features share much of the same API with some exceptions.
The supported algorithms documented in mongoc_client_encryption_encrypt_opts_set_algorithm do not apply to both features.
mongoc_auto_encryption_opts_set_encrypted_fields_map only applies to Queryable Encryption.
mongoc_auto_encryption_opts_set_schema_map only applies to CSFLE.
Query Analysis
To support the automatic encryption feature, one of the following dependencies are required:
The
mongocryptd
executable. See the MongoDB Manual documentation: Install and Configure mongocryptdThe
crypt_shared
library. See the MongoDB Manual documentation: Automatic Encryption Shared Library
A mongoc_client_t or mongoc_client_pool_t configured with auto encryption will automatically
try to load the crypt_shared
library. If loading the crypt_shared
library fails, the mongoc_client_t
or mongoc_client_pool_t will try to spawn the mongocryptd
process from the application's PATH
.
To configure use of crypt_shared
and mongocryptd
see mongoc_auto_encryption_opts_set_extra.