Esys_MakeCredential(3)

πŸ’… Esys_MakeCredential(3) ✨

okay so this is a page from the Library Functions Manual, and it's all about Esys_MakeCredential β€” the ESAPI function for the TPM2_MakeCredential command. no cap, that's the whole vibe of the NAME section 🫢


🌸 NAME 🌸

Esys_MakeCredential β€” the ESAPI function for the TPM2_MakeCredential command. that's it, that's the name, she's simple and she's iconic 😌


πŸŽ€ SYNOPSIS πŸŽ€

Functions

here's the whole squad, all three of them 🧚

TSS2_RC Esys_MakeCredential_Async (ESYS_CONTEXT *esysContext, ESYS_TR
    handle, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3, const
    TPM2B_DIGEST *credential, const TPM2B_NAME *objectName)
TSS2_RC Esys_MakeCredential (ESYS_CONTEXT *esysContext, ESYS_TR handle,
    ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3, const
    TPM2B_DIGEST *credential, const TPM2B_NAME *objectName,
    TPM2B_ID_OBJECT **credentialBlob, TPM2B_ENCRYPTED_SECRET **secret)
TSS2_RC Esys_MakeCredential_Finish (ESYS_CONTEXT *esysContext,
    TPM2B_ID_OBJECT **credentialBlob, TPM2B_ENCRYPTED_SECRET **secret)

Detailed Description ✨

it's an ESAPI function to invoke the TPM2_MakeCredential command β€” either as a one-call or in an asynchronous manner. pick your fighter, bestie πŸ’…


Function Documentation πŸ’–

TSS2_RC Esys_MakeCredential (ESYS_CONTEXT * esysContext, ESYS_TR handle, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3, const TPM2B_DIGEST * credential, const TPM2B_NAME * objectName, TPM2B_ID_OBJECT ** credentialBlob, TPM2B_ENCRYPTED_SECRET ** secret)

One-Call function for TPM2_MakeCredential πŸ‘‘

so this one invokes the TPM2_MakeCredential command in a one-call variant, which literally means the function will block until the TPM response is available β€” she waits, she's patient, she's committed 😭. All input parameters are const. And the memory for non-simple output parameters? allocated by the function implementation itself. self-sufficient queen πŸŽ€

Parameters

  • esysContext β€” The ESYS_CONTEXT.
  • handle β€” Loaded public area, used to encrypt the sensitive area containing the credential key.
  • shandle1 β€” First session handle.
  • shandle2 β€” Second session handle.
  • shandle3 β€” Third session handle.
  • credential β€” The credential information.
  • objectName β€” Name of the object to which the credential applies.
  • credentialBlob β€” The credential. (callee-allocated)
  • secret β€” Handle algorithm-dependent data that wraps the key that encrypts credentialBlob. (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. (one at a time, bestie, there's no multitasking here πŸ’€)
  • 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_RCs produced by lower layers of the software stack may be returned to the caller unaltered unless handled internally.

TSS2_RC Esys_MakeCredential_Async (ESYS_CONTEXT * esysContext, ESYS_TR handle, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3, const TPM2B_DIGEST * credential, const TPM2B_NAME * objectName)

Asynchronous function for TPM2_MakeCredential πŸ¦‹

this is the async variant, and the way that she works is: the function will return as soon as the command has been sent downwards the stack to the TPM β€” she doesn't wait, she has places to be πŸ’¨. All input parameters are const. And to actually retrieve the TPM's response you call Esys_MakeCredential_Finish. iykyk 🌈

Parameters

  • esysContext β€” The ESYS_CONTEXT.
  • handle β€” Loaded public area, used to encrypt the sensitive area containing the credential key.
  • shandle1 β€” First session handle.
  • shandle2 β€” Second session handle.
  • shandle3 β€” Third session handle.
  • credential β€” The credential information.
  • objectName β€” Name of the object to which the credential applies.

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_RC Esys_MakeCredential_Finish (ESYS_CONTEXT * esysContext, TPM2B_ID_OBJECT ** credentialBlob, TPM2B_ENCRYPTED_SECRET ** secret)

Asynchronous finish function for TPM2_MakeCredential 🌸

this one returns the results of a TPM2_MakeCredential command invoked via Esys_MakeCredential_Finish (yes, that's literally what the page says, don't @ me πŸ™ˆ). All non-simple output parameters are allocated by the function's implementation. And here's the cute part: NULL can be passed for every output parameter if the value is not required. flexible icon behavior πŸ’…

Parameters

  • esysContext β€” The ESYS_CONTEXT.
  • credentialBlob β€” The credential. (callee-allocated)
  • secret β€” Handle algorithm-dependent data that wraps the key that encrypts credentialBlob. (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. (she ghosted you, try again πŸ“΅)
  • 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. so no, a human did not sit down and write this β€” the robot did it and honestly? slay πŸ€–πŸ’œ


πŸŽ€ see ya πŸŽ€

that's the whole page bestie, no gatekeeping, no crumbs left behind. this came to you from tpm2-tss, Version 4.1.5, manual page Esys_MakeCredential(3) β€” take care of her, she's iconic β­πŸ’–πŸ¦‹

periodt. πŸ’…βœ¨

πŸ“¦ where this page comes from