(mozilla-projects-nss-reference-fc-digest)=

# FC_Digest

## [Name](#name)

:::{container}
FC_Digest - digest a block of data.
:::

## [Syntax](#syntax)

:::{container}

```{code}
CK_RV FC_Digest(
  CK_SESSION_HANDLE hSession,
  CK_BYTE_PTR pData,
  CK_ULONG usDataLen,
  CK_BYTE_PTR pDigest,
  CK_ULONG_PTR pusDigestLen
);
```

:::

## [Parameters](#parameters)

:::{container}
`hSession`

: [in] session handle.

`pData`

: [in] pointer to data block.

`usDataLen`

: [in] length of the data in bytes.

`pDigest`

: [out] pointer to location where recovered data is to be stored.

`pusDigestLen`

: [in, out] pointer to the maximum size of the output buffer, replaced by the length of the
  message digest if the operation is successful.
:::

## [Description](#description)

:::{container}
`FC_Digest` digests a message in a single operation according to the attributes of the previous
call to `FC_DigestInit`.

A user may call `FC_Digest` without logging into the token (to assume the NSS User role).
:::

## [Return value](#return_value)

## [Examples](#examples)

## [See also](#see_also)

:::{container}

- {ref}`mozilla_projects_nss_reference_fc_digestinit`, [NSC_Digest](/en-US/NSC_Digest)
:::
