Esys_PCR_Extend(3)

πŸ’… Esys_PCR_Extend(3) β€” TPM2_PCR_Extend but make it ESAPI ✨

okay bestie, this is the Esys_PCR_Extend(3) page from the tpm2-tss Library Functions Manual, and it’s literally all about wrapping the TPM2_PCR_Extend command in ESAPI πŸ’–. No cap, it’s giving β€œPCR extend, but make it function-call friendly.”


✨ NAME ✨

Esys_PCR_Extend β€” the ESAPI function for the TPM2_PCR_Extend command, periodt.


🌸 SYNOPSIS 🌸

πŸŽ€ Functions πŸŽ€

TSS2_RC Esys_PCR_Extend_Async (ESYS_CONTEXT *esysContext, ESYS_TR pcrHandle, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3, const TPML_DIGEST_VALUES *digests)
TSS2_RC Esys_PCR_Extend (ESYS_CONTEXT *esysContext, ESYS_TR pcrHandle, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3, const TPML_DIGEST_VALUES *digests)
TSS2_RC Esys_PCR_Extend_Finish (ESYS_CONTEXT *esysContext)

πŸ’– Detailed Description πŸ’–

ESAPI function to invoke the TPM2_PCR_Extend command either as a one-call or in an asynchronous manner. That’s the whole vibe: one-and-done, or send-it-and-finish-later πŸ¦‹.


πŸ”₯ Function Documentation πŸ”₯

πŸ’… TSS2_RC Esys_PCR_Extend (...) β€” one-call, block-until-the-TPM-answers energy

TSS2_RC Esys_PCR_Extend (ESYS_CONTEXT * esysContext, ESYS_TR pcrHandle, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3, const TPML_DIGEST_VALUES * digests)

One-Call function for TPM2_PCR_Extend

This function invokes the TPM2_PCR_Extend command in a one-call variant. Translation: it will block until the TPM response is available. All input parameters are const. The memory for non-simple output parameters is allocated by the function implementation. Slay, but synchronously πŸ’….

πŸŽ€ Parameters πŸŽ€

  • esysContext β€” The ESYS_CONTEXT.
  • pcrHandle β€” Handle of the PCR.
  • shandle1 β€” Session handle for authorization of pcrHandle.
  • shandle2 β€” Second session handle.
  • shandle3 β€” Third session handle.
  • digests β€” List of tagged digest values to be extended.

🌈 Return values 🌈

  • TSS2_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_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_PCR_Extend_Async (...) β€” send it and come back later

TSS2_RC Esys_PCR_Extend_Async (ESYS_CONTEXT * esysContext, ESYS_TR pcrHandle, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3, const TPML_DIGEST_VALUES * digests)

Asynchronous function for TPM2_PCR_Extend

This function invokes the TPM2_PCR_Extend command in a asynchronous variant. The way that this works: it will return as soon as the command has been sent downwards the stack to the TPM. All input parameters are const. In order to retrieve the TPM’s response call Esys_PCR_Extend_Finish. It’s giving β€œdrop the message, then check the notifications” πŸ“±βœ¨.

πŸŽ€ Parameters πŸŽ€

  • esysContext β€” The ESYS_CONTEXT.
  • pcrHandle β€” Handle of the PCR.
  • shandle1 β€” Session handle for authorization of pcrHandle.
  • shandle2 β€” Second session handle.
  • shandle3 β€” Third session handle.
  • digests β€” List of tagged digest values to be extended.

🌈 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_PCR_Extend_Finish (...) β€” the callback, the closure, the final boss

TSS2_RC Esys_PCR_Extend_Finish (ESYS_CONTEXT * esysContext)

Asynchronous finish function for TPM2_PCR_Extend

This function returns the results of a TPM2_PCR_Extend command invoked via Esys_PCR_Extend_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 iconic: you can skip the output if you don’t need it 🫢.

πŸŽ€ 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.


and that’s the whole page, bestie πŸ’– this little sign-off is brought to you by tpm2-tss, Version 4.1.5 β€” that’s the footer flex, and that’s the tea πŸŽ€βœ¨

πŸ“¦ where this page comes from