Esys_Shutdown(3)

πŸŽ€ NAME πŸŽ€

okay bestie so welcome to the Library Functions Manual page for Esys_Shutdown β€” it's literally the ESAPI function for the TPM2_Shutdown command. that's the whole vibe. one function family, one job: tell the TPM to shut down. slay. πŸ’…


✨ SYNOPSIS ✨

πŸ¦‹ Functions πŸ¦‹

TSS2_RC Esys_Shutdown_Async (ESYS_CONTEXT *esysContext, ESYS_TR
    shandle1, ESYS_TR shandle2, ESYS_TR shandle3, TPM2_SU shutdownType)
TSS2_RC Esys_Shutdown (ESYS_CONTEXT *esysContext, ESYS_TR shandle1,
    ESYS_TR shandle2, ESYS_TR shandle3, TPM2_SU shutdownType)
TSS2_RC Esys_Shutdown_Finish (ESYS_CONTEXT *esysContext)

like, three functions. that's the whole cast. main character energy fr fr. πŸ‘‘


🌈 Detailed Description 🌈

ESAPI function to invoke the TPM2_Shutdown command, either as a one-call or in an asynchronous manner. two lanes, same destination, pick your fighter. 🫢


πŸ’– Function Documentation πŸ’–

πŸ“ TSS2_RC Esys_Shutdown (ESYS_CONTEXT * esysContext, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3, TPM2_SU shutdownType) πŸ“

One-Call function for TPM2_Shutdown

so this one invokes the TPM2_Shutdown command in a one-call variant. meaning: the function will block until the TPM response is available. yes girl, it waits. it's not ghosting you, it's just committed. 😭

All input parameters are const. The memory for non-simple output parameters is allocated by the function implementation β€” you don't have to do a thing, it handles it. iconic behaviour honestly.

πŸ’œ Parameters

  • esysContext β€” The ESYS_CONTEXT.
  • shandle1 β€” First session handle.
  • shandle2 β€” Second session handle.
  • shandle3 β€” Third session handle.
  • shutdownType β€” TPM2_SU_CLEAR or TPM2_SU_STATE. that's the whole menu, pick one. πŸŽ€

πŸ”₯ Return values

  • TSS2_RC_SUCCESS β€” if the function call was a success. we love a win.
  • 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. one thing at a time bestie!!
  • 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_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. (them's the rules, no cap.)

🧚 TSS2_RC Esys_Shutdown_Async (ESYS_CONTEXT * esysContext, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3, TPM2_SU shutdownType) 🧚

Asynchronous function for TPM2_Shutdown

the async variant, obviously. it invokes the TPM2_Shutdown command in a asynchronous variant. this means the function will return as soon as the command has been sent downwards the stack to the TPM. no waiting, no lingering β€” she sends the text and leaves the chat. πŸ’¨

All input parameters are const. In order to retrieve the TPM's response call Esys_Shutdown_Finish. that's the callback, that's the "hey so what did they say" moment.

πŸ’œ Parameters

  • esysContext β€” The ESYS_CONTEXT.
  • shandle1 β€” First session handle.
  • shandle2 β€” Second session handle.
  • shandle3 β€” Third session handle.
  • shutdownType β€” TPM2_SU_CLEAR or TPM2_SU_STATE. same two options, still no third one. πŸŽ€

πŸ”₯ 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_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_Shutdown_Finish (ESYS_CONTEXT * esysContext) 🌸

Asynchronous finish function for TPM2_Shutdown

the finish line bestie!! 🏁 this function returns the results of a TPM2_Shutdown command invoked via Esys_Shutdown_Finish. (yes, that's what the page says β€” reading it exactly as written, character for character, we don't editorialize here πŸ’…)

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 β€” so like, if you don't want it, you don't have to take it. lowkey thoughtful.

πŸ’œ 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. ⏰ she's not ignoring you, she's just slow.
  • 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 a human, just a robot doing its little thing. we respect the hustle. πŸ€–βœ¨


okay that's the whole page bestie, go shut down that TPM responsibly. mwah! πŸ«ΆπŸ’–

β€” with love, from tpm2-tss, Version 4.1.5, and this Esys_Shutdown(3) page right here. see you in the next manpage, bye!! πŸ¦‹πŸŽ€

πŸ“¦ where this page comes from