tpm2-tss  master
TPM Software stack 2.0 TCG spec compliant implementation
Fapi_Quote

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

◆ Fapi_Quote()

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
[in,out]contextThe FAPI_CONTEXT
[in]pcrListThe list of PCRs that are to be quoted
[in]pcrListSizeThe size of pcrList in bytes
[in]keyPathThe path to the signing key
[in]quoteTypeThe type of quote. May be NULL
[in]qualifyingDataA nonce provided by the caller. May be NULL
[in]qualifyingDataSizeThe size of qualifyingData in bytes. Must be 0 if qualifyingData is NULL
[out]quoteInfoA JSON-encoded structure holding the inputs to the quote operation
[out]signatureThe signature of the PCRs
[out]signatureSizeThe size of the signature in bytes. May be NULL
[out]pcrLogThe log of the PCR. May be NULL
[out]certificateThe certificate associated with the signing key. May be NULL
Return values
TSS2_RC_SUCCESSif the function call was a success.
TSS2_FAPI_RC_BAD_REFERENCEif context, pcrList, keyPath, quoteInfo or signature is NULL.
TSS2_FAPI_RC_BAD_CONTEXTif context corruption is detected.
TSS2_FAPI_RC_KEY_NOT_FOUNDif path does not map to a FAPI entity.
TSS2_FAPI_RC_BAD_KEYif the entity at path is not a key, or is a key that is unsuitable for the requested operation.
TSS2_FAPI_RC_BAD_VALUEif qualifyingData is invalid or if qualifyingDataSize is zero.
TSS2_FAPI_RC_IO_ERRORif the data cannot be saved.
TSS2_FAPI_RC_BAD_SEQUENCEif the context has an asynchronous operation already pending.
TSS2_FAPI_RC_MEMORYif the FAPI cannot allocate enough memory for internal operations or return parameters.
TSS2_FAPI_RC_NO_TPMif FAPI was initialized in no-TPM-mode via its config file.
TSS2_FAPI_RC_TRY_AGAINif an I/O operation is not finished yet and this function needs to be called again.
TSS2_FAPI_RC_PATH_NOT_FOUNDif a FAPI object path was not found during authorization.
TSS2_FAPI_RC_GENERAL_FAILUREif an internal error occurred.
TSS2_FAPI_RC_AUTHORIZATION_UNKNOWNif a required authorization callback is not set.
TSS2_FAPI_RC_AUTHORIZATION_FAILEDif the authorization attempt fails.
TSS2_FAPI_RC_POLICY_UNKNOWNif policy search for a certain policy digest was not successful.
TSS2_ESYS_RC_*possible error codes of ESAPI.
TSS2_FAPI_RC_NOT_PROVISIONEDFAPI was not provisioned.
TSS2_FAPI_RC_BAD_PATHif the path is used in inappropriate context or contains illegal characters.

◆ Fapi_Quote_Async()

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
[in,out]contextThe FAPI_CONTEXT
[in]pcrListThe list of PCRs that are to be quoted
[in]pcrListSizeThe size of pcrList in bytes
[in]keyPathThe path to the signing key
[in]quoteTypeThe type of quote. May be NULL
[in]qualifyingDataA nonce provided by the caller. May be NULL
[in]qualifyingDataSizeThe size of qualifyingData in bytes. Must be 0 if qualifyingData is NULL
Return values
TSS2_RC_SUCCESSif the function call was a success.
TSS2_FAPI_RC_BAD_REFERENCEif context, pcrList or keyPath is NULL.
TSS2_FAPI_RC_BAD_CONTEXTif context corruption is detected.
TSS2_FAPI_RC_KEY_NOT_FOUNDif path does not map to a FAPI entity.
TSS2_FAPI_RC_BAD_KEYif the entity at path is not a key, or is a key that is unsuitable for the requested operation.
TSS2_FAPI_RC_BAD_VALUEif pcrListSize is 0, qualifyingData is invalid or if qualifyingDataSize is zero.
TSS2_FAPI_RC_IO_ERRORif the data cannot be saved.
TSS2_FAPI_RC_BAD_SEQUENCEif the context has an asynchronous operation already pending.
TSS2_FAPI_RC_MEMORYif the FAPI cannot allocate enough memory for internal operations or return parameters.
TSS2_FAPI_RC_NO_TPMif FAPI was initialized in no-TPM-mode via its config file.

◆ Fapi_Quote_Finish()

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
[in,out]contextThe FAPI_CONTEXT
[out]quoteInfoA JSON-encoded structure holding the inputs to the quote operation
[out]signatureThe signature of the PCRs
[out]signatureSizeThe size of the signature in bytes. May be NULL
[out]pcrLogThe log of the PCR. May be NULL
[out]certificateThe certificate associated with the signing key. May be NULL
Return values
TSS2_RC_SUCCESSif the function call was a success.
TSS2_FAPI_RC_BAD_REFERENCEif context, quoteInfor or signature is NULL.
TSS2_FAPI_RC_BAD_CONTEXTif context corruption is detected.
TSS2_FAPI_RC_BAD_SEQUENCEif the context has an asynchronous operation already pending.
TSS2_FAPI_RC_IO_ERRORif the data cannot be saved.
TSS2_FAPI_RC_MEMORYif the FAPI cannot allocate enough memory for internal operations or return parameters.
TSS2_FAPI_RC_TRY_AGAINif the asynchronous operation is not yet complete. Call this function again later.
TSS2_FAPI_RC_BAD_VALUEif an invalid value was passed into the function.
TSS2_FAPI_RC_PATH_NOT_FOUNDif a FAPI object path was not found during authorization.
TSS2_FAPI_RC_KEY_NOT_FOUNDif a key was not found.
TSS2_FAPI_RC_GENERAL_FAILUREif an internal error occurred.
TSS2_FAPI_RC_AUTHORIZATION_UNKNOWNif a required authorization callback is not set.
TSS2_FAPI_RC_AUTHORIZATION_FAILEDif the authorization attempt fails.
TSS2_FAPI_RC_POLICY_UNKNOWNif policy search for a certain policy digest was not successful.
TSS2_ESYS_RC_*possible error codes of ESAPI.
TSS2_FAPI_RC_NOT_PROVISIONEDFAPI was not provisioned.
TSS2_FAPI_RC_BAD_PATHif the path is used in inappropriate context or contains illegal characters.