---
name: "Fapi_Quote"
section: "3"
platform: "linux"
package: "tpm2-tss"
version: "4.2.0-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Fapi_Quote"
---

# Fapi\_Quote(3)

Fapi\_Quote

## NAME

Fapi\_Quote - Fapi\_Quote

## SYNOPSIS

### Functions

TSS2\_RC **Fapi\_Quote** (**FAPI\_CONTEXT** \*context, uint32\_t \*pcrList, size\_t pcrListSize, char const \*keyPath, char const \*quoteType, uint8\_t const \*qualifyingData, size\_t qualifyingDataSize, char \*\*quoteInfo, uint8\_t \*\*signature, size\_t \*signatureSize, char \*\*pcrLog, char \*\*certificate)\
 TSS2\_RC **Fapi\_Quote\_Async** (**FAPI\_CONTEXT** \*context, uint32\_t \*pcrList, size\_t pcrListSize, char const \*keyPath, char const \*quoteType, uint8\_t const \*qualifyingData, size\_t qualifyingDataSize)\
 TSS2\_RC **Fapi\_Quote\_Finish** (**FAPI\_CONTEXT** \*context, char \*\*quoteInfo, uint8\_t \*\*signature, size\_t \*signatureSize, char \*\*pcrLog, char \*\*certificate)\

## Detailed Description

FAPI functions to invoke Quote either as one-call or in an asynchronous manner.

## Function Documentation

### TSS2\_RC Fapi\_Quote (FAPI\_CONTEXT \* context, uint32\_t \* pcrList, size\_t pcrListSize, char const \* keyPath, char const \* quoteType, uint8\_t const \* qualifyingData, size\_t qualifyingDataSize, char \*\* quoteInfo, uint8\_t \*\* signature, size\_t \* signatureSize, char \*\* pcrLog, char \*\* certificate)

One-Call function for Fapi\_Quote

Given a set of PCRs and a restricted signing key, it will sign those PCRs and return the quote.

**Parameters**

*context* The **FAPI\_CONTEXT** \
 *pcrList* The list of PCRs that are to be quoted \
 *pcrListSize* The number of entries in the pcrList array \
 *keyPath* The path to the signing key \
 *quoteType* The type of quote. May be NULL \
 *qualifyingData* A nonce provided by the caller. May be NULL \
 *qualifyingDataSize* The size of qualifyingData in bytes. Must be 0 if qualifyingData is NULL \
 *quoteInfo* A JSON-encoded structure holding the inputs to the quote operation \
 *signature* The signature of the PCRs \
 *signatureSize* The size of the signature in bytes. May be NULL \
 *pcrLog* The log of the PCR. May be NULL \
 *certificate* The certificate associated with the signing key. May be NULL

**Return values**

*TSS2\_RC\_SUCCESS* if the function call was a success. \
 *TSS2\_FAPI\_RC\_BAD\_REFERENCE* if context, pcrList, keyPath, quoteInfo or signature is NULL. \
 *TSS2\_FAPI\_RC\_BAD\_CONTEXT* if context corruption is detected. \
 *TSS2\_FAPI\_RC\_KEY\_NOT\_FOUND* if path does not map to a FAPI entity. \
 *TSS2\_FAPI\_RC\_BAD\_KEY* if the entity at path is not a key, or is a key that is unsuitable for the requested operation. \
 *TSS2\_FAPI\_RC\_BAD\_VALUE* if qualifyingData is invalid or if qualifyingDataSize is zero. \
 *TSS2\_FAPI\_RC\_IO\_ERROR* if the data cannot be saved. \
 *TSS2\_FAPI\_RC\_BAD\_SEQUENCE* if the context has an asynchronous operation already pending. \
 *TSS2\_FAPI\_RC\_MEMORY* if the FAPI cannot allocate enough memory for internal operations or return parameters. \
 *TSS2\_FAPI\_RC\_NO\_TPM* if FAPI was initialized in no-TPM-mode via its config file. \
 *TSS2\_FAPI\_RC\_TRY\_AGAIN* if an I/O operation is not finished yet and this function needs to be called again. \
 *TSS2\_FAPI\_RC\_PATH\_NOT\_FOUND* if a FAPI object path was not found during authorization. \
 *TSS2\_FAPI\_RC\_GENERAL\_FAILURE* if an internal error occurred. \
 *TSS2\_FAPI\_RC\_AUTHORIZATION\_UNKNOWN* if a required authorization callback is not set. \
 *TSS2\_FAPI\_RC\_AUTHORIZATION\_FAILED* if the authorization attempt fails. \
 *TSS2\_FAPI\_RC\_POLICY\_UNKNOWN* if policy search for a certain policy digest was not successful. \
 *TSS2\_ESYS\_RC\_\** possible error codes of ESAPI. \
 *TSS2\_FAPI\_RC\_NOT\_PROVISIONED* FAPI was not provisioned. \
 *TSS2\_FAPI\_RC\_BAD\_PATH* if the path is used in inappropriate context or contains illegal characters.

