Esys_NV_SetBits(3)

πŸ’– NAME πŸ’–

Okay bestie, this is Esys_NV_SetBits β€” yes, from the Esys_NV_SetBits(3) page in the Library Functions Manual. It's literally the ESAPI function for the TPM2_NV_SetBits command. TPM business, no cap. πŸ’…


✨ SYNOPSIS ✨

πŸŽ€ Functions πŸŽ€

TSS2_RC Esys_NV_SetBits_Async (ESYS_CONTEXT *esysContext, ESYS_TR
    authHandle, ESYS_TR nvIndex, ESYS_TR shandle1, ESYS_TR shandle2,
    ESYS_TR shandle3, UINT64 bits)
TSS2_RC Esys_NV_SetBits (ESYS_CONTEXT *esysContext, ESYS_TR authHandle,
    ESYS_TR nvIndex, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR
    shandle3, UINT64 bits)
TSS2_RC Esys_NV_SetBits_Finish (ESYS_CONTEXT *esysContext)

🌸 Detailed Description 🌸

ESAPI function to invoke the TPM2_NV_SetBits command either as a one-call or in an asynchronous manner. So like, pick your vibe: wait for the whole thing, or send it and come back later. πŸ¦‹


🌈 Function Documentation 🌈

πŸ’« TSS2_RC Esys_NV_SetBits πŸ’«

TSS2_RC Esys_NV_SetBits (ESYS_CONTEXT * esysContext, ESYS_TR authHandle,
    ESYS_TR nvIndex, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3,
    UINT64 bits)

One-Call function for TPM2_NV_SetBits

Bestie, this is the one-call variant of TPM2_NV_SetBits. It invokes the command and then blocks until the TPM response is available β€” like waiting for your bestie to text back, except it's a TPM and it's doing important little security things. 😭 All input parameters are const. The memory for non-simple output parameters is allocated by the function implementation.

🫢 Parameters 🫢

  • esysContext β€” The ESYS_CONTEXT.
  • authHandle β€” Handle indicating the source of the authorization value.
  • nvIndex β€” NV Index of the area in which the bit is to be set.
  • shandle1 β€” Session handle for authorization of authHandle.
  • shandle2 β€” Second session handle.
  • shandle3 β€” Third session handle.
  • bits β€” The data to OR with the current contents.

πŸ’€ Return values πŸ’€

  • TSS2_RC_SUCCESS β€” if the function call was a success.
  • TSS2_ESYS_RC_BAD_REFERENCE β€” if the esysContext or required input pointers or required output handle references are NULL.
  • TSS2_ESYS_RC_BAD_CONTEXT β€” if esysContext corruption is detected.
  • TSS2_ESYS_RC_MEMORY β€” if the ESAPI cannot allocate enough memory for internal operations or return parameters.
  • TSS2_ESYS_RC_BAD_SEQUENCE β€” if the context has an asynchronous operation already pending.
  • TSS2_ESYS_RC_INSUFFICIENT_RESPONSE β€” if the TPM's response does not at least contain the tag, response length, and response code.
  • TSS2_ESYS_RC_MALFORMED_RESPONSE β€” if the TPM's response is corrupted.
  • TSS2_ESYS_RC_RSP_AUTH_FAILED β€” if the response HMAC from the TPM did not verify.
  • TSS2_ESYS_RC_MULTIPLE_DECRYPT_SESSIONS β€” if more than one session has the 'decrypt' attribute bit set.
  • TSS2_ESYS_RC_MULTIPLE_ENCRYPT_SESSIONS β€” if more than one session has the 'encrypt' attribute bit set.
  • TSS2_ESYS_RC_BAD_TR β€” if any of the ESYS_TR objects are unknown to the ESYS_CONTEXT or are of the wrong type or if required ESYS_TR objects are ESYS_TR_NONE.
  • TSS2_ESYS_RC_NO_DECRYPT_PARAM β€” if one of the sessions has the 'decrypt' attribute set and the command does not support encryption of the first command parameter.
  • TSS2_ESYS_RC_NO_ENCRYPT_PARAM β€” if one of the sessions has the 'encrypt' attribute set and the command does not support encryption of the first response parameter.
  • TSS2_RCs produced by lower layers β€” of the software stack may be returned to the caller unaltered unless handled internally.

πŸ’« TSS2_RC Esys_NV_SetBits_Async πŸ’«

TSS2_RC Esys_NV_SetBits_Async (ESYS_CONTEXT * esysContext, ESYS_TR
    authHandle, ESYS_TR nvIndex, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR
    shandle3, UINT64 bits)

Asynchronous function for TPM2_NV_SetBits

This one invokes TPM2_NV_SetBits in an asynchronous variant, meaning it returns as soon as the command has been sent downwards the stack to the TPM β€” send it and go, main character energy. ✨ All input parameters are const. In order to retrieve the TPM's response call Esys_NV_SetBits_Finish.

🫢 Parameters 🫢

  • esysContext β€” The ESYS_CONTEXT.
  • authHandle β€” Handle indicating the source of the authorization value.
  • nvIndex β€” NV Index of the area in which the bit is to be set.
  • shandle1 β€” Session handle for authorization of authHandle.
  • shandle2 β€” Second session handle.
  • shandle3 β€” Third session handle.
  • bits β€” The data to OR with the current contents.

πŸ’€ Return values πŸ’€

  • ESYS_RC_SUCCESS β€” if the function call was a success.
  • TSS2_ESYS_RC_BAD_REFERENCE β€” if the esysContext or required input pointers or required output handle references are NULL.
  • TSS2_ESYS_RC_BAD_CONTEXT β€” if esysContext corruption is detected.
  • TSS2_ESYS_RC_MEMORY β€” if the ESAPI cannot allocate enough memory for internal operations or return parameters.
  • TSS2_RCs produced by lower layers β€” of the software stack may be returned to the caller unaltered unless handled internally.
  • TSS2_ESYS_RC_MULTIPLE_DECRYPT_SESSIONS β€” if more than one session has the 'decrypt' attribute bit set.
  • TSS2_ESYS_RC_MULTIPLE_ENCRYPT_SESSIONS β€” if more than one session has the 'encrypt' attribute bit set.
  • TSS2_ESYS_RC_BAD_TR β€” if any of the ESYS_TR objects are unknown to the ESYS_CONTEXT or are of the wrong type or if required ESYS_TR objects are ESYS_TR_NONE.
  • TSS2_ESYS_RC_NO_DECRYPT_PARAM β€” if one of the sessions has the 'decrypt' attribute set and the command does not support encryption of the first command parameter.
  • TSS2_ESYS_RC_NO_ENCRYPT_PARAM β€” if one of the sessions has the 'encrypt' attribute set and the command does not support encryption of the first response parameter.

πŸ’« TSS2_RC Esys_NV_SetBits_Finish πŸ’«

TSS2_RC Esys_NV_SetBits_Finish (ESYS_CONTEXT * esysContext)

Asynchronous finish function for TPM2_NV_SetBits

This function returns the results of a TPM2_NV_SetBits command invoked via Esys_NV_SetBits_Finish β€” yes, that's what the page says, and I'm not out here rewriting the lore. 🫢 All non-simple output parameters are allocated by the function's implementation. NULL can be passed for every output parameter if the value is not required.

🫢 Parameters 🫢

  • esysContext β€” The ESYS_CONTEXT.

πŸ’€ Return values πŸ’€

  • TSS2_RC_SUCCESS β€” on success.
  • ESYS_RC_SUCCESS β€” if the function call was a success.
  • TSS2_ESYS_RC_BAD_REFERENCE β€” if the esysContext or required input pointers or required output handle references are NULL.
  • TSS2_ESYS_RC_BAD_CONTEXT β€” if esysContext corruption is detected.
  • TSS2_ESYS_RC_MEMORY β€” if the ESAPI cannot allocate enough memory for internal operations or return parameters.
  • TSS2_ESYS_RC_BAD_SEQUENCE β€” if the context has an asynchronous operation already pending.
  • TSS2_ESYS_RC_TRY_AGAIN β€” if the timeout counter expires before the TPM response is received.
  • TSS2_ESYS_RC_INSUFFICIENT_RESPONSE β€” if the TPM's response does not at least contain the tag, response length, and response code.
  • TSS2_ESYS_RC_RSP_AUTH_FAILED β€” if the response HMAC from the TPM did not verify.
  • TSS2_ESYS_RC_MALFORMED_RESPONSE β€” if the TPM's response is corrupted.
  • TSS2_RCs produced by lower layers β€” of the software stack may be returned to the caller unaltered unless handled internally.

πŸ‘‘ Author πŸ‘‘

Generated automatically by Doxygen for tpm2-tss from the source code. So not me, bestie β€” the robots did this one. πŸ€–πŸ’–


Footer sign-off, periodt: source tpm2-tss, Version 4.1.5, page Esys_NV_SetBits(3) β€” and no date was printed, so I'm not inventing one, bestie. πŸ™ˆπŸ’– xoxo

πŸ“¦ where this page comes from