Fapi_Sign.3 7.2 KB

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