(mozilla-projects-nss-reference-fc-setoperationstate)= # FC_SetOperationState ## [Name](#name) :::{container} FC_SetOperationState - restore the cryptographic operation state of a session. ::: ## [Syntax](#syntax) :::{container} ```{code} CK_RV FC_SetOperationState( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pOperationState, CK_ULONG ulOperationStateLen, CK_OBJECT_HANDLE hEncryptionKey, CK_OBJECT_HANDLE hAuthenticationKey ); ``` ::: ## [Parameters](#parameters) :::{container} `hSession` : [in] handle of the open session. `pOperationState` : [in] pointer to a byte array containing the operation state. `ulOperationStateLen` : [in] contains the total length (in bytes) of the operation state. `hEncryptionKey` : [in] handle of the encryption or decryption key to be used in a stored session or zero if no key is needed. `hAuthenticationKey` : [in] handle of the authentication key to be used in the stored session or zero if none is needed. ::: ## [Description](#description) :::{container} `FC_SetOperationState` restores the cryptographic operations state of a session from an array of bytes obtained with `FC_GetOperationState`. This function only works for digest operations for now. Therefore, a user may call `FC_SetOperationState` 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_getoperationstate`, [NSC_SetOperationState](/en-US/NSC_SetOperationState) :::