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

# FC_DigestEncryptUpdate

## [Name](#name)

:::{container}
FC_DigestEncryptUpdate - continue a multi-part digest and encryption operation
:::

## [Syntax](#syntax)

:::{container}

```{code}
CK_RV FC_DigestEncryptUpdate(
  CK_SESSION_HANDLE hSession,
  CK_BYTE_PTR pPart,
  CK_ULONG ulPartLen,
  CK_BYTE_PTR pEncryptedPart,
  CK_ULONG_PTR pulEncryptedPartLen
);
```

:::

## [Parameters](#parameters)

:::{container}
`hSession`

: [in] session handle.

`pPart`

: [in] pointer to the data part.

`ulPartLen`

: [in] length of data in bytes.

`pEncryptedPart`

: [in] pointer to the location which receives the digested and encrypted part or NULL.

`pulEncryptedPartLen`

: [in] pointer to the length of the encrypted part buffer.
:::

## [Description](#description)

:::{container}
`FC_DigestEncryptUpdate` continues a multi-part digest and encryption operation. After calling
both `FC_DigestInit` and `FC_EncryptInit` to set up the operations this function may be
called multiple times. The operation is finished by calls to `FC_DigestFinal` and
`FC_EncryptFinal` in that order.

A user must log into the token (to assume the NSS User role) before calling
`FC_DigestEncryptUpdate`.
:::

## [Return value](#return_value)

## [Examples](#examples)

## [See also](#see_also)

:::{container}

- [NSC_DigestEncryptUpdate](/en-US/NSC_DigestEncryptUpdate)
:::
