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β theESYS_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 theesysContextor required input pointers or required output handle references areNULL. not the vibe.TSS2_ESYS_RC_BAD_CONTEXTβ ifesysContextcorruption 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 theESYS_TRobjects are unknown to theESYS_CONTEXTor are of the wrong type or if requiredESYS_TRobjects areESYS_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_RCsproduced 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β theESYS_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 theesysContextor required input pointers or required output handle references areNULL.TSS2_ESYS_RC_BAD_CONTEXTβ ifesysContextcorruption is detected.TSS2_ESYS_RC_MEMORYβ if the ESAPI cannot allocate enough memory for internal operations or return parameters.TSS2_RCsproduced 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 theESYS_TRobjects are unknown to theESYS_CONTEXTor are of the wrong type or if requiredESYS_TRobjects areESYS_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β theESYS_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 theesysContextor required input pointers or required output handle references areNULL.TSS2_ESYS_RC_BAD_CONTEXTβ ifesysContextcorruption 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_RCsproduced 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
- fedora 44: tpm2-tss-devel 4.1.5-1.fc44 Β· BSD-2-Clause
- fedora 44: tpm2-tss-devel 4.1.5-1.fc44 Β· BSD-2-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms