---
name: "Tspi_Data_Bind"
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_Data_Bind"
---

# Tspi\_Data\_Bind(3)

Encrypts a data blob

TCG Software Stack Developer's Reference

## NAME

Tspi\_Data\_Bind - Encrypts a data blob

## 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_Data_Bind(TSS_HENCDATA hEncData,     TSS_HKEY hEncKey,
                          UINT32       ulDataLength, BYTE*    rgbDataToBind);
```

## DESCRIPTION

**Tspi\_Data\_Bind** encrypts a data blob in a manner that is decryptable by **Tspi\_Data\_Unbind**. The data blob is encrypted using a public key operation with the key addressed by the given encryption key object. To bind data that is larger than the RSA public key modulus is the responsibility of the caller to perform the blocking and subsequent combination of data. The bound data blob is stored in the data object addressed by *hEncData* and can be exported from the object by **Tspi\_GetAttribData**. The caller of this function should perform validations that the public key presented to it is from a valid TPM.

## PARAMETERS

### hEncData

The handle of the data object which contains the encrypted data on successful completion of the command.

### hEncKey

Handle to the key object addressing the public key which is used to encrypt the data.

### ulDataLength

Indicates the length of the data provided at the parameter *rgbDataToBind*.

### rgbDataToBind

A pointer to the data to be encrypted.

## RETURN CODES

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

- TSS\_E\_INVALID\_HANDLE

  *hHash* is not a valid handle.

- TSS\_E\_INTERNAL\_ERROR

  An internal SW error has been detected.

- TSS\_E\_BAD\_PARAMETER

  One or more parameters is bad.

- TSS\_E\_INVALID\_ENCSCHEME

  Invalid encryption scheme.

- TSS\_E\_ENC\_INVALID\_LENGTH

  Invalid length of data to be encypted.

- TSS\_E\_ENC\_NO\_DATA

  No data to encrypt.

- TSS\_E\_ENC\_INVALID\_TYPE

  Invalid encryption type.

## CONFORMING TO

**Tspi\_Data\_Bind** conforms to the Trusted Computing Group Software Specification version 1.1 Golden

## SEE ALSO

[**Tspi\_Data\_Unbind**(3)](/Tspi_Data_Unbind/3.md), [**Tspi\_Data\_Unseal**(3)](/Tspi_Data_Unseal/3.md), [**Tspi\_Data\_Seal**(3)](/Tspi_Data_Seal/3.md).
