(mozilla-projects-nss-reference-fc-wrapkey)= # FC_WrapKey ## [Name](#name) :::{container} FC_WrapKey - wrap a key ::: ## [Syntax](#syntax) :::{container} ```{code} CK_RV FC_WrapKey( CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hWrappingKey, CK_OBJECT_HANDLE hKey, CK_BYTE_PTR pWrappedKey, CK_ULONG_PTR pusWrappedKeyLen ); ``` ::: ## [Parameters](#parameters) :::{container} `hSession` : [in] session handle. `pMechanism` : [in] pointer to the mechanism to use. `hWrappingKey` : [in] pointer to the public key template. `hKey` : [in] number of attributes in the public key template. `pWrappedKey` : [out] pointer to the location to receive the wrapped key or NULL. `pusWrappedKeyLen` : [in, out] pointer to length of wrapped key buffer. ::: ## [Description](#description) :::{container} `FC_WrapKey` wraps (encrypts) a key. If `pWrappedKey` is NULL the length of the wrapped key is returned in `pusWrappedKeyLen` and FC_WrapKey may be called again with `pWrappedKey` set to retrieve the wrapped key. A user must log into the token (to assume the NSS User role) before calling `FC_WrapKey`. ::: ## [Return value](#return_value) ## [Examples](#examples) ## [See also](#see_also) :::{container} - [NSC_WrapKey](/en-US/NSC_WrapKey) :::