### TSS2\_RC Fapi\_Quote\_Async (FAPI\_CONTEXT \* context, uint32\_t \* pcrList, size\_t pcrListSize, char const \* keyPath, char const \* quoteType, uint8\_t const \* qualifyingData, size\_t qualifyingDataSize)

Asynchronous function for Fapi\_Quote

Given a set of PCRs and a restricted signing key, it will sign those PCRs and return the quote.

Call Fapi\_Quote\_Finish to finish the execution of this command.

**Parameters**

*context* The **FAPI\_CONTEXT** \
 *pcrList* The list of PCRs that are to be quoted \
 *pcrListSize* The number of entries in the pcrList array \
 *keyPath* The path to the signing key \
 *quoteType* The type of quote. May be NULL \
 *qualifyingData* A nonce provided by the caller. May be NULL \
 *qualifyingDataSize* The size of qualifyingData in bytes. Must be 0 if qualifyingData is NULL

**Return values**

*TSS2\_RC\_SUCCESS* if the function call was a success. \
 *TSS2\_FAPI\_RC\_BAD\_REFERENCE* if context, pcrList or keyPath is NULL. \
 *TSS2\_FAPI\_RC\_BAD\_CONTEXT* if context corruption is detected. \
 *TSS2\_FAPI\_RC\_KEY\_NOT\_FOUND* if path does not map to a FAPI entity. \
 *TSS2\_FAPI\_RC\_BAD\_KEY* if the entity at path is not a key, or is a key that is unsuitable for the requested operation. \
 *TSS2\_FAPI\_RC\_BAD\_VALUE* if pcrListSize is 0, qualifyingData is invalid or if qualifyingDataSize is zero. \
 *TSS2\_FAPI\_RC\_IO\_ERROR* if the data cannot be saved. \
 *TSS2\_FAPI\_RC\_BAD\_SEQUENCE* if the context has an asynchronous operation already pending. \
 *TSS2\_FAPI\_RC\_MEMORY* if the FAPI cannot allocate enough memory for internal operations or return parameters. \
 *TSS2\_FAPI\_RC\_NO\_TPM* if FAPI was initialized in no-TPM-mode via its config file.

### TSS2\_RC Fapi\_Quote\_Finish (FAPI\_CONTEXT \* context, char \*\* quoteInfo, uint8\_t \*\* signature, size\_t \* signatureSize, char \*\* pcrLog, char \*\* certificate)

Asynchronous finish function for Fapi\_Quote

This function should be called after a previous Fapi\_Quote\_Async.

**Parameters**

*context* The **FAPI\_CONTEXT** \
 *quoteInfo* A JSON-encoded structure holding the inputs to the quote operation \
 *signature* The signature of the PCRs \
 *signatureSize* The size of the signature in bytes. May be NULL \
 *pcrLog* The log of the PCR. May be NULL \
 *certificate* The certificate associated with the signing key. May be NULL

**Return values**

*TSS2\_RC\_SUCCESS* if the function call was a success. \
 *TSS2\_FAPI\_RC\_BAD\_REFERENCE* if context, quoteInfor or signature is NULL. \
 *TSS2\_FAPI\_RC\_BAD\_CONTEXT* if context corruption is detected. \
 *TSS2\_FAPI\_RC\_BAD\_SEQUENCE* if the context has an asynchronous operation already pending. \
 *TSS2\_FAPI\_RC\_IO\_ERROR* if the data cannot be saved. \
 *TSS2\_FAPI\_RC\_MEMORY* if the FAPI cannot allocate enough memory for internal operations or return parameters. \
 *TSS2\_FAPI\_RC\_TRY\_AGAIN* if the asynchronous operation is not yet complete. Call this function again later. \
 *TSS2\_FAPI\_RC\_BAD\_VALUE* if an invalid value was passed into the function. \
 *TSS2\_FAPI\_RC\_PATH\_NOT\_FOUND* if a FAPI object path was not found during authorization. \
 *TSS2\_FAPI\_RC\_KEY\_NOT\_FOUND* if a key was not found. \
 *TSS2\_FAPI\_RC\_GENERAL\_FAILURE* if an internal error occurred. \
 *TSS2\_FAPI\_RC\_AUTHORIZATION\_UNKNOWN* if a required authorization callback is not set. \
 *TSS2\_FAPI\_RC\_AUTHORIZATION\_FAILED* if the authorization attempt fails. \
 *TSS2\_FAPI\_RC\_POLICY\_UNKNOWN* if policy search for a certain policy digest was not successful. \
 *TSS2\_ESYS\_RC\_\** possible error codes of ESAPI. \
 *TSS2\_FAPI\_RC\_NOT\_PROVISIONED* FAPI was not provisioned. \
 *TSS2\_FAPI\_RC\_BAD\_PATH* if the path is used in inappropriate context or contains illegal characters.

## Author

Generated automatically by Doxygen for tpm2-tss from the source code.
