Fapi_Sign(3)
π Fapi_Sign(3) β the sign-y one π
okay so bestie, welcome to Fapi_Sign from the Library Functions Manual β¨ this is the glow-up page for the TPM2 FAPI signing trio and honestly it ate π«Ά
π NAME
Fapi_Sign β literally just Fapi_Sign π
(iconic, no notes)
β¨ SYNOPSIS
π Functions
TSS2_RC Fapi_Sign (FAPI_CONTEXT *context, char const *keyPath, char
const *padding, uint8_t const *digest, size_t digestSize, uint8_t
**signature, size_t *signatureSize, char **publicKey, char
**certificate)
TSS2_RC Fapi_Sign_Async (FAPI_CONTEXT *context, char const *keyPath,
char const *padding, uint8_t const *digest, size_t digestSize)
TSS2_RC Fapi_Sign_Finish (FAPI_CONTEXT *context, uint8_t **signature,
size_t *signatureSize, char **publicKey, char **certificate)
π¦ Detailed Description
these are the FAPI functions that let you invoke Sign β you can do it as a one-call situation or in an asynchronous manner, whichever vibe you're on π
π Function Documentation
πΈ TSS2_RC Fapi_Sign (...)
TSS2_RC Fapi_Sign (FAPI_CONTEXT * context, char const * keyPath, char const
* padding, uint8_t const * digest, size_t digestSize, uint8_t **
signature, size_t * signatureSize, char ** publicKey, char **
certificate)
one-call function for Fapi_Sign β
so it takes a key, identified by its path, and uses it to sign a digest, then puts the result in a TPM2B bytestream. slay π₯
Parameters
contextβ TheFAPI_CONTEXTkeyPathβ The path of the signature keypaddingβ A padding algorithm. Must be either"RSA_SSA"or"RSA_PSS"orNULLdigestβ The digest to sign. Must be already hasheddigestSizeβ The size of the digest in bytessignatureβ The signaturesignatureSizeβ The size of signature in bytes. May beNULLpublicKeyβ The public key that can be used to verify signature in PEM format. May beNULLcertificateβ The certificate associated with the signing key in PEM format. May beNULL
Return values
TSS2_RC_SUCCESSif the function call was a success.TSS2_FAPI_RC_BAD_REFERENCEifcontext,keyPath,digestorsignatureisNULL.TSS2_FAPI_RC_BAD_CONTEXTif context corruption is detected.TSS2_FAPI_RC_KEY_NOT_FOUNDifkeyPathdoes not map to a FAPI key.TSS2_FAPI_RC_BAD_KEYif the object atkeyPathis not a key, or is a key that is unsuitable for the requested operation.TSS2_FAPI_RC_BAD_VALUEif thedigestSizeis zero.TSS2_FAPI_RC_BAD_SEQUENCEif the context has an asynchronous operation already pending.TSS2_FAPI_RC_IO_ERRORif the data cannot be saved.TSS2_FAPI_RC_MEMORYif the FAPI cannot allocate enough memory for internal operations or return parameters.TSS2_FAPI_RC_NO_TPMif FAPI was initialized in no-TPM-mode via its config file.TSS2_FAPI_RC_TRY_AGAINif an I/O operation is not finished yet and this function needs to be called again.TSS2_FAPI_RC_PATH_NOT_FOUNDif a FAPI object path was not found during authorization.TSS2_FAPI_RC_GENERAL_FAILUREif an internal error occurred.TSS2_FAPI_RC_AUTHORIZATION_UNKNOWNif a required authorization callback is not set.TSS2_FAPI_RC_AUTHORIZATION_FAILEDif the authorization attempt fails.TSS2_FAPI_RC_POLICY_UNKNOWNif policy search for a certain policy digest was not successful.TSS2_ESYS_RC_*possible error codes of ESAPI.TSS2_FAPI_RC_NOT_PROVISIONEDFAPI was not provisioned.TSS2_FAPI_RC_BAD_PATHif the path is used in inappropriate context or contains illegal characters.
π§ TSS2_RC Fapi_Sign_Async (...)
TSS2_RC Fapi_Sign_Async (FAPI_CONTEXT * context, char const * keyPath, char
const * padding, uint8_t const * digest, size_t digestSize)
asynchronous function for Fapi_Sign π¦
same deal, bestie: uses a key, identified by its path, to sign a digest and puts the result in a TPM2B bytestream β¨
call Fapi_Sign_Finish to finish the execution of this command β don't leave it hanging, that's not the vibe π
Parameters
contextβ TheFAPI_CONTEXTkeyPathβ The path of the signature keypaddingβ A padding algorithm. Must be either"RSA_SSA"or"RSA_PSS"orNULLdigestβ The digest to sign. Must be already hasheddigestSizeβ The size of the digest in bytes
Return values
TSS2_RC_SUCCESSif the function call was a success.TSS2_FAPI_RC_BAD_REFERENCEifcontext,keyPathordigestisNULL.TSS2_FAPI_RC_BAD_CONTEXTif context corruption is detected.TSS2_FAPI_RC_KEY_NOT_FOUNDifkeyPathdoes not map to a FAPI key.TSS2_FAPI_RC_BAD_KEYif the object atkeyPathis not a key, or is a key that is unsuitable for the requested operation.TSS2_FAPI_RC_BAD_VALUEif thedigestSizeis zero.TSS2_FAPI_RC_BAD_SEQUENCEif the context has an asynchronous operation already pending.TSS2_FAPI_RC_IO_ERRORif the data cannot be saved.TSS2_FAPI_RC_MEMORYif the FAPI cannot allocate enough memory for internal operations or return parameters.TSS2_FAPI_RC_NO_TPMif FAPI was initialized in no-TPM-mode via its config file.
π TSS2_RC Fapi_Sign_Finish (...)
TSS2_RC Fapi_Sign_Finish (FAPI_CONTEXT * context, uint8_t ** signature,
size_t * signatureSize, char ** publicKey, char ** certificate)
asynchronous finish function for Fapi_Sign π
this function should be called after a previous Fapi_Sign_Async β it's giving part two of the saga, main character energy π
Parameters
contextβ TheFAPI_CONTEXTsignatureβ The signaturesignatureSizeβ The size of signature in bytes. May beNULLpublicKeyβ The public key that can be used to verify signature in PEM format. May beNULLcertificateβ The certificate associated with the signing key in PEM format. May beNULL
Return values
TSS2_RC_SUCCESSif the function call was a success.TSS2_FAPI_RC_BAD_REFERENCEifcontextorsignatureisNULL.TSS2_FAPI_RC_BAD_CONTEXTif context corruption is detected.TSS2_FAPI_RC_BAD_SEQUENCEif the context has an asynchronous operation already pending.TSS2_FAPI_RC_IO_ERRORif the data cannot be saved.TSS2_FAPI_RC_MEMORYif the FAPI cannot allocate enough memory for internal operations or return parameters.TSS2_FAPI_RC_TRY_AGAINif the asynchronous operation is not yet complete. Call this function again later.TSS2_FAPI_RC_PATH_NOT_FOUNDif a FAPI object path was not found during authorization.TSS2_FAPI_RC_KEY_NOT_FOUNDif a key was not found.TSS2_FAPI_RC_BAD_VALUEif an invalid value was passed into the function.TSS2_FAPI_RC_GENERAL_FAILUREif an internal error occurred.TSS2_FAPI_RC_AUTHORIZATION_UNKNOWNif a required authorization callback is not set.TSS2_FAPI_RC_AUTHORIZATION_FAILEDif the authorization attempt fails.TSS2_FAPI_RC_POLICY_UNKNOWNif policy search for a certain policy digest was not successful.TSS2_ESYS_RC_*possible error codes of ESAPI.TSS2_FAPI_RC_NOT_PROVISIONEDFAPI was not provisioned.TSS2_FAPI_RC_BAD_PATHif the path is used in inappropriate context or contains illegal characters.
π Author
Generated automatically by Doxygen for tpm2-tss from the source code. (the bots wrote this one, we just gave it the sparkle treatment β¨π€)
mwah π that's the whole page bestie β tpm2-tss, Version 4.1.5, dated Fapi_Sign(3). go sign something iconic π«Άπβ
π¦ where this page comes from
- fedora 44: tpm2-tss-devel 4.1.5-1.fc44 Β· BSD-2-Clause
- fedora 44: tpm2-tss-devel 4.1.5-1.fc44 Β· BSD-2-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms