### Method

# Gcr CertificateChain build_async

#### Declaration [src]

    void
    gcr_certificate_chain_build_async (
      GcrCertificateChain* self,
      const gchar* purpose,
      const gchar* peer,
      GcrCertificateChainFlags flags,
      GCancellable* cancellable,
      GAsyncReadyCallback callback,
      gpointer user_data
    )

#### Description [src]

Complete a certificate chain. Once a certificate chain has been built its status can be examined.

This will lookup missing certificates in PKCS#11 modules and also that each certificate in the chain is the signer of the previous one. If a trust anchor, pinned certificate, or self-signed certificate is found, then the chain is considered built. Any extra certificates are removed from the chain.

It’s important to understand that building of a certificate chain does not constitute verifying that chain. This is merely the first step towards trust verification.

The `purpose` is a string like `GCR_PURPOSE_CLIENT_AUTH` and is the purpose for which the certificate chain will be used. Trust anchors are looked up for this purpose. This argument is required.

The `peer` is usually the host name of the peer whith which this certificate chain is being used. It is used to look up pinned certificates that have been stored for this peer. If `NULL` then no pinned certificates will be considered.

If the `GCR_CERTIFICATE_CHAIN_NO_LOOKUPS` flag is specified then no lookups for anchors or pinned certificates are done, and the resulting chain will be neither anchored or pinned. Additionally no missing certificate authorities are looked up in PKCS#11

When the operation is finished, `callback` will be called. You can then call `gcr_certificate_chain_build_finish()` to get the result of the operation.

#### Parameters

`purpose`

  Type: `const gchar*`

  The purpose the certificate chain will be used for.

  The data is owned by the caller of the function.
  The value is a NUL terminated UTF-8 string.

`peer`

  Type: `const gchar*`

  The peer the certificate chain will be used with, or `NULL`.

  The argument can be `NULL`.
  The data is owned by the caller of the function.
  The value is a NUL terminated UTF-8 string.

`flags`

  Type: `GcrCertificateChainFlags`

  Chain completion flags.

`cancellable`

  Type: `GCancellable`

  A `GCancellable` or `NULL`.

  The argument can be `NULL`.
  The data is owned by the caller of the function.

`callback`

  Type: `GAsyncReadyCallback`

  This will be called when the operation completes.

  The argument can be `NULL`.

`user_data`

  Type: `gpointer`

  Data to pass to the callback.

  The argument can be `NULL`.
  The data is owned by the caller of the function.