---
name: "Tspi_TPM_TakeOwnership"
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_TakeOwnership"
---

# Tspi\_TPM\_TakeOwnership(3)

take ownership of a TPM

TCG Software Stack Developer's Reference

## NAME

Tspi\_TPM\_TakeOwnership - take ownership of a TPM

## 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_TakeOwnership(TSS_HTPM hTPM, TSS_HKEY hKeySRK,
                                  TSS_HKEY hEndorsementPubKey);
```

## DESCRIPTION

**Tspi\_TPM\_TakeOwnership** takes ownership of a TPM. Taking ownership is the process of inserting a shared secret into the TPM. The owner of the TPM (anyone who knows the shared secret) has the right to perform special operations.

## PARAMETERS

### hTPM

The *hTPM* parameter is used to specify the handle of the TPM object.

### hKeySRK

The *hKeySRK* parameter is the handle to the object representing the TPM's Storage Root Key.

### hEndorsementPubKey

The *hEndorsementPubKey* parameter is the handle to the object representing the TPM's endorsement public key. This key is required for encrypting the secret of the SRK and the TPM owner secret. If NULL, the TSP internally queries the TPM for that endorsement public key.

## RETURN CODES

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

- TSS\_E\_INVALID\_HANDLE

  Either the TPM or one of the key handles is not valid.

- TSS\_E\_INTERNAL\_ERROR

  An internal SW error has been detected.

## CONFORMING TO

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

## SEE ALSO

[**Tspi\_TPM\_ClearOwner**(3)](/Tspi_TPM_ClearOwner/3.md)
