---
name: "Tspi_TPM_CollateIdentityRequest"
section: "3"
platform: "linux"
package: "libtspi-dev"
version: "0.3.15-0.4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Tspi_TPM_CollateIdentityRequest"
---

# Tspi\_TPM\_CollateIdentityRequest(3)

Gets all the informatin necessary to send to a trusted third party (TTP), repartory to asking the TTP to create a certificate for identity.

## NAME

Tspi\_TPM\_CollateIdentityRequest - Gets all the informatin necessary to send to a trusted third party (TTP), repartory to asking the TTP to create a certificate for identity.

## SYNOPSIS

```
#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);
```

## DESCRIPTION

**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.

## PARAMETERS

### hTPM

Handle of the TPM object.

### hKeySRK

Handle to the key object representing the Storage Root Key

### hCAPubKey

Handle to the key object representing the public key of the CA which signs the certificate of the created identity key.

### ulIdentityLabelLength

Supplies the length (in bytes) of the rgbIdentityLabelData parameter

### rgbLabelData

Pointer to a memory block containing the identity label, which should be a UNICODE string

### hIdentityKey

Handle to the identity key object

### algid

The type of symmetric algorithm touse as required by the Enhanced CA.

### pulTCPAIdentityReqLength

Recieves the length (in bytes) of the prgbTCPAIdentityReq parameter

### prgbTCPAIdentyReq

Pointer to the memory block containing the certicficate request structure.

## RETURN CODES

**Tspi\_TPM\_CollateIdentityRequest** returns TSS\_SUCCESS on success, otherwise one of the following values are returned:

- TSS\_E\_INVALID\_HANDLE

  Either **hTPM** or **hKeySRK** or **hCAPubKey** is not a valid handle.

- TSS\_E\_BAD\_PARAMETER

  - TSS\_E\_INTERNAL\_ERROR

  An error occurred internal to the TSS.

## CONFORMING TO

**Tspi\_TPM\_CollateIdentityRequest** conforms to the Trusted Computing Group Software Specification version 1.1 Golden

## SEE ALSO

[**Tspi\_Context\_LoadKeyByUUID**(3)](/Tspi_Context_LoadKeyByUUID/3.md).
