Esys_PolicyLocality(3)

πŸ’– Esys_PolicyLocality(3) πŸ’–

okay so bestie, welcome to the Library Functions Manual entry for Esys_PolicyLocality β€” this is the ESAPI glow-up that lets you poke the TPM2_PolicyLocality command. she's giving TPM policy realness and honestly? iconic. πŸŽ€


✨ NAME ✨

Esys_PolicyLocality β€” the ESAPI function for the TPM2_PolicyLocality command. that's it, that's the vibe. πŸ¦‹


🌸 SYNOPSIS 🌸

πŸ’… Functions

TSS2_RC Esys_PolicyLocality_Async (ESYS_CONTEXT *esysContext, ESYS_TR
    policySession, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3,
    TPMA_LOCALITY locality)
TSS2_RC Esys_PolicyLocality (ESYS_CONTEXT *esysContext, ESYS_TR
    policySession, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3,
    TPMA_LOCALITY locality)
TSS2_RC Esys_PolicyLocality_Finish (ESYS_CONTEXT *esysContext)

🌈 Detailed Description

ESAPI function to invoke the TPM2_PolicyLocality command either as a one-call or in an asynchronous manner. two paths, same destination, both slay. ✨


πŸ‘‘ Function Documentation

🧚 TSS2_RC Esys_PolicyLocality (ESYS_CONTEXT * esysContext, ESYS_TR policySession, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3, TPMA_LOCALITY locality)

One-Call function for TPM2_PolicyLocality β€” the "just do it already" edition. 😌

This function invokes the TPM2_PolicyLocality command in a one-call variant. This means the function will block until the TPM response is available (yes, she waits, she's committed 🫢). All input parameters are const. The memory for non-simple output parameters is allocated by the function implementation.

Parameters

  • esysContext β€” The ESYS_CONTEXT. the main character of this whole situation.
  • policySession β€” Handle for the policy session being extended.
  • shandle1 β€” First session handle.
  • shandle2 β€” Second session handle.
  • shandle3 β€” Third session handle.
  • locality β€” The allowed localities for the policy.

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. literally nothing to hold onto 😭
  • 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, there's already a queue πŸ’€
  • 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. not the vibe check failing 😬
  • 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. it's giving "we don't touch those, not our department" πŸ™ˆ

🌟 TSS2_RC Esys_PolicyLocality_Async (ESYS_CONTEXT * esysContext, ESYS_TR policySession, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3, TPMA_LOCALITY locality)

Asynchronous function for TPM2_PolicyLocality β€” the "send it and go live your life" edition. πŸ’«

This function invokes the TPM2_PolicyLocality 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 β€” she does not wait around, she has places to be. All input parameters are const. In order to retrieve the TPM's response call Esys_PolicyLocality_Finish. πŸ‘ˆ don't forget this part, fr fr

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.
  • locality β€” The allowed localities for the policy.

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_PolicyLocality_Finish (ESYS_CONTEXT * esysContext)

Asynchronous finish function for TPM2_PolicyLocality β€” the closing the loop moment, the "so what did the TPM say" reveal. 🌸

This function returns the results of a TPM2_PolicyLocality command invoked via Esys_PolicyLocality_Finish. 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. lowkey efficient πŸ’…

Parameters

  • esysContext β€” The ESYS_CONTEXT.

Return values

  • TSS2_RC_SUCCESS β€” on success. βœ…
  • ESYS_RC_SUCCESS β€” if the function call was a success. (yes, both of these are listed, and yes, we're keeping both, don't @ me 🫢)
  • 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 ghosting you, she's just slow, try again 😭
  • 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 technically not a person, but she ate regardless πŸ‘‘


bestie reminder: every single error code above is literally in the original, so if you hit one, it's real, it's valid, and it's not you being dramatic. πŸ“

sign-off πŸ’– β€” this lil page comes from tpm2-tss, Version 4.1.5, and the footer date slot is exactly where Esys_PolicyLocality(3) hangs out on the Library Functions Manual. mwah, go extend that policy session, you've got this 🫢✨

πŸ“¦ where this page comes from