Fapi_GetTpmBlobs
Feature API

## Functions

TSS2_RC | Fapi_GetTpmBlobs (FAPI_CONTEXT *context, char const *path, uint8_t **tpm2bPublic, size_t *tpm2bPublicSize, uint8_t **tpm2bPrivate, size_t *tpm2bPrivateSize, char **policy)
TSS2_RC | Fapi_GetTpmBlobs_Async (FAPI_CONTEXT *context, char const *path)
TSS2_RC | Fapi_GetTpmBlobs_Finish (FAPI_CONTEXT *context, uint8_t **tpm2bPublic, size_t *tpm2bPublicSize, uint8_t **tpm2bPrivate, size_t *tpm2bPrivateSize, char **policy)

## Detailed Description

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

## Function Documentation

## Fapi_GetTpmBlobs()

TSS2_RC Fapi_GetTpmBlobs | ( | FAPI_CONTEXT * | context,
|  | char const * | path,
|  | uint8_t ** | tpm2bPublic,
|  | size_t * | tpm2bPublicSize,
|  | uint8_t ** | tpm2bPrivate,
|  | size_t * | tpm2bPrivateSize,
|  | char ** | policy )

One-Call function for Fapi_GetTpmBlobs

Get the public and private blobs of a TPM object. They can be loaded with a lower-level API such as the SAPI or the ESAPI.

Parameters

  [in,out] | context | The FAPI_CONTEXT
  [in] | path | The path to the key for which the blobs will be returned
  [out] | tpm2bPublic | The returned public area of the object. May be NULL
  [out] | tpm2bPublicSize | The size of tpm2bPublic in bytes. May be NULL
  [out] | tpm2bPrivate | The returned private area of the object. May be NULL
  [out] | tpm2bPrivateSize | The size of tpm2bPrivate in bytes. May be NULL
  [out] | policy | The policy that is associated with the object encoded in JSON. May be NULL

Return values

  TSS2_RC_SUCCESS | if the function call was a success.
  TSS2_FAPI_RC_BAD_REFERENCE | if context or path is NULL.
  TSS2_FAPI_RC_BAD_CONTEXT | if context corruption is detected.
  TSS2_FAPI_RC_BAD_PATH | if path does not map to a FAPI entity.
  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_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_BAD_VALUE | if an invalid value was passed into the function.
  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_GENERAL_FAILURE | if an internal error occurred.
  TSS2_FAPI_RC_NOT_PROVISIONED | FAPI was not provisioned.

## Fapi_GetTpmBlobs_Async()

TSS2_RC Fapi_GetTpmBlobs_Async | ( | FAPI_CONTEXT * | context,
|  | char const * | path )

Asynchronous function for Fapi_GetTpmBlobs

Get the public and private blobs of a TPM object. They can be loaded with a lower-level API such as the SAPI or the ESAPI.

Call Fapi_GetTpmBlobs_Finish to finish the execution of this command.

Parameters

  [in,out] | context | The FAPI_CONTEXT
  [in] | path | The path to the key for which the blobs will be returned

Return values

  TSS2_RC_SUCCESS | if the function call was a success.
  TSS2_FAPI_RC_BAD_REFERENCE | if context or path is NULL.
  TSS2_FAPI_RC_BAD_CONTEXT | if context corruption is detected.
  TSS2_FAPI_RC_BAD_PATH | if path does not map to a FAPI entity.
  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_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_BAD_VALUE | if an invalid value was passed into the function.
  TSS2_FAPI_RC_NOT_PROVISIONED | FAPI was not provisioned.

## Fapi_GetTpmBlobs_Finish()

TSS2_RC Fapi_GetTpmBlobs_Finish | ( | FAPI_CONTEXT * | context,
|  | uint8_t ** | tpm2bPublic,
|  | size_t * | tpm2bPublicSize,
|  | uint8_t ** | tpm2bPrivate,
|  | size_t * | tpm2bPrivateSize,
|  | char ** | policy )

Asynchronous finish function for Fapi_GetTpmBlobs

This function should be called after a previous Fapi_GetTpmBlobs_Async.

Parameters

  [in,out] | context | The FAPI_CONTEXT
  [out] | tpm2bPublic | The returned public area of the object. May be NULL
  [out] | tpm2bPublicSize | The size of tpm2bPublic in bytes. May be NULL
  [out] | tpm2bPrivate | The returned private area of the object. May be NULL
  [out] | tpm2bPrivateSize | The size of tpm2bPrivate in bytes. May be NULL
  [out] | policy | The policy that is associated with the object encoded in JSON. May be NULL

Return values

  TSS2_RC_SUCCESS | if the function call was a success.
  TSS2_FAPI_RC_BAD_REFERENCE | if context 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_PATH | if a path is used in inappropriate context or contains illegal characters.
  TSS2_FAPI_RC_GENERAL_FAILURE | if an internal error occurred.
  TSS2_FAPI_RC_BAD_VALUE | if an invalid value was passed into the function.