Esys_ClockRateAdjust(3)

πŸ’… Esys_ClockRateAdjust(3) β€” the tpm2-tss glow-up

Okay bestie, so this page is from the tpm2-tss library functions manual, and it's all about Esys_ClockRateAdjust, aka the ESAPI function for the TPM2_ClockRateAdjust command. That's the whole vibe. Let's get into it ✨


πŸ¦‹ SYNOPSIS

✨ Functions

Here's your lineup, no cap:

TSS2_RC Esys_ClockRateAdjust_Async (ESYS_CONTEXT *esysContext, ESYS_TR
    auth, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3,
    TPM2_CLOCK_ADJUST rateAdjust)
TSS2_RC Esys_ClockRateAdjust (ESYS_CONTEXT *esysContext, ESYS_TR auth,
    ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3,
    TPM2_CLOCK_ADJUST rateAdjust)
TSS2_RC Esys_ClockRateAdjust_Finish (ESYS_CONTEXT *esysContext)

🌸 Detailed Description

So basically: this is the ESAPI function to invoke the TPM2_ClockRateAdjust command either as a one-call or in an asynchronous manner. That's it, that's the whole deal. Pick your lane: one-call queen or async icon. πŸ’…


πŸ‘‘ Function Documentation

πŸŽ€ TSS2_RC Esys_ClockRateAdjust (ESYS_CONTEXT * esysContext, ESYS_TR auth, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3, TPM2_CLOCK_ADJUST rateAdjust)

One-Call function for TPM2_ClockRateAdjust

Ngl this one is the main character. It invokes the TPM2_ClockRateAdjust command in a one-call variant, which means it blocks until the TPM response is available β€” like it will literally sit there and wait, no thoughts head empty. 🫢

For the record: all input parameters are const, and the memory for non-simple output parameters is allocated by the function implementation. (So the function is doing the allocating, not you. Slay.)

Parameters

  • esysContext β€” the ESYS_CONTEXT. Your whole context, your whole world.
  • auth β€” TPM2_RH_OWNER or TPM2_RH_PLATFORM+{PP}. Yep, exactly those.
  • shandle1 β€” session handle for authorization of auth.
  • shandle2 β€” second session handle.
  • shandle3 β€” third session handle.
  • rateAdjust β€” adjustment to current Clock update rate.

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. Like, one 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.
  • 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_ClockRateAdjust_Async (ESYS_CONTEXT * esysContext, ESYS_TR auth, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3, TPM2_CLOCK_ADJUST rateAdjust)

Asynchronous function for TPM2_ClockRateAdjust

This is the async variant, and the way it works is it returns as soon as the command has been sent downwards the stack to the TPM β€” literally "sent, bye, don't wait up" energy. 🧚

Also: all input parameters are const. And heads up β€” in order to retrieve the TPM's response you gotta call Esys_ClockRateAdjust_Finish. Don't forget, or you'll just be standing there with no answer. πŸ™ˆ

Parameters

  • esysContext β€” the ESYS_CONTEXT.
  • auth β€” TPM2_RH_OWNER or TPM2_RH_PLATFORM+{PP}.
  • shandle1 β€” session handle for authorization of auth.
  • shandle2 β€” second session handle.
  • shandle3 β€” third session handle.
  • rateAdjust β€” adjustment to current Clock update rate.

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

Asynchronous finish function for TPM2_ClockRateAdjust

The finale. 🎬 This function returns the results of a TPM2_ClockRateAdjust command invoked via Esys_ClockRateAdjust_Finish.

All non-simple output parameters are allocated by the function's implementation, and yes β€” NULL can be passed for every output parameter if the value is not required. Lowkey freeing, honestly.

Weird but real, bestie: the source text literally says the results come from a command "invoked via Esys_ClockRateAdjust_Finish" β€” that's what it says, so that's what I'm telling you. Don't come for me. πŸ’€

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. Not a human, just Doxygen doing its thing. ✨


And that's the page, bestie β€” mwah πŸ’‹. This little gem comes from tpm2-tss, Version 4.1.5, and it's the Esys_ClockRateAdjust(3) page. Go forth and adjust those clock rates, icon. πŸŒˆπŸ‘‘

πŸ“¦ where this page comes from