Fapi_CreateNv
Feature API

## Functions

TSS2_RC | Fapi_CreateNv (FAPI_CONTEXT *context, char const *path, char const *type, size_t size, char const *policyPath, char const *authValue)
TSS2_RC | Fapi_CreateNv_Async (FAPI_CONTEXT *context, char const *path, char const *type, size_t size, char const *policyPath, char const *authValue)
TSS2_RC | Fapi_CreateNv_Finish (FAPI_CONTEXT *context)

## Detailed Description

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

## Function Documentation

## Fapi_CreateNv()

TSS2_RC Fapi_CreateNv | ( | FAPI_CONTEXT * | context,
|  | char const * | path,
|  | char const * | type,
|  | size_t | size,
|  | char const * | policyPath,
|  | char const * | authValue )

One-Call function for Fapi_CreateNv

This command creates an NV index in the TPM using a given path and type.

Parameters

  [in,out] | context | The FAPI_CONTEXT
  [in] | path | The path to the new NV index
  [in] | type | The intended type of the new NV index. May be NULL
  [in] | size | The size of the new NV index in bytes. May be 0 if the size is inferred from the type
  [in] | policyPath | The path to the policy that is associated with the new NV index. May be NULL
  [in] | authValue | The authorization value that is associated with the new NV index. 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_PATH_ALREADY_EXISTS | if an NV index already exists at path.
  TSS2_FAPI_RC_BAD_VALUE | if type is non-NULL but invalid or does not match the size.
  TSS2_FAPI_RC_BAD_PATH | if policyPath is non-NULL and does not map to a FAPI policy or if path dos not refer to a valid NV index path.
  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_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_KEY_NOT_FOUND | if a key was not found.
  TSS2_FAPI_RC_GENERAL_FAILURE | if an internal error occurred.
  TSS2_FAPI_RC_NV_TOO_SMALL | if too many NV handles are defined.
  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.

## Fapi_CreateNv_Async()

TSS2_RC Fapi_CreateNv_Async | ( | FAPI_CONTEXT * | context,
|  | char const * | path,
|  | char const * | type,
|  | size_t | size,
|  | char const * | policyPath,
|  | char const * | authValue )

Asynchronous function for Fapi_CreateNv

This command creates an NV index in the TPM using a given path and type.

Call Fapi_CreateNv_Finish to finish the execution of this command.

Parameters

  [in,out] | context | The FAPI_CONTEXT
  [in] | path | The path to the new NV index
  [in] | type | The intended type of the new NV index. May be NULL
  [in] | size | The size of the new NV index in bytes. May be 0 if the size is inferred from the type
  [in] | policyPath | The path to the policy that is associated with the new NV index. May be NULL
  [in] | authValue | The authorization value that is associated with the new NV index. 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_PATH_ALREADY_EXISTS | if an NV index already exists at path.
  TSS2_FAPI_RC_BAD_VALUE | if type is non-NULL but invalid or does not match the size.
  TSS2_FAPI_RC_BAD_PATH | if policyPath is non-NULL and does not map to a FAPI policy or if path dos not refer to a valid NV index path.
  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_NO_TPM | if FAPI was initialized in no-TPM-mode via its config file.
  TSS2_FAPI_RC_PATH_NOT_FOUND | if a FAPI object path was not found during authorization.

## Fapi_CreateNv_Finish()

TSS2_RC Fapi_CreateNv_Finish | ( | FAPI_CONTEXT * | context | ) |

Asynchronous finish function for Fapi_CreateNv

This function should be called after a previous Fapi_CreateNv_Async.

Parameters

  [in,out] | context | The FAPI_CONTEXT

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_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_BAD_PATH | if a path is used in inappropriate context or contains illegal characters.
  TSS2_FAPI_RC_NV_TOO_SMALL | if too many NV handles are defined.
  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_PATH_ALREADY_EXISTS | if the object already exists in object store.