Esys_ECDH_KeyGen(3)

πŸ’– Esys_ECDH_KeyGen β€” the TPM2_ECDH_KeyGen ESAPI glow-up πŸ’–

okay so bestie, this one lives in the Library Functions Manual section, and it's the ESAPI wrapper for the TPM2_ECDH_KeyGen command. it's giving "I have three whole functions and I will use them." ✨


🌸 NAME 🌸

Esys_ECDH_KeyGen β€” the ESAPI function for the TPM2_ECDH_KeyGen command. literally that's it, that's the whole job πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

✨ Functions ✨

TSS2_RC Esys_ECDH_KeyGen_Async (ESYS_CONTEXT *esysContext, ESYS_TR
    keyHandle, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3)
TSS2_RC Esys_ECDH_KeyGen (ESYS_CONTEXT *esysContext, ESYS_TR keyHandle,
    ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3,
    TPM2B_ECC_POINT **zPoint, TPM2B_ECC_POINT **pubPoint)
TSS2_RC Esys_ECDH_KeyGen_Finish (ESYS_CONTEXT *esysContext,
    TPM2B_ECC_POINT **zPoint, TPM2B_ECC_POINT **pubPoint)

🌈 Detailed Description 🌈

ESAPI function to invoke the TPM2_ECDH_KeyGen command either as a one-call or in an asynchronous manner. choose your own adventure, bestie 🫢


πŸ‘‘ Function Documentation πŸ‘‘

πŸ’œ TSS2_RC Esys_ECDH_KeyGen (ESYS_CONTEXT * esysContext, ESYS_TR keyHandle, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3, TPM2B_ECC_POINT ** zPoint, TPM2B_ECC_POINT ** pubPoint)

One-Call function for TPM2_ECDH_KeyGen πŸŽ€

this one invokes the TPM2_ECDH_KeyGen command in a one-call variant. translation: the function will block until the TPM response is available β€” it's not ghosting you, it's just waiting for the TPM to text back 😭. all input parameters are const. the memory for non-simple output parameters is allocated by the function implementation (not you, bestie, you're off the hook ✨).

πŸ“ Parameters

  • esysContext β€” The ESYS_CONTEXT.
  • keyHandle β€” Handle of a loaded ECC key public area..
  • shandle1 β€” First session handle.
  • shandle2 β€” Second session handle.
  • shandle3 β€” Third session handle.
  • zPoint β€” Results of P := h[de]Qs. (callee-allocated)
  • pubPoint β€” Generated ephemeral public point (Qe). (callee-allocated)

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

πŸ’™ TSS2_RC Esys_ECDH_KeyGen_Async (ESYS_CONTEXT * esysContext, ESYS_TR keyHandle, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3)

Asynchronous function for TPM2_ECDH_KeyGen πŸ¦‹

this one invokes the TPM2_ECDH_KeyGen command in a asynchronous variant. meaning: the function will return as soon as the command has been sent downwards the stack to the TPM β€” drop the message and dip, main character energy πŸƒβ€β™€οΈπŸ’¨. all input parameters are const. and in order to retrieve the TPM's response you gotta call Esys_ECDH_KeyGen_Finish. iykyk πŸ‘€

πŸ“ Parameters

  • esysContext β€” The ESYS_CONTEXT.
  • keyHandle β€” Handle of a loaded ECC key public area..
  • shandle1 β€” First session handle.
  • shandle2 β€” Second session handle.
  • shandle3 β€” Third session handle.

πŸ”₯ 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_RC Esys_ECDH_KeyGen_Finish (ESYS_CONTEXT * esysContext, TPM2B_ECC_POINT ** zPoint, TPM2B_ECC_POINT ** pubPoint)

Asynchronous finish function for TPM2_ECDH_KeyGen 🧚

this function returns the results of a TPM2_ECDH_KeyGen command invoked via Esys_ECDH_KeyGen_Finish. all non-simple output parameters are allocated by the function's implementation. and get this β€” NULL can be passed for every output parameter if the value is not required. so chill, you don't have to want everything 🫢

✨ tiny note bestie: the original text really does say the command was invoked via Esys_ECDH_KeyGen_Finish right there in the finish function's own description β€” that's what it says, so that's what I'm telling you. no editing, no cap πŸ’€

πŸ“ Parameters

  • esysContext β€” The ESYS_CONTEXT.
  • zPoint β€” Results of P := h[de]Qs. (callee-allocated)
  • pubPoint β€” Generated ephemeral public point (Qe). (callee-allocated)

πŸ”₯ 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. slay, Doxygen, you ate πŸ€–βœ¨


πŸ’Œ okay bestie that's the whole page!! this one came from tpm2-tss, Version 4.1.5, and the man page itself is Esys_ECDH_KeyGen(3) from the Library Functions Manual. go forth and generate those ephemeral public points, ily πŸŽ€πŸ’–πŸ¦‹
πŸ“¦ where this page comes from