---
name: "mongoc_client_encryption_opts_set_kms_credential_provider_callback"
section: "3"
platform: "linux"
package: "libmongoc-doc"
version: "1.30.4-1+deb13u3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/mongoc_client_encryption_opts_set_kms_credential_provider_callback"
---

# mongoc\_client\_encryption\_opts\_set\_kms\_credential\_provider\_callback(3)

Added in version 1.23.0.

## SYNOPSIS

```
void
mongoc_client_encryption_opts_set_kms_credential_provider_callback (
  mongoc_client_encryption_opts_t *opts,
  mongoc_kms_credentials_provider_callback_fn fn,
  void *userdata);
```

Set the user-provided callback to provide KMS credentials on-demand when they are needed.

## PARAMETERS

- •

  **opts** - The options object to update.

- •

  **fn** - The provider callback to set on the options object. May be **NULL** to clear the callback. Refer to: *mongoc\_kms\_credentials\_provider\_callback\_fn*

- •

  **userdata** - An arbitrary pointer that will be passed along to the callback function when it is called by libmongoc.

**SEE ALSO:**

*mongoc\_auto\_encryption\_opts\_set\_kms\_credential\_provider\_callback()*

Related:

- **type mongoc\_kms\_credentials\_provider\_callback\_fn**

  ```
  typedef
  bool (*mongoc_kms_credentials_provider_callback_fn) (void *userdata,
                                                       const bson_t *params,
                                                       bson_t *out,
                                                       bson_error_t *error);
  ```

  The type of a callback function for providing KMS providers data on-demand.

  - **Parameters**

    - •

      **userdata** - The same userdata pointer provided to the **userdata** parameter when the callback was set.

    - •

      **params** - Parameters for the requested KMS credentials. Currently empty.

    - •

      **out** - The output *bson\_t* in which to write the new KMS providers. When passed to the callback, this already points to an empty BSON document which must be populated.

    - •

      **error** - An output parameter for indicating any errors that might occur while generating the KMS credentials.

  - **Return value**

    Must return **true** on success, **false** on failure.

## AUTHOR

MongoDB, Inc

## COPYRIGHT

2009-present, MongoDB, Inc.
