#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).