psa_crypto_driver_wrappers.h 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. /*
  2. * Function signatures for functionality that can be provided by
  3. * cryptographic accelerators.
  4. * Warning: This file will be auto-generated in the future.
  5. */
  6. /* Copyright The Mbed TLS Contributors
  7. * SPDX-License-Identifier: Apache-2.0
  8. *
  9. * Licensed under the Apache License, Version 2.0 (the "License"); you may
  10. * not use this file except in compliance with the License.
  11. * You may obtain a copy of the License at
  12. *
  13. * http://www.apache.org/licenses/LICENSE-2.0
  14. *
  15. * Unless required by applicable law or agreed to in writing, software
  16. * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  17. * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  18. * See the License for the specific language governing permissions and
  19. * limitations under the License.
  20. */
  21. #ifndef PSA_CRYPTO_DRIVER_WRAPPERS_H
  22. #define PSA_CRYPTO_DRIVER_WRAPPERS_H
  23. #include "psa/crypto.h"
  24. #include "psa/crypto_driver_common.h"
  25. /*
  26. * Signature functions
  27. */
  28. psa_status_t psa_driver_wrapper_sign_message(
  29. const psa_key_attributes_t *attributes,
  30. const uint8_t *key_buffer,
  31. size_t key_buffer_size,
  32. psa_algorithm_t alg,
  33. const uint8_t *input,
  34. size_t input_length,
  35. uint8_t *signature,
  36. size_t signature_size,
  37. size_t *signature_length );
  38. psa_status_t psa_driver_wrapper_verify_message(
  39. const psa_key_attributes_t *attributes,
  40. const uint8_t *key_buffer,
  41. size_t key_buffer_size,
  42. psa_algorithm_t alg,
  43. const uint8_t *input,
  44. size_t input_length,
  45. const uint8_t *signature,
  46. size_t signature_length );
  47. psa_status_t psa_driver_wrapper_sign_hash(
  48. const psa_key_attributes_t *attributes,
  49. const uint8_t *key_buffer, size_t key_buffer_size,
  50. psa_algorithm_t alg, const uint8_t *hash, size_t hash_length,
  51. uint8_t *signature, size_t signature_size, size_t *signature_length );
  52. psa_status_t psa_driver_wrapper_verify_hash(
  53. const psa_key_attributes_t *attributes,
  54. const uint8_t *key_buffer, size_t key_buffer_size,
  55. psa_algorithm_t alg, const uint8_t *hash, size_t hash_length,
  56. const uint8_t *signature, size_t signature_length );
  57. /*
  58. * Key handling functions
  59. */
  60. psa_status_t psa_driver_wrapper_import_key(
  61. const psa_key_attributes_t *attributes,
  62. const uint8_t *data, size_t data_length,
  63. uint8_t *key_buffer, size_t key_buffer_size,
  64. size_t *key_buffer_length, size_t *bits );
  65. psa_status_t psa_driver_wrapper_export_key(
  66. const psa_key_attributes_t *attributes,
  67. const uint8_t *key_buffer, size_t key_buffer_size,
  68. uint8_t *data, size_t data_size, size_t *data_length );
  69. psa_status_t psa_driver_wrapper_export_public_key(
  70. const psa_key_attributes_t *attributes,
  71. const uint8_t *key_buffer, size_t key_buffer_size,
  72. uint8_t *data, size_t data_size, size_t *data_length );
  73. psa_status_t psa_driver_wrapper_get_key_buffer_size(
  74. const psa_key_attributes_t *attributes,
  75. size_t *key_buffer_size );
  76. psa_status_t psa_driver_wrapper_generate_key(
  77. const psa_key_attributes_t *attributes,
  78. uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length );
  79. psa_status_t psa_driver_wrapper_get_builtin_key(
  80. psa_drv_slot_number_t slot_number,
  81. psa_key_attributes_t *attributes,
  82. uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length );
  83. /*
  84. * Cipher functions
  85. */
  86. psa_status_t psa_driver_wrapper_cipher_encrypt(
  87. const psa_key_attributes_t *attributes,
  88. const uint8_t *key_buffer,
  89. size_t key_buffer_size,
  90. psa_algorithm_t alg,
  91. const uint8_t *input,
  92. size_t input_length,
  93. uint8_t *output,
  94. size_t output_size,
  95. size_t *output_length );
  96. psa_status_t psa_driver_wrapper_cipher_decrypt(
  97. const psa_key_attributes_t *attributes,
  98. const uint8_t *key_buffer,
  99. size_t key_buffer_size,
  100. psa_algorithm_t alg,
  101. const uint8_t *input,
  102. size_t input_length,
  103. uint8_t *output,
  104. size_t output_size,
  105. size_t *output_length );
  106. psa_status_t psa_driver_wrapper_cipher_encrypt_setup(
  107. psa_cipher_operation_t *operation,
  108. const psa_key_attributes_t *attributes,
  109. const uint8_t *key_buffer, size_t key_buffer_size,
  110. psa_algorithm_t alg );
  111. psa_status_t psa_driver_wrapper_cipher_decrypt_setup(
  112. psa_cipher_operation_t *operation,
  113. const psa_key_attributes_t *attributes,
  114. const uint8_t *key_buffer, size_t key_buffer_size,
  115. psa_algorithm_t alg );
  116. psa_status_t psa_driver_wrapper_cipher_set_iv(
  117. psa_cipher_operation_t *operation,
  118. const uint8_t *iv,
  119. size_t iv_length );
  120. psa_status_t psa_driver_wrapper_cipher_update(
  121. psa_cipher_operation_t *operation,
  122. const uint8_t *input,
  123. size_t input_length,
  124. uint8_t *output,
  125. size_t output_size,
  126. size_t *output_length );
  127. psa_status_t psa_driver_wrapper_cipher_finish(
  128. psa_cipher_operation_t *operation,
  129. uint8_t *output,
  130. size_t output_size,
  131. size_t *output_length );
  132. psa_status_t psa_driver_wrapper_cipher_abort(
  133. psa_cipher_operation_t *operation );
  134. /*
  135. * Hashing functions
  136. */
  137. psa_status_t psa_driver_wrapper_hash_compute(
  138. psa_algorithm_t alg,
  139. const uint8_t *input,
  140. size_t input_length,
  141. uint8_t *hash,
  142. size_t hash_size,
  143. size_t *hash_length);
  144. psa_status_t psa_driver_wrapper_hash_setup(
  145. psa_hash_operation_t *operation,
  146. psa_algorithm_t alg );
  147. psa_status_t psa_driver_wrapper_hash_clone(
  148. const psa_hash_operation_t *source_operation,
  149. psa_hash_operation_t *target_operation );
  150. psa_status_t psa_driver_wrapper_hash_update(
  151. psa_hash_operation_t *operation,
  152. const uint8_t *input,
  153. size_t input_length );
  154. psa_status_t psa_driver_wrapper_hash_finish(
  155. psa_hash_operation_t *operation,
  156. uint8_t *hash,
  157. size_t hash_size,
  158. size_t *hash_length );
  159. psa_status_t psa_driver_wrapper_hash_abort(
  160. psa_hash_operation_t *operation );
  161. /*
  162. * AEAD functions
  163. */
  164. psa_status_t psa_driver_wrapper_aead_encrypt(
  165. const psa_key_attributes_t *attributes,
  166. const uint8_t *key_buffer, size_t key_buffer_size,
  167. psa_algorithm_t alg,
  168. const uint8_t *nonce, size_t nonce_length,
  169. const uint8_t *additional_data, size_t additional_data_length,
  170. const uint8_t *plaintext, size_t plaintext_length,
  171. uint8_t *ciphertext, size_t ciphertext_size, size_t *ciphertext_length );
  172. psa_status_t psa_driver_wrapper_aead_decrypt(
  173. const psa_key_attributes_t *attributes,
  174. const uint8_t *key_buffer, size_t key_buffer_size,
  175. psa_algorithm_t alg,
  176. const uint8_t *nonce, size_t nonce_length,
  177. const uint8_t *additional_data, size_t additional_data_length,
  178. const uint8_t *ciphertext, size_t ciphertext_length,
  179. uint8_t *plaintext, size_t plaintext_size, size_t *plaintext_length );
  180. /*
  181. * MAC functions
  182. */
  183. psa_status_t psa_driver_wrapper_mac_compute(
  184. const psa_key_attributes_t *attributes,
  185. const uint8_t *key_buffer,
  186. size_t key_buffer_size,
  187. psa_algorithm_t alg,
  188. const uint8_t *input,
  189. size_t input_length,
  190. uint8_t *mac,
  191. size_t mac_size,
  192. size_t *mac_length );
  193. psa_status_t psa_driver_wrapper_mac_sign_setup(
  194. psa_mac_operation_t *operation,
  195. const psa_key_attributes_t *attributes,
  196. const uint8_t *key_buffer,
  197. size_t key_buffer_size,
  198. psa_algorithm_t alg );
  199. psa_status_t psa_driver_wrapper_mac_verify_setup(
  200. psa_mac_operation_t *operation,
  201. const psa_key_attributes_t *attributes,
  202. const uint8_t *key_buffer,
  203. size_t key_buffer_size,
  204. psa_algorithm_t alg );
  205. psa_status_t psa_driver_wrapper_mac_update(
  206. psa_mac_operation_t *operation,
  207. const uint8_t *input,
  208. size_t input_length );
  209. psa_status_t psa_driver_wrapper_mac_sign_finish(
  210. psa_mac_operation_t *operation,
  211. uint8_t *mac,
  212. size_t mac_size,
  213. size_t *mac_length );
  214. psa_status_t psa_driver_wrapper_mac_verify_finish(
  215. psa_mac_operation_t *operation,
  216. const uint8_t *mac,
  217. size_t mac_length );
  218. psa_status_t psa_driver_wrapper_mac_abort(
  219. psa_mac_operation_t *operation );
  220. #endif /* PSA_CRYPTO_DRIVER_WRAPPERS_H */
  221. /* End of automatically generated file. */