Esys_Certify(3)

πŸ’… Esys_Certify(3) β€” the ESAPI certification glow-up πŸ’…

From the tpm2-tss Library Functions Manual, bestie. 🫢


πŸŽ€ NAME πŸŽ€

Esys_Certify β€” the ESAPI function for the TPM2_Certify command. That's the whole name vibe. ✨


✨ SYNOPSIS ✨

πŸ¦‹ Functions

TSS2_RC Esys_Certify_Async (ESYS_CONTEXT *esysContext, ESYS_TR objectHandle, ESYS_TR signHandle, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3, const TPM2B_DATA *qualifyingData, const TPMT_SIG_SCHEME *inScheme)
TSS2_RC Esys_Certify (ESYS_CONTEXT *esysContext, ESYS_TR objectHandle, ESYS_TR signHandle, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3, const TPM2B_DATA *qualifyingData, const TPMT_SIG_SCHEME *inScheme, TPM2B_ATTEST **certifyInfo, TPMT_SIGNATURE **signature)
TSS2_RC Esys_Certify_Finish (ESYS_CONTEXT *esysContext, TPM2B_ATTEST **certifyInfo, TPMT_SIGNATURE **signature)

🌸 Detailed Description 🌸

ESAPI function to invoke the TPM2_Certify command either as a one-call or in an asynchronous manner. Pick your lane, bestie β€” both are valid. πŸ’…


πŸ”₯ Function Documentation πŸ”₯

πŸ’– TSS2_RC Esys_Certify (...) β€” one-call, block-until-it's-done girlie

TSS2_RC Esys_Certify (ESYS_CONTEXT * esysContext, ESYS_TR objectHandle, ESYS_TR signHandle, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3, const TPM2B_DATA * qualifyingData, const TPMT_SIG_SCHEME * inScheme, TPM2B_ATTEST ** certifyInfo, TPMT_SIGNATURE ** signature)

One-Call function for TPM2_Certify. This function invokes the TPM2_Certify command in a one-call variant. That means it will block until the TPM response is available β€” no sneaky early return, okay? All input parameters are const. The memory for non-simple output parameters is allocated by the function implementation. 🫢

πŸ’œ Parameters

  • esysContext β€” The ESYS_CONTEXT.
  • objectHandle β€” Handle of the object to be certified.
  • signHandle β€” Handle of the key used to sign the attestation structure.
  • shandle1 β€” Session handle for authorization of objectHandle.
  • shandle2 β€” Session handle for authorization of signHandle.
  • shandle3 β€” Third session handle.
  • qualifyingData β€” User provided qualifying data.
  • inScheme β€” TPM2_Signing scheme to use if the scheme for signHandle is TPM2_ALG_NULL.
  • certifyInfo β€” The structure that was signed. (callee-allocated)
  • signature β€” The asymmetric signature over certifyInfo using the key referenced by signHandle. (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_RCs produced by lower layers of the software stack may be returned to the caller unaltered unless handled internally.

πŸ¦‹ TSS2_RC Esys_Certify_Async (...) β€” send-it-and-come-back-later energy

TSS2_RC Esys_Certify_Async (ESYS_CONTEXT * esysContext, ESYS_TR objectHandle, ESYS_TR signHandle, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3, const TPM2B_DATA * qualifyingData, const TPMT_SIG_SCHEME * inScheme)

Asynchronous function for TPM2_Certify. This function invokes the TPM2_Certify command in a asynchronous variant. That means it will return as soon as the command has been sent downwards the stack to the TPM β€” very main character of it. All input parameters are const. In order to retrieve the TPM's response call Esys_Certify_Finish. πŸŽ€

πŸ’œ Parameters

  • esysContext β€” The ESYS_CONTEXT.
  • objectHandle β€” Handle of the object to be certified.
  • signHandle β€” Handle of the key used to sign the attestation structure.
  • shandle1 β€” Session handle for authorization of objectHandle.
  • shandle2 β€” Session handle for authorization of signHandle.
  • shandle3 β€” Third session handle.
  • qualifyingData β€” User provided qualifying data.
  • inScheme β€” TPM2_Signing scheme to use if the scheme for signHandle is TPM2_ALG_NULL.

πŸ’€ 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_Certify_Finish (...) β€” the finish-line bestie

TSS2_RC Esys_Certify_Finish (ESYS_CONTEXT * esysContext, TPM2B_ATTEST ** certifyInfo, TPMT_SIGNATURE ** signature)

Asynchronous finish function for TPM2_Certify. This function returns the results of a TPM2_Certify command invoked via Esys_Certify_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 β€” very chill of it. ✨

πŸ’œ Parameters

  • esysContext β€” The ESYS_CONTEXT.
  • certifyInfo β€” The structure that was signed. (callee-allocated)
  • signature β€” The asymmetric signature over certifyInfo using the key referenced by signHandle. (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. Iconic, honestly. πŸ’…


Footer vibes: tpm2-tss, version 4.1.5, page Esys_Certify(3). No date was listed, so we're not inventing one, bestie β€” periodt. πŸŽ€βœ¨

πŸ“¦ where this page comes from