#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_TPM_CollateIdentityRequest(TSS_HTPM hTPM, TSS_HKEY hKeySRK,
TSS_HKEY hCAPPubKey,
UINT32 ulIdentityLabelData, BYTE* rgbIdentityLabelData,
TSS_HKEY hIdentityKey, TSS_ALGORITHM_ID algid,
UINT32* pulTCPAIdentityReqLength, BYTE** prgbTCPAIdentityReq);
TSS_TPM_CollateIdentityRequest creates an identity key, binds it to the label and returns a certificate request package. The privacty CA requires this certificate request to attest the identity key.
Only the Owner of the TPM has the privledge of creating a TPM identity key.
The symmetric session key is required to provide confidentiality of the "TCPA_IDENTITY_REQ" data structure, which should be sent to the Privacy CA chosen by the owner.
Tspi_TPM_CollateIdentityRequest returns TSS_SUCCESS on success, otherwise one of the following values are returned:
Tspi_TPM_CollateIdentityRequest conforms to the Trusted Computing Group Software Specification version 1.1 Golden
Tspi_Context_LoadKeyByUUID(3).