Esys_EC_Ephemeral(3)

🌸 Esys_EC_Ephemeral β€” the ESAPI glow-up for the TPM2_EC_Ephemeral command πŸ’…

okay so bestie, this is the Esys_EC_Ephemeral(3) page from the tpm2-tss library manual, and it's literally the ESAPI wrapper for the TPM2_EC_Ephemeral command. she's serving cryptography realness and i'm obsessed πŸŽ€


✨ SYNOPSIS ✨

Functions

TSS2_RC Esys_EC_Ephemeral_Async (ESYS_CONTEXT *esysContext, ESYS_TR
    shandle1, ESYS_TR shandle2, ESYS_TR shandle3, TPMI_ECC_CURVE
    curveID)
TSS2_RC Esys_EC_Ephemeral (ESYS_CONTEXT *esysContext, ESYS_TR shandle1,
    ESYS_TR shandle2, ESYS_TR shandle3, TPMI_ECC_CURVE curveID,
    TPM2B_ECC_POINT **Q, UINT16 *counter)
TSS2_RC Esys_EC_Ephemeral_Finish (ESYS_CONTEXT *esysContext,
    TPM2B_ECC_POINT **Q, UINT16 *counter)

πŸ¦‹ Detailed Description πŸ¦‹

so what this is, is an ESAPI function that lets you invoke the TPM2_EC_Ephemeral command β€” and the way it does it? you get two vibes to choose from: either as a one-call (do everything at once, main character energy) or in an asynchronous manner (send it and dip, come back later). pick your fighter, both slay πŸ’–


πŸ‘‘ Function Documentation πŸ‘‘

🌈 TSS2_RC Esys_EC_Ephemeral (ESYS_CONTEXT * esysContext, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3, TPMI_ECC_CURVE curveID, TPM2B_ECC_POINT ** Q, UINT16 * counter)

One-Call function for TPM2_EC_Ephemeral β€” the "do it all in one go" icon ⭐

This function invokes the TPM2_EC_Ephemeral command in a one-call variant. Translation? the function will block until the TPM response is available β€” like, she waits, patiently, no cap. All input parameters are const (promise she won't touch ur stuff πŸ™ˆ). And the memory for non-simple output parameters is allocated by the function implementation, so you don't have to do the malloc-ing yourself, periodt πŸ’…

Parameters

  • esysContext β€” The ESYS_CONTEXT.
  • shandle1 β€” First session handle.
  • shandle2 β€” Second session handle.
  • shandle3 β€” Third session handle.
  • curveID β€” The curve for the computed ephemeral point .
  • Q β€” Ephemeral public key Q := [r]G. (callee-allocated)
  • counter β€” Least-significant 16 bits of commitCount.

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_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_RCs produced by lower layers of the software stack β€” may be returned to the caller unaltered unless handled internally.

🧚 TSS2_RC Esys_EC_Ephemeral_Async (ESYS_CONTEXT * esysContext, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3, TPMI_ECC_CURVE curveID)

Asynchronous function for TPM2_EC_Ephemeral β€” the "send it and ghost" queen πŸ¦‹

This function invokes the TPM2_EC_Ephemeral command in a asynchronous variant. Which 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. And in order to retrieve the TPM's response, you gotta call Esys_EC_Ephemeral_Finish. that's the whole deal, iykyk πŸ’œ

Parameters

  • esysContext β€” The ESYS_CONTEXT.
  • shandle1 β€” First session handle.
  • shandle2 β€” Second session handle.
  • shandle3 β€” Third session handle.
  • curveID β€” The curve for the computed ephemeral point .

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_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_RC Esys_EC_Ephemeral_Finish (ESYS_CONTEXT * esysContext, TPM2B_ECC_POINT ** Q, UINT16 * counter)

Asynchronous finish function for TPM2_EC_Ephemeral β€” the "so… what did she say?" follow-up text 😭

This function returns the results of a TPM2_EC_Ephemeral command invoked via Esys_EC_Ephemeral_Finish. All non-simple output parameters are allocated by the function's implementation. and bestie, NULL can be passed for every output parameter if the value is not required β€” like, don't ask for what you don't need, boundaries are iconic πŸ’…

ngl the original really does say "invoked via Esys_EC_Ephemeral_Finish" β€” yes, the finish function referencing itself, we don't make the rules, we just transcribe them faithfully 🫢

Parameters

  • esysContext β€” The ESYS_CONTEXT.
  • Q β€” Ephemeral public key Q := [r]G. (callee-allocated)
  • counter β€” Least-significant 16 bits of commitCount.

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 a very diligent little robot doing her thing πŸ€–βœ¨)


and that's the page!! πŸŽ€ source is tpm2-tss, Version 4.1.5, and the manual page itself is Esys_EC_Ephemeral(3) β€” love that for us, mwah πŸ’–πŸ’…πŸ«Ά

πŸ“¦ where this page comes from