Fapi_CreateSeal(3)

✨ Fapi_CreateSeal πŸ’… β€” the Library Functions Manual glow-up πŸŽ€

okay bestie, so this is Fapi_CreateSeal(3) from the Library Functions Manual, and it's literally the page that tells you how to seal stuff up with the FAPI. it's giving "put a secret in a box and lock it" energy and honestly? iconic. let's get into it πŸ¦‹


🌸 NAME 🌸

Fapi_CreateSeal β€” bestie, that's literally the name, the whole name, and nothing but the name πŸ’–


✨ SYNOPSIS ✨

🫢 Functions

TSS2_RC Fapi_CreateSeal (FAPI_CONTEXT *context, char const *path, char
    const *type, size_t size, char const *policyPath, char const
    *authValue, uint8_t const *data)
TSS2_RC Fapi_CreateSeal_Async (FAPI_CONTEXT *context, char const *path,
    char const *type, size_t size, char const *policyPath, char const
    *authValue, uint8_t const *data)
TSS2_RC Fapi_CreateSeal_Finish (FAPI_CONTEXT *context)

🌈 Detailed Description 🌈

these are the FAPI functions that invoke CreateSeal, and you can run it either as a one-call situation or in an asynchronous manner. pick your vibe, both slay πŸ’…


πŸ‘‘ Function Documentation πŸ‘‘

πŸ’œ TSS2_RC Fapi_CreateSeal (FAPI_CONTEXT * context, char const * path, char const * type, size_t size, char const * policyPath, char const * authValue, uint8_t const * data)

this is the one-call function for Fapi_CreateSeal. one call and you're done, no cap ✨

it creates a sealed object and stores it in the FAPI metadata store. and here's the cute part: if no data is provided, the TPM generates random data to fill the sealed object. the TPM is basically doing improv and honestly? main character energy πŸ”₯

πŸŽ€ Parameters

  • context β€” The FAPI_CONTEXT
  • path β€” The path to the new sealed object
  • type β€” The type of the new sealed object. May be NULL
  • size β€” The size of the new sealed object. Must not be 0 ⚠️
  • policyPath β€” The path to the policy that is associated with the new sealed object. May be NULL
  • authValue β€” The authorization value for the new sealed object. May be NULL
  • data β€” The data that is to be sealed within the new object. May be NULL

πŸ¦‹ Return values

  • TSS2_RC_SUCCESS if the function call was a success. πŸŽ‰
  • TSS2_FAPI_RC_BAD_REFERENCE if context, or path is NULL.
  • TSS2_FAPI_RC_BAD_CONTEXT if context corruption is detected. πŸ’€
  • TSS2_FAPI_RC_KEY_NOT_FOUND if the parent key does not map to a FAPI key.
  • TSS2_FAPI_RC_BAD_PATH if policyPath is non-NULL and does not map to a FAPI key.
  • TSS2_FAPI_RC_PATH_ALREADY_EXISTS if a sealed object already exists at path. like it's already taken bestie πŸ™ˆ
  • TSS2_FAPI_RC_BAD_VALUE if the keyType is invalid.
  • TSS2_FAPI_RC_BAD_SEQUENCE if the context has an asynchronous operation already pending.
  • TSS2_FAPI_RC_IO_ERROR if the data cannot be saved.
  • TSS2_FAPI_RC_MEMORY if the FAPI cannot allocate enough memory for internal operations or return parameters.
  • TSS2_FAPI_RC_NO_TPM if FAPI was initialized in no-TPM-mode via its config file.
  • TSS2_FAPI_RC_TRY_AGAIN if an I/O operation is not finished yet and this function needs to be called again. round two, let's go πŸƒβ€β™€οΈ
  • TSS2_FAPI_RC_AUTHORIZATION_UNKNOWN if a required authorization callback is not set.
  • TSS2_ESYS_RC_* possible error codes of ESAPI.
  • TSS2_FAPI_RC_PATH_NOT_FOUND if a FAPI object path was not found during authorization.
  • TSS2_FAPI_RC_GENERAL_FAILURE if an internal error occured.
  • TSS2_FAPI_RC_NOT_PROVISIONED FAPI was not provisioned.
  • TSS2_FAPI_RC_AUTHORIZATION_FAILED if the authorization attempt fails. 😭
  • TSS2_FAPI_RC_POLICY_UNKNOWN if policy search for a certain policy digest was not successful.

πŸ’– TSS2_RC Fapi_CreateSeal_Async (FAPI_CONTEXT * context, char const * path, char const * type, size_t size, char const * policyPath, char const * authValue, uint8_t const * data)

the asynchronous function for Fapi_CreateSeal β€” same energy, but it does the thing in the background while you live your life 🧚

it creates a sealed object and stores it in the FAPI metadata store. and again, if no data is provided, the TPM generates random data to fill the sealed object.

bestie, you gotta call Fapi_CreateSeal_Finish to finish the execution of this command. don't leave it hanging πŸ’…

πŸŽ€ Parameters

  • context β€” The FAPI_CONTEXT
  • path β€” The path to the new sealed object
  • type β€” The type of the new sealed object. May be NULL
  • size β€” The size of the new sealed object. Must not be 0 ⚠️
  • policyPath β€” The path to the policy that is associated with the new sealed object. May be NULL
  • authValue β€” The authorization value for the new sealed object. May be NULL
  • data β€” The data that is to be sealed within the new object. May be NULL

πŸ¦‹ Return values

  • TSS2_RC_SUCCESS if the function call was a success. πŸŽ‰
  • TSS2_FAPI_RC_BAD_REFERENCE if context, or path is NULL.
  • TSS2_FAPI_RC_BAD_CONTEXT if context corruption is detected. πŸ’€
  • TSS2_FAPI_RC_KEY_NOT_FOUND if the parent key does not map to a FAPI key.
  • TSS2_FAPI_RC_BAD_PATH if policyPath is non-NULL and does not map to a FAPI key.
  • TSS2_FAPI_RC_PATH_ALREADY_EXISTS if a sealed object already exists at path. πŸ™ˆ
  • TSS2_FAPI_RC_BAD_VALUE if the keyType is invalid.
  • TSS2_FAPI_RC_BAD_SEQUENCE if the context has an asynchronous operation already pending.
  • TSS2_FAPI_RC_IO_ERROR if the data cannot be saved.
  • TSS2_FAPI_RC_MEMORY if the FAPI cannot allocate enough memory for internal operations or return parameters.
  • TSS2_FAPI_RC_NO_TPM if FAPI was initialized in no-TPM-mode via its config file.
  • TSS2_FAPI_RC_PATH_NOT_FOUND if a FAPI object path was not found during authorization.

🌟 TSS2_RC Fapi_CreateSeal_Finish (FAPI_CONTEXT * context)

the asynchronous finish function for Fapi_CreateSeal β€” the grand finale basically ⭐

this function should be called after a previous Fapi_CreateSeal. it's the "okay we're wrapping this up" moment, periodt.

πŸŽ€ Parameters

  • context β€” The FAPI_CONTEXT

πŸ¦‹ Return values

  • TSS2_RC_SUCCESS if the function call was a success. πŸŽ‰
  • TSS2_FAPI_RC_BAD_REFERENCE if context is NULL.
  • TSS2_FAPI_RC_BAD_CONTEXT if context corruption is detected. πŸ’€
  • TSS2_FAPI_RC_BAD_SEQUENCE if the context has an asynchronous operation already pending.
  • TSS2_FAPI_RC_IO_ERROR if the data cannot be saved.
  • TSS2_FAPI_RC_MEMORY if the FAPI cannot allocate enough memory for internal operations or return parameters.
  • TSS2_FAPI_RC_TRY_AGAIN if the asynchronous operation is not yet complete. Call this function again later. πŸ”
  • TSS2_FAPI_RC_BAD_VALUE if an invalid value was passed into the function.
  • TSS2_FAPI_RC_AUTHORIZATION_UNKNOWN if a required authorization callback is not set.
  • TSS2_ESYS_RC_* possible error codes of ESAPI.
  • TSS2_FAPI_RC_GENERAL_FAILURE if an internal error occured.
  • TSS2_FAPI_RC_NOT_PROVISIONED FAPI was not provisioned.
  • TSS2_FAPI_RC_KEY_NOT_FOUND if a key was not found.
  • TSS2_FAPI_RC_BAD_PATH if the path is used in inappropriate context or contains illegal characters. 🚫
  • TSS2_FAPI_RC_PATH_NOT_FOUND if a FAPI object path was not found during authorization.
  • TSS2_FAPI_RC_AUTHORIZATION_FAILED if the authorization attempt fails. 😭
  • TSS2_FAPI_RC_POLICY_UNKNOWN if policy search for a certain policy digest was not successful.
  • TSS2_FAPI_RC_PATH_ALREADY_EXISTS if the object already exists in object store.

πŸ“ Author πŸ“

Generated automatically by Doxygen for tpm2-tss from the source code. (not me writing my own author bio, the robots did it πŸ€–βœ¨)


and that's the page bestie! this gem is from tpm2-tss, Version 4.1.5, dated Fapi_CreateSeal(3) β€” go forth and seal your secrets, you're gonna slay πŸ’œπŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from