# mongoc_client_encryption_t

## Synopsis

    typedef struct _mongoc_client_encryption_t mongoc_client_encryption_t;

`mongoc_client_encryption_t` provides utility functions for Client-Side Field Level Encryption. See the guide for Using Client-Side Field Level Encryption.

## Thread Safety

mongoc_client_encryption_t is NOT thread-safe and should only be used in the same thread as the mongoc_client_t that is configured via mongoc_client_encryption_opts_set_keyvault_client().

## Lifecycle

The key vault client, configured via mongoc_client_encryption_opts_set_keyvault_client(), must outlive the mongoc_client_encryption_t.

See also

mongoc_client_enable_auto_encryption()
mongoc_client_pool_enable_auto_encryption()
The guide for Using Client-Side Field Level Encryption for libmongoc
The MongoDB Manual for Client-Side Field Level Encryption

## Functions

- mongoc_client_encryption_new()
- mongoc_client_encryption_destroy()
- mongoc_client_encryption_create_datakey()
- mongoc_client_encryption_rewrap_many_datakey()
- mongoc_client_encryption_delete_key()
- mongoc_client_encryption_get_crypt_shared_version()
- mongoc_client_encryption_get_key()
- mongoc_client_encryption_get_keys()
- mongoc_client_encryption_add_key_alt_name()
- mongoc_client_encryption_remove_key_alt_name()
- mongoc_client_encryption_get_key_by_alt_name()
- mongoc_client_encryption_encrypt()
- mongoc_client_decryption_decrypt()