Feature API

## Topics

| Fapi_Initialize
| Fapi_Finalize
| Fapi_GetTcti
| Fapi_GetPollHandles
| Fapi_Free
| Fapi_GetInfo
| Fapi_Provision
| Fapi_GetPlatformCertificates
| Fapi_GetEsysBlobs
| Fapi_GetRandom
| Fapi_Import
| Fapi_List
| Fapi_Delete
| Fapi_ChangeAuth
| Fapi_SetDescription
| Fapi_GetDescription
| Fapi_SetAppData
| Fapi_GetAppData
| Fapi_GetTpmBlobs
| Fapi_CreateKey
| Fapi_Sign
| Fapi_VerifySignature
| Fapi_Encrypt
| Fapi_Decrypt
| Fapi_SetCertificate
| Fapi_GetCertificate
| Fapi_ExportKey
| Fapi_CreateSeal
| Fapi_Unseal
| Fapi_ExportPolicy
| Fapi_AuthorizePolicy
| Fapi_WriteAuthorizeNv
| Fapi_PcrRead
| Fapi_PcrExtend
| Fapi_Quote
| Fapi_VerifyQuote
| Fapi_CreateNv
| Fapi_NvRead
| Fapi_NvWrite
| Fapi_NvExtend
| Fapi_NvIncrement
| Fapi_NvSetBits
| Fapi_SetAuthCB
| Fapi_SetBranchCB
| Fapi_SetSignCB
| Internals of Feature API

## Typedefs

typedef struct FAPI_CONTEXT | FAPI_CONTEXT

## Detailed Description

Feature API (FAPI) as described in the TSS 2.0 Feature API (FAPI) Specification. This API provides a very abstract view on TPM functionalities most suitable for 80 percent of applications. In mostly uses standard types in its parameter list. Policies are encoded in JSON, whereas most key material is encoded as PEM. Both the synchronous and asynchronous API are exposed through a single library: libtss2-fapi. In order to perform an asynchronous invocation of FAPI functions, the following code serves as a template: do { r = Fapi_GetPollHandles(fc, &ph, &nph); if (r == TSS2_RC_SUCCESS) { poll(ph, nph, -1); Fapi_Free(ph); } r = Fapi_*_Finish(fc, ...); } while (r == TSS2_FAPI_RC_TRY_AGAIN);

## Typedef Documentation

## FAPI_CONTEXT

typedef struct FAPI_CONTEXT FAPI_CONTEXT

Reference to the FAPI_CONTEXT that holds data for the connection to the TPM as well as the metadata for TPM Resource as well as links to the key- and policy store or key material for encrypted sessions.