(mozilla-projects-nss-reference-fc-derivekey)= # FC_DeriveKey ## [Name](#name) :::{container} FC_DeriveKey - derive a key from a base key ::: ## [Syntax](#syntax) :::{container} ```{code} CK_RV FC_DeriveKey( CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hBaseKey, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG usAttributeCount, CK_OBJECT_HANDLE_PTR phKey ); ``` ::: ## [Parameters](#parameters) :::{container} `hSession` : [in] session handle. `pMechanism` : [in] pointer to the mechanism to use. `hBaseKey` : [in] handle of the base key. `pWrappedKey` : [in] pointer to the wrapped key. `pTemplate` : [in] pointer to the list of attributes for the new key. `usAttributeCount` : [in] number of attributes in the template. `phKey` : [out] pointer to the location to receive the handle of the new key. ::: ## [Description](#description) :::{container} `FC_DeriveKey` derives (decrypts) a key and creates a new key object. A user must log into the token (to assume the NSS User role) before calling `FC_DeriveKey`. ::: ## [Return value](#return_value) ## [Examples](#examples) ## [See also](#see_also) :::{container} - [NSC_DeriveKey](/en-US/NSC_DeriveKey) :::