Tspi_Key_WrapKey(3) wrap a key with the key addressed by hWrappingKey.


#include <tss/platform.h>
#include <tss/tcpa_defines.h>
#include <tss/tcpa_typedef.h>
#include <tss/tcpa_struct.h>
#include <tss/tss_typedef.h>
#include <tss/tss_structs.h>
#include <tss/tspi.h>

TSS_RESULT Tspi_Key_WrapKey(TSS_HKEY hKey, TSS_HKEY hWrappingKey,
TSS_HPCRS hPcrComposite);


TSS_Key_WrapKey wraps the private key hKey using the public key addressed by hWrappingKey. If hPcrComposite is not set to NULL (0), the created key blob is bound to its PCR values. The key object addressed by hKey must contain the key information needed for the creation. On successful return from this call, hKey can be loaded into a TPM. hKey must have been created as a migratable key and should have its usage and migrations secrets set using Tspi_Policy_SetSecret(3). Also, hKey should have had its private key set to either RSA private component, p or q.



The handle of the key object that is wrapped.


The handle to the key used to wrap the newly created key.


The handle to an object, if the value of the handle doesn't equal NULL, the newly create key will be bound ot the PCR values described with this object.


Tspi_Key_WrapKey returns TSS_SUCCESS on success, otherwise one of the following values are returned:

TSS_E_INVALID_HANDLE - Either hKey, hWrappingKey or hPcrComposite are invalid handles.
TSS_E_INTERNAL_ERROR - An error occurred internal to the TSS.


Tspi_Key_WrapKey conforms to the Trusted Computing Group Software Specification version 1.1 Golden