---
name: "Tspi_Hash_Sign"
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_Hash_Sign"
---

# Tspi\_Hash\_Sign(3)

sign the hash data of an object with a signing key

TCG Software Stack Developer's Reference

## NAME

Tspi\_Hash\_Sign - sign the hash data of an object with a signing key

## 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_Hash_Sign(TSS_HHASH hHash,              TSS_HKEY hKey,
                          UINT32    pulSignatureLength, BYTE**   prgbSignature);
```

## DESCRIPTION

**Tspi\_Hash\_Sign** signs the hash data of an object with a given signing key. The data must be set at the hash instance associated with *hHash* by calling **Tspi\_Hash\_SetHashValue** or **Tspi\_Hash\_UpdateHashValue**. The **Tspi\_Hash\_Sign** method allocates a memory block for the *prgbSignature* data. This memory must be released using **Tspi\_Context\_FreeMemory**.

## PARAMETERS

### hHash

The handle to the hash object instance whose hash value should be signed.

### hKey

Handle to the key object which should be used for the signature.

### pulSignatureLength

Receives the length of the signature data returned at the parameter *prgbSignature* on successful completion.

### prgbSignature

Receives a pointer to the signature data on successful completion.

## RETURN CODES

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

- TSS\_E\_INVALID\_HANDLE

  *hKey* 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\_HASH\_INVALID\_LENGTH

  Hash length is inconsistent with hash algorithm.

- TSS\_E\_HASH\_NO\_DATA

  Hash object has no internal hash value.

- TSS\_E\_HASH\_NO\_IDENTIFIER

  The hash algorithm identifier is not set.

## CONFORMING TO

**Tspi\_Hash\_Sign** conforms to the Trusted Computing Group Software Specification version 1.1 Golden

## SEE ALSO

[**Tspi\_Hash\_UpdateHashValue**(3)](/Tspi_Hash_UpdateHashValue/3.md), [**Tspi\_Hash\_SetHashValue**(3)](/Tspi_Hash_SetHashValue/3.md), [**Tspi\_Hash\_VerifySignature**(3)](/Tspi_Hash_VerifySignature/3.md).
