Esys_PolicyCpHash(3)

✨ Esys_PolicyCpHash ✨

okay so bestie, let me tell you about Esys_PolicyCpHash from the tpm2-tss library manual. this is basically the ESAPI glow-up for the TPM2_PolicyCpHash command, and it's giving main character energy for real. πŸ’…


🌸 SYNOPSIS 🌸

here's the vibe check on the function signatures, no cap:

TSS2_RC Esys_PolicyCpHash_Async (ESYS_CONTEXT *esysContext, ESYS_TR
    policySession, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3,
    const TPM2B_DIGEST *cpHashA)
TSS2_RC Esys_PolicyCpHash (ESYS_CONTEXT *esysContext, ESYS_TR
    policySession, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3,
    const TPM2B_DIGEST *cpHashA)
TSS2_RC Esys_PolicyCpHash_Finish (ESYS_CONTEXT *esysContext)

πŸ¦‹ DETAILED DESCRIPTION πŸ¦‹

so basically, this is the ESAPI function that lets you invoke the TPM2_PolicyCpHash command. you can do it as a one-call situation (slay, convenient) or in an asynchronous manner (for when you're feeling extra and need that non-blocking energy). both are iconic in their own way. ✨


πŸ’– FUNCTION DOCUMENTATION πŸ’–

πŸŽ€ TSS2_RC Esys_PolicyCpHash πŸŽ€

TSS2_RC Esys_PolicyCpHash (ESYS_CONTEXT * esysContext, ESYS_TR
    policySession, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3,
    const TPM2B_DIGEST * cpHashA)

One-Call function for TPM2_PolicyCpHash

this is the one-call variant, bestie. it means the function will block until the TPM response is availableβ€”like it's waiting for its bestie to text back, but make it TPM. all input parameters are const, which is giving "i'm not gonna mess with your data" energy. the memory for non-simple output parameters is allocated by the function implementation itself. iconic. 🫢

Parameters

  • esysContext β€” the ESYS_CONTEXT. it's the whole vibe.
  • policySession β€” handle for the policy session being extended. you're extending it, periodt.
  • shandle1 β€” first session handle.
  • shandle2 β€” second session handle.
  • shandle3 β€” third session handle.
  • cpHashA β€” the cpHash added to the policy. this is the whole point, honestly.

Return values

  • TSS2_RC_SUCCESS β€” if the function call was a success. we love to see it. πŸ’–
  • TSS2_ESYS_RC_BAD_REFERENCE β€” if the esysContext or required input pointers or required output handle references are NULL. not the vibe.
  • TSS2_ESYS_RC_BAD_CONTEXT β€” if esysContext corruption is detected. red flag.
  • TSS2_ESYS_RC_MEMORY β€” if the ESAPI cannot allocate enough memory for internal operations or return parameters. it's giving memory issues, sadly.
  • 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. incomplete response energy, we hate that.
  • TSS2_ESYS_RC_MALFORMED_RESPONSE β€” if the TPM's response is corrupted. yikes.
  • TSS2_ESYS_RC_RSP_AUTH_FAILED β€” if the response HMAC from the TPM did not verify. auth said no. πŸ’€
  • TSS2_ESYS_RC_MULTIPLE_DECRYPT_SESSIONS β€” if more than one session has the 'decrypt' attribute bit set. too many cooks, honestly.
  • TSS2_ESYS_RC_MULTIPLE_ENCRYPT_SESSIONS β€” if more than one session has the 'encrypt' attribute bit set. again, too many.
  • 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. basically if the TR objects are sus.
  • 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. not supported, bestie.
  • 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. also not supported.
  • TSS2_RCs produced by lower layers of the software stack may be returned to the caller unaltered unless handled internally. iykyk. πŸ”₯

πŸ¦‹ TSS2_RC Esys_PolicyCpHash_Async πŸ¦‹

TSS2_RC Esys_PolicyCpHash_Async (ESYS_CONTEXT * esysContext, ESYS_TR
    policySession, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3,
    const TPM2B_DIGEST * cpHashA)

Asynchronous function for TPM2_PolicyCpHash

this is the asynchronous variant, which means it returns as soon as the command has been sent downwards the stack to the TPM. it's giving "i sent the text, now i'm not waiting for a reply" energy. all input parameters are const. in order to actually retrieve the TPM's response, you gotta call Esys_PolicyCpHash_Finish. don't forget, bestie. πŸ’…

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.
  • cpHashA β€” the cpHash added to 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_PolicyCpHash_Finish πŸ’œ

TSS2_RC Esys_PolicyCpHash_Finish (ESYS_CONTEXT * esysContext)

Asynchronous finish function for TPM2_PolicyCpHash

this function returns the results of a TPM2_PolicyCpHash command invoked via Esys_PolicyCpHash_Finish. wait, that's what the manpage saysβ€”even though it sounds like it's referencing itself? it's giving "i'm my own bestie" energy, honestly. anyway, all non-simple output parameters are allocated by the function's implementation. and NULL can be passed for every output parameter if the value is not required. convenient. πŸŽ€

Parameters

  • esysContext β€” the ESYS_CONTEXT.

Return values

  • TSS2_RC_SUCCESS β€” on success. periodt. ✨
  • 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. it's giving "try again later, 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_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. it's giving "the code wrote itself" energy, and honestly, we love that for us. πŸ’–


and that's the whole manual page, bestie! now you're fully caught up on Esys_PolicyCpHash. go forth and slay those TPM policy sessions. πŸ’…βœ¨

this iconic piece of documentation was brought to you by tpm2-tss Version 4.1.5, and yes, it's as fabulous as it sounds. πŸ«ΆπŸŽ€

πŸ“¦ where this page comes from