Esys_PolicyCommandCode(3)

✨ NAME ✨

Esys_PolicyCommandCode β€” the ESAPI function for the TPM2_PolicyCommandCode command, bestie πŸ’… (this is a page from the Library Functions Manual, and we're about to make it make sense)


πŸ’– SYNOPSIS πŸ’–

Functions

TSS2_RC Esys_PolicyCommandCode_Async (ESYS_CONTEXT *esysContext, ESYS_TR
    policySession, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3,
    TPM2_CC code)
TSS2_RC Esys_PolicyCommandCode (ESYS_CONTEXT *esysContext, ESYS_TR
    policySession, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3,
    TPM2_CC code)
TSS2_RC Esys_PolicyCommandCode_Finish (ESYS_CONTEXT *esysContext)

🌸 Detailed Description 🌸

Okay so this is the ESAPI function that lets you invoke the TPM2_PolicyCommandCode command β€” and the vibe is that you can do it either as a one-call situation or in an asynchronous manner. Choose your fighter, both are valid 🫢


πŸŽ€ Function Documentation πŸŽ€

TSS2_RC Esys_PolicyCommandCode (ESYS_CONTEXT * esysContext, ESYS_TR policySession, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3, TPM2_CC code)

One-Call function for TPM2_PolicyCommandCode ✨

This function invokes the TPM2_PolicyCommandCode command in a one-call variant. Translation, bestie: the function will block until the TPM response is available β€” it is not about to ghost you, it's gonna wait right there 😭. All input parameters are const. The memory for non-simple output parameters is allocated by the function implementation. Periodt.

Parameters

  • esysContext β€” The ESYS_CONTEXT. (the main character context, lowkey essential)
  • policySession β€” Handle for the policy session being extended.
  • shandle1 β€” First session handle.
  • shandle2 β€” Second session handle.
  • shandle3 β€” Third session handle.
  • code β€” The allowed commandCode. πŸ‘‘

Return values

  • TSS2_RC_SUCCESS β€” if the function call was a success. slay πŸŽ‰
  • 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_PolicyCommandCode_Async (ESYS_CONTEXT * esysContext, ESYS_TR policySession, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3, TPM2_CC code)

Asynchronous function for TPM2_PolicyCommandCode πŸ¦‹

This function invokes the TPM2_PolicyCommandCode command in an asynchronous variant. Meaning: it will return as soon as the command has been sent downwards the stack to the TPM β€” no waiting around, she has places to be πŸ’¨. All input parameters are const. In order to retrieve the TPM's response call Esys_PolicyCommandCode_Finish. Don't forget the finish, bestie, or you'll just have vibes and no results πŸ™ˆ

Parameters

  • esysContext β€” The ESYS_CONTEXT.
  • policySession β€” Handle for the policy session being extended.
  • shandle1 β€” First session handle.
  • shandle2 β€” Second session handle.
  • shandle3 β€” Third session handle.
  • code β€” The allowed commandCode. πŸ‘‘

Return values

  • ESYS_RC_SUCCESS β€” if the function call was a success. (yes, it's written ESYS_RC_SUCCESS here, not TSS2_RC_SUCCESS β€” we keep it exactly as the page says, no cap)
  • 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_PolicyCommandCode_Finish (ESYS_CONTEXT * esysContext)

Asynchronous finish function for TPM2_PolicyCommandCode 🧚

This function returns the results of a TPM2_PolicyCommandCode command invoked via Esys_PolicyCommandCode_Finish. (Yep β€” the page literally says Esys_PolicyCommandCode_Finish right there, so we're keeping it exactly, even though the async crowd knows the call that starts it is the _Async one. Facts are facts, bestie.) 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 β€” very "no thoughts, head empty, don't need that output" of you πŸ’…

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. Iconic behavior, honestly 🌈


Okay bestie, that's the whole page β€” every flag, every return value, every little const detail, all kept safe and sound 🫢 Now go forth and policy-command-code responsibly. πŸ’œ

tpm2-tss β€” Version 4.1.5 πŸŽ€ Esys_PolicyCommandCode(3), signing off βœ¨πŸ’–

πŸ“¦ where this page comes from