Esys_NV_Write(3)

πŸ’Ύ Esys_NV_Write β€” the ESAPI function for the TPM2_NV_Write command πŸ’Ύ

okay so bestie, welcome to the Esys_NV_Write(3) page from the tpm2-tss library πŸŽ€ this is the manual for the ESAPI function that invokes TPM2_NV_Write, and yes you can do it as a one-call or async, we love options πŸ’…


✨ SYNOPSIS ✨

🫢 Functions

TSS2_RC Esys_NV_Write_Async (ESYS_CONTEXT *esysContext, ESYS_TR
    authHandle, ESYS_TR nvIndex, ESYS_TR shandle1, ESYS_TR shandle2,
    ESYS_TR shandle3, const TPM2B_MAX_NV_BUFFER *data, UINT16 offset)

TSS2_RC Esys_NV_Write (ESYS_CONTEXT *esysContext, ESYS_TR authHandle,
    ESYS_TR nvIndex, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR
    shandle3, const TPM2B_MAX_NV_BUFFER *data, UINT16 offset)

TSS2_RC Esys_NV_Write_Finish (ESYS_CONTEXT *esysContext)

🌸 Detailed Description 🌸

so this is the ESAPI function that lets you invoke the TPM2_NV_Write command β€” and it's giving versatile, because you can run it either as a one-call or in an asynchronous manner πŸ”₯ pick your vibe, both are valid πŸ’œ


πŸ‘‘ Function Documentation πŸ‘‘

🌈 TSS2_RC Esys_NV_Write (ESYS_CONTEXT * esysContext, ESYS_TR authHandle, ESYS_TR nvIndex, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3, const TPM2B_MAX_NV_BUFFER * data, UINT16 offset)

One-Call function for TPM2_NV_Write β€” the "just do it and wait" version, main character energy fr fr πŸ‘‘

Okay so this function invokes the TPM2_NV_Write command in a one-call variant. Translation bestie: the function will block until the TPM response is available 😴 it literally sits there and waits, no cap. All input parameters are const ✨ and the memory for non-simple output parameters is allocated by the function implementation (so you don't have to, slay πŸ’…).

πŸŽ€ Parameters

  • esysContext β€” The ESYS_CONTEXT.
  • authHandle β€” Handle indicating the source of the authorization value.
  • nvIndex β€” The NV Index of the area to write.
  • shandle1 β€” Session handle for authorization of authHandle
  • shandle2 β€” Second session handle.
  • shandle3 β€” Third session handle.
  • data β€” The data to write.
  • offset β€” The offset into the NV Area.

πŸ¦‹ 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_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_Write_Async (ESYS_CONTEXT * esysContext, ESYS_TR authHandle, ESYS_TR nvIndex, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3, const TPM2B_MAX_NV_BUFFER * data, UINT16 offset)

Asynchronous function for TPM2_NV_Write β€” the "send it and dip" version πŸƒβ™€οΈπŸ’¨

This function invokes the TPM2_NV_Write command in a asynchronous variant. Which means β€” plot twist β€” the function will return as soon as the command has been sent downwards the stack to the TPM ⚑ it does NOT wait for the answer, it's got places to be. All input parameters are const. ✨ And bestie, to actually retrieve the TPM's response you gotta call Esys_NV_Write_Finish β€” don't forget, iykyk 🫢

πŸŽ€ Parameters

  • esysContext β€” The ESYS_CONTEXT.
  • authHandle β€” Handle indicating the source of the authorization value.
  • nvIndex β€” The NV Index of the area to write.
  • shandle1 β€” Session handle for authorization of authHandle
  • shandle2 β€” Second session handle.
  • shandle3 β€” Third session handle.
  • data β€” The data to write.
  • offset β€” The offset into the NV Area.

πŸ¦‹ 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_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_Write_Finish (ESYS_CONTEXT * esysContext)

Asynchronous finish function for TPM2_NV_Write β€” the "okay so what did the TPM say" moment 🎬

This function returns the results of a TPM2_NV_Write command invoked via Esys_NV_Write_Finish. All non-simple output parameters are allocated by the function's implementation. ✨ And the cute part: NULL can be passed for every output parameter if the value is not required β€” so you can just not care about some of them, no pressure πŸ’…

πŸŽ€ 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. πŸ€– (not me writing this by hand, the robots ate, fr fr)


okay that's the whole page bestie, go write some NV data and slay πŸ’–βœ¨

mwah πŸ’‹ β€” tpm2-tss, Version 4.1.5, and this page is Esys_NV_Write(3), dated with the build, so check your local copy for the exact date πŸŽ€

πŸ“¦ where this page comes from