Source code
Revision control
Copy as Markdown
Other Tools
(mozilla-projects-nss-reference-fc-finalize)=
# FC_Finalize
## [Name](#name)
:::{container}
FC_Finalize - indicate that an application is done with the PKCS #11 library.
:::
## [Syntax](#syntax)
:::{container}
```{code}
CK_RV FC_Finalize (CK_VOID_PTR pReserved);
```
:::
## [Parameters](#parameters)
:::{container}
`FC_Finalize` has one parameter:
`pReserved`
: must be `NULL`
:::
## [Description](#description)
:::{container}
`FC_Finalize` shuts down the {ref}`mozilla_projects_nss_reference_nss_cryptographic_module` in
the {ref}`mozilla_projects_nss_reference_nss_cryptographic_module_fips_mode_of_operation`. If the
library is not initialized, it does nothing.
The `pReserved` argument is not used and must be `NULL`.
:::
## [Return value](#return_value)
::::{container}
`FC_Finalize` always returns `CKR_OK`.
:::{note}
`FC_Finalize` should check the `pReserved` argument and return `CKR_ARGUMENTS_BAD` if
`pReserved` is not `NULL`.
`FC_Finalize` should return `CKR_CRYPTOKI_NOT_INITIALIZED` if the library is not
initialized.
:::
::::
## [Examples](#examples)
:::{container}
```{code}
#include <assert.h>
CK_FUNCTION_LIST_PTR pFunctionList;
CK_RV crv;
crv = FC_GetFunctionList(&pFunctionList);
assert(crv == CKR_OK);
...
/* invoke FC_Finalize as pFunctionList->C_Finalize */
crv = pFunctionList->C_Finalize(NULL);
```
:::
## [See also](#see_also)
:::{container}
- {ref}`mozilla_projects_nss_reference_fc_initialize`,
[NSC_Initialize](/en-US/NSC_Initialize), [NSC_Finalize](/en-US/NSC_Finalize)
:::