Fapi_Encrypt.3 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. .TH "Fapi_Encrypt" 3 "Fri Oct 7 2022" "Version 3.2.0" "tpm2-tss" \" -*- nroff -*-
  2. .ad l
  3. .nh
  4. .SH NAME
  5. Fapi_Encrypt
  6. .SH SYNOPSIS
  7. .br
  8. .PP
  9. .SS "Functions"
  10. .in +1c
  11. .ti -1c
  12. .RI "TSS2_RC \fBFapi_Encrypt\fP (\fBFAPI_CONTEXT\fP *context, char const *keyPath, uint8_t const *plainText, size_t plainTextSize, uint8_t **cipherText, size_t *cipherTextSize)"
  13. .br
  14. .ti -1c
  15. .RI "TSS2_RC \fBFapi_Encrypt_Async\fP (\fBFAPI_CONTEXT\fP *context, char const *keyPath, uint8_t const *plainText, size_t plainTextSize)"
  16. .br
  17. .ti -1c
  18. .RI "TSS2_RC \fBFapi_Encrypt_Finish\fP (\fBFAPI_CONTEXT\fP *context, uint8_t **cipherText, size_t *cipherTextSize)"
  19. .br
  20. .in -1c
  21. .SH "Detailed Description"
  22. .PP
  23. FAPI functions to invoke Encrypt either as one-call or in an asynchronous manner\&.
  24. .SH "Function Documentation"
  25. .PP
  26. .SS "TSS2_RC Fapi_Encrypt (\fBFAPI_CONTEXT\fP * context, char const * keyPath, uint8_t const * plainText, size_t plainTextSize, uint8_t ** cipherText, size_t * cipherTextSize)"
  27. One-Call function for Fapi_Encrypt
  28. .PP
  29. 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\&.
  30. .PP
  31. \fBParameters:\fP
  32. .RS 4
  33. \fIcontext\fP The \fBFAPI_CONTEXT\fP
  34. .br
  35. \fIkeyPath\fP THe path to the encryption key
  36. .br
  37. \fIplainText\fP The plaintext data to encrypt
  38. .br
  39. \fIplainTextSize\fP The size of the plainText in bytes
  40. .br
  41. \fIcipherText\fP The encoded cipher text\&.
  42. .br
  43. \fIcipherTextSize\fP The size of the encoded cipher text\&.
  44. .RE
  45. .PP
  46. \fBReturn values:\fP
  47. .RS 4
  48. \fITSS2_RC_SUCCESS\fP if the function call was a success\&.
  49. .br
  50. \fITSS2_FAPI_RC_BAD_REFERENCE\fP if context, keyPath, plainText, or cipherText is NULL\&.
  51. .br
  52. \fITSS2_FAPI_RC_BAD_CONTEXT\fP if context corruption is detected\&.
  53. .br
  54. \fITSS2_FAPI_RC_KEY_NOT_FOUND\fP if keyPath does not map to a FAPI key\&.
  55. .br
  56. \fITSS2_FAPI_RC_BAD_KEY\fP if the key at keyPath is unsuitable for encryption\&.
  57. .br
  58. \fITSS2_FAPI_RC_BAD_VALUE\fP if plainTextSize is 0\&.
  59. .br
  60. \fITSS2_FAPI_RC_BAD_SEQUENCE\fP if the context has an asynchronous operation already pending\&.
  61. .br
  62. \fITSS2_FAPI_RC_MEMORY\fP if the FAPI cannot allocate enough memory for internal operations or return parameters\&.
  63. .br
  64. \fITSS2_FAPI_RC_NO_TPM\fP if FAPI was initialized in no-TPM-mode via its config file\&.
  65. .br
  66. \fITSS2_FAPI_RC_IO_ERROR\fP if an error occurred while accessing the object store\&.
  67. .br
  68. \fITSS2_FAPI_RC_NOT_IMPLEMENTED\fP if the encryption algorithm is not available\&.
  69. .br
  70. \fITSS2_FAPI_RC_TRY_AGAIN\fP if an I/O operation is not finished yet and this function needs to be called again\&.
  71. .br
  72. \fITSS2_FAPI_RC_PATH_NOT_FOUND\fP if a FAPI object path was not found during authorization\&.
  73. .br
  74. \fITSS2_FAPI_RC_GENERAL_FAILURE\fP if an internal error occurred\&.
  75. .br
  76. \fITSS2_FAPI_RC_AUTHORIZATION_UNKNOWN\fP if a required authorization callback is not set\&.
  77. .br
  78. \fITSS2_FAPI_RC_AUTHORIZATION_FAILED\fP if the authorization attempt fails\&.
  79. .br
  80. \fITSS2_FAPI_RC_POLICY_UNKNOWN\fP if policy search for a certain policy digest was not successful\&.
  81. .br
  82. \fITSS2_ESYS_RC_*\fP possible error codes of ESAPI\&.
  83. .br
  84. \fITSS2_FAPI_RC_NOT_PROVISIONED\fP FAPI was not provisioned\&.
  85. .br
  86. \fITSS2_FAPI_RC_BAD_PATH\fP if the path is used in inappropriate context or contains illegal characters\&.
  87. .RE
  88. .PP
  89. .SS "TSS2_RC Fapi_Encrypt_Async (\fBFAPI_CONTEXT\fP * context, char const * keyPath, uint8_t const * plainText, size_t plainTextSize)"
  90. Asynchronous function for Fapi_Encrypt
  91. .PP
  92. 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\&.
  93. .PP
  94. Call Fapi_Encrypt_Finish to finish the execution of this command\&.
  95. .PP
  96. \fBParameters:\fP
  97. .RS 4
  98. \fIcontext\fP The \fBFAPI_CONTEXT\fP
  99. .br
  100. \fIkeyPath\fP The path to the encryption key
  101. .br
  102. \fIplainText\fP The plainText data to encrypt
  103. .br
  104. \fIplainTextSize\fP The size of the plainText in bytes
  105. .RE
  106. .PP
  107. \fBReturn values:\fP
  108. .RS 4
  109. \fITSS2_RC_SUCCESS\fP if the function call was a success\&.
  110. .br
  111. \fITSS2_FAPI_RC_BAD_REFERENCE\fP if context, keyPath or plainText is NULL\&.
  112. .br
  113. \fITSS2_FAPI_RC_BAD_CONTEXT\fP if context corruption is detected\&.
  114. .br
  115. \fITSS2_FAPI_RC_KEY_NOT_FOUND\fP if keyPath does not map to a FAPI key\&.
  116. .br
  117. \fITSS2_FAPI_RC_BAD_KEY\fP if the key at keyPath is unsuitable for encryption\&.
  118. .br
  119. \fITSS2_FAPI_RC_BAD_VALUE\fP if plainTextSize is 0\&.
  120. .br
  121. \fITSS2_FAPI_RC_BAD_SEQUENCE\fP if the context has an asynchronous operation already pending\&.
  122. .br
  123. \fITSS2_FAPI_RC_MEMORY\fP if the FAPI cannot allocate enough memory for internal operations or return parameters\&.
  124. .br
  125. \fITSS2_FAPI_RC_NO_TPM\fP if FAPI was initialized in no-TPM-mode via its config file\&.
  126. .RE
  127. .PP
  128. .SS "TSS2_RC Fapi_Encrypt_Finish (\fBFAPI_CONTEXT\fP * context, uint8_t ** cipherText, size_t * cipherTextSize)"
  129. Asynchronous finish function for Fapi_Encrypt
  130. .PP
  131. This function should be called after a previous Fapi_Encrypt_Async\&.
  132. .PP
  133. \fBParameters:\fP
  134. .RS 4
  135. \fIcontext\fP The \fBFAPI_CONTEXT\fP
  136. .br
  137. \fIcipherText\fP The encoded ciphertext
  138. .br
  139. \fIcipherTextSize\fP The size of the encoded cipher text\&.
  140. .RE
  141. .PP
  142. \fBReturn values:\fP
  143. .RS 4
  144. \fITSS2_RC_SUCCESS\fP if the function call was a success\&.
  145. .br
  146. \fITSS2_FAPI_RC_BAD_REFERENCE\fP if context or ciphertext is NULL\&.
  147. .br
  148. \fITSS2_FAPI_RC_BAD_CONTEXT\fP if context corruption is detected\&.
  149. .br
  150. \fITSS2_FAPI_RC_BAD_SEQUENCE\fP if the context has an asynchronous operation already pending\&.
  151. .br
  152. \fITSS2_FAPI_RC_IO_ERROR\fP if the data cannot be saved\&.
  153. .br
  154. \fITSS2_FAPI_RC_MEMORY\fP if the FAPI cannot allocate enough memory for internal operations or return parameters\&.
  155. .br
  156. \fITSS2_FAPI_RC_TRY_AGAIN\fP if the asynchronous operation is not yet complete\&. Call this function again later\&.
  157. .br
  158. \fITSS2_FAPI_RC_NOT_IMPLEMENTED\fP if the encryption algorithm is not available\&.
  159. .br
  160. \fITSS2_FAPI_RC_BAD_VALUE\fP if an invalid value was passed into the function\&.
  161. .br
  162. \fITSS2_FAPI_RC_PATH_NOT_FOUND\fP if a FAPI object path was not found during authorization\&.
  163. .br
  164. \fITSS2_FAPI_RC_KEY_NOT_FOUND\fP if a key was not found\&.
  165. .br
  166. \fITSS2_FAPI_RC_GENERAL_FAILURE\fP if an internal error occurred\&.
  167. .br
  168. \fITSS2_FAPI_RC_AUTHORIZATION_UNKNOWN\fP if a required authorization callback is not set\&.
  169. .br
  170. \fITSS2_FAPI_RC_AUTHORIZATION_FAILED\fP if the authorization attempt fails\&.
  171. .br
  172. \fITSS2_FAPI_RC_POLICY_UNKNOWN\fP if policy search for a certain policy digest was not successful\&.
  173. .br
  174. \fITSS2_ESYS_RC_*\fP possible error codes of ESAPI\&.
  175. .br
  176. \fITSS2_FAPI_RC_NOT_PROVISIONED\fP FAPI was not provisioned\&.
  177. .br
  178. \fITSS2_FAPI_RC_BAD_PATH\fP if the path is used in inappropriate context or contains illegal characters\&.
  179. .RE
  180. .PP
  181. .SH "Author"
  182. .PP
  183. Generated automatically by Doxygen for tpm2-tss from the source code\&.