tpm2-tss  master
TPM Software stack 2.0 TCG spec compliant implementation
Fapi_Encrypt

Functions

TSS2_RC Fapi_Encrypt (FAPI_CONTEXT *context, char const *keyPath, uint8_t const *plainText, size_t plainTextSize, uint8_t **cipherText, size_t *cipherTextSize)
 
TSS2_RC Fapi_Encrypt_Async (FAPI_CONTEXT *context, char const *keyPath, uint8_t const *plainText, size_t plainTextSize)
 
TSS2_RC Fapi_Encrypt_Finish (FAPI_CONTEXT *context, uint8_t **cipherText, size_t *cipherTextSize)
 

Detailed Description

FAPI functions to invoke Encrypt either as one-call or in an asynchronous manner.

Function Documentation

◆ Fapi_Encrypt()

TSS2_RC Fapi_Encrypt ( FAPI_CONTEXT context,
char const *  keyPath,
uint8_t const *  plainText,
size_t  plainTextSize,
uint8_t **  cipherText,
size_t *  cipherTextSize 
)

One-Call function for Fapi_Encrypt

Encrypt the provided data for the target key using the TPM encryption schemes as specified in the crypto profile. This function does not use the TPM; i.e. works in non-TPM mode.

Parameters
[in,out]contextThe FAPI_CONTEXT
[in]keyPathTHe path to the encryption key
[in]plainTextThe plaintext data to encrypt
[in]plainTextSizeThe size of the plainText in bytes
[out]cipherTextThe encoded cipher text.
[out]cipherTextSizeThe size of the encoded cipher text.
Return values
TSS2_RC_SUCCESSif the function call was a success.
TSS2_FAPI_RC_BAD_REFERENCEif context, keyPath, plainText, or cipherText is NULL.
TSS2_FAPI_RC_BAD_CONTEXTif context corruption is detected.
TSS2_FAPI_RC_KEY_NOT_FOUNDif keyPath does not map to a FAPI key.
TSS2_FAPI_RC_BAD_KEYif the key at keyPath is unsuitable for encryption.
TSS2_FAPI_RC_BAD_VALUEif plainTextSize is 0.
TSS2_FAPI_RC_BAD_SEQUENCEif the context has an asynchronous operation already pending.
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_IO_ERRORif an error occurred while accessing the object store.
TSS2_FAPI_RC_NOT_IMPLEMENTEDif the encryption algorithm is not available.
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.

◆ Fapi_Encrypt_Async()

TSS2_RC Fapi_Encrypt_Async ( FAPI_CONTEXT context,
char const *  keyPath,
uint8_t const *  plainText,
size_t  plainTextSize 
)

Asynchronous function for Fapi_Encrypt

Encrypt the provided data for the target key using the TPM encryption schemes as specified in the crypto profile. This function does not use the TPM; i.e. works in non-TPM mode.

Call Fapi_Encrypt_Finish to finish the execution of this command.

Parameters
[in,out]contextThe FAPI_CONTEXT
[in]keyPathThe path to the encryption key
[in]plainTextThe plainText data to encrypt
[in]plainTextSizeThe size of the plainText in bytes
Return values
TSS2_RC_SUCCESSif the function call was a success.
TSS2_FAPI_RC_BAD_REFERENCEif context, keyPath or plainText is NULL.
TSS2_FAPI_RC_BAD_CONTEXTif context corruption is detected.
TSS2_FAPI_RC_KEY_NOT_FOUNDif keyPath does not map to a FAPI key.
TSS2_FAPI_RC_BAD_KEYif the key at keyPath is unsuitable for encryption.
TSS2_FAPI_RC_BAD_VALUEif plainTextSize is 0.
TSS2_FAPI_RC_BAD_SEQUENCEif the context has an asynchronous operation already pending.
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.

◆ Fapi_Encrypt_Finish()

TSS2_RC Fapi_Encrypt_Finish ( FAPI_CONTEXT context,
uint8_t **  cipherText,
size_t *  cipherTextSize 
)

Asynchronous finish function for Fapi_Encrypt

This function should be called after a previous Fapi_Encrypt_Async.

Parameters
[in,out]contextThe FAPI_CONTEXT
[out]cipherTextThe encoded ciphertext
[out]cipherTextSizeThe size of the encoded cipher text.
Return values
TSS2_RC_SUCCESSif the function call was a success.
TSS2_FAPI_RC_BAD_REFERENCEif context or ciphertext is NULL.
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_NOT_IMPLEMENTEDif the encryption algorithm is not available.
TSS2_FAPI_RC_BAD_VALUEif an invalid value was passed into the function.
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_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.