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 OR GPL-2.0-or-later 8 */ 9 10 #ifndef PSA_CRYPTO_DRIVER_WRAPPERS_H 11 #define PSA_CRYPTO_DRIVER_WRAPPERS_H 12 13 #include "psa/crypto.h" 14 #include "psa/crypto_driver_common.h" 15 16 /* 17 * Initialization and termination functions 18 */ 19 psa_status_t psa_driver_wrapper_init(void); 20 void psa_driver_wrapper_free(void); 21 22 /* 23 * Signature functions 24 */ 25 psa_status_t psa_driver_wrapper_sign_message( 26 const psa_key_attributes_t *attributes, 27 const uint8_t *key_buffer, 28 size_t key_buffer_size, 29 psa_algorithm_t alg, 30 const uint8_t *input, 31 size_t input_length, 32 uint8_t *signature, 33 size_t signature_size, 34 size_t *signature_length); 35 36 psa_status_t psa_driver_wrapper_verify_message( 37 const psa_key_attributes_t *attributes, 38 const uint8_t *key_buffer, 39 size_t key_buffer_size, 40 psa_algorithm_t alg, 41 const uint8_t *input, 42 size_t input_length, 43 const uint8_t *signature, 44 size_t signature_length); 45 46 psa_status_t psa_driver_wrapper_sign_hash( 47 const psa_key_attributes_t *attributes, 48 const uint8_t *key_buffer, size_t key_buffer_size, 49 psa_algorithm_t alg, const uint8_t *hash, size_t hash_length, 50 uint8_t *signature, size_t signature_size, size_t *signature_length); 51 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 /* 59 * Key handling functions 60 */ 61 62 psa_status_t psa_driver_wrapper_import_key( 63 const psa_key_attributes_t *attributes, 64 const uint8_t *data, size_t data_length, 65 uint8_t *key_buffer, size_t key_buffer_size, 66 size_t *key_buffer_length, size_t *bits); 67 68 psa_status_t psa_driver_wrapper_export_key( 69 const psa_key_attributes_t *attributes, 70 const uint8_t *key_buffer, size_t key_buffer_size, 71 uint8_t *data, size_t data_size, size_t *data_length); 72 73 psa_status_t psa_driver_wrapper_export_public_key( 74 const psa_key_attributes_t *attributes, 75 const uint8_t *key_buffer, size_t key_buffer_size, 76 uint8_t *data, size_t data_size, size_t *data_length); 77 78 psa_status_t psa_driver_wrapper_get_key_buffer_size( 79 const psa_key_attributes_t *attributes, 80 size_t *key_buffer_size); 81 82 psa_status_t psa_driver_wrapper_generate_key( 83 const psa_key_attributes_t *attributes, 84 uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length); 85 86 psa_status_t psa_driver_wrapper_get_builtin_key( 87 psa_drv_slot_number_t slot_number, 88 psa_key_attributes_t *attributes, 89 uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length); 90 91 /* 92 * Cipher functions 93 */ 94 psa_status_t psa_driver_wrapper_cipher_encrypt( 95 const psa_key_attributes_t *attributes, 96 const uint8_t *key_buffer, 97 size_t key_buffer_size, 98 psa_algorithm_t alg, 99 const uint8_t *iv, 100 size_t iv_length, 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 107 psa_status_t psa_driver_wrapper_cipher_decrypt( 108 const psa_key_attributes_t *attributes, 109 const uint8_t *key_buffer, 110 size_t key_buffer_size, 111 psa_algorithm_t alg, 112 const uint8_t *input, 113 size_t input_length, 114 uint8_t *output, 115 size_t output_size, 116 size_t *output_length); 117 118 psa_status_t psa_driver_wrapper_cipher_encrypt_setup( 119 psa_cipher_operation_t *operation, 120 const psa_key_attributes_t *attributes, 121 const uint8_t *key_buffer, size_t key_buffer_size, 122 psa_algorithm_t alg); 123 124 psa_status_t psa_driver_wrapper_cipher_decrypt_setup( 125 psa_cipher_operation_t *operation, 126 const psa_key_attributes_t *attributes, 127 const uint8_t *key_buffer, size_t key_buffer_size, 128 psa_algorithm_t alg); 129 130 psa_status_t psa_driver_wrapper_cipher_set_iv( 131 psa_cipher_operation_t *operation, 132 const uint8_t *iv, 133 size_t iv_length); 134 135 psa_status_t psa_driver_wrapper_cipher_update( 136 psa_cipher_operation_t *operation, 137 const uint8_t *input, 138 size_t input_length, 139 uint8_t *output, 140 size_t output_size, 141 size_t *output_length); 142 143 psa_status_t psa_driver_wrapper_cipher_finish( 144 psa_cipher_operation_t *operation, 145 uint8_t *output, 146 size_t output_size, 147 size_t *output_length); 148 149 psa_status_t psa_driver_wrapper_cipher_abort( 150 psa_cipher_operation_t *operation); 151 152 /* 153 * Hashing functions 154 */ 155 psa_status_t psa_driver_wrapper_hash_compute( 156 psa_algorithm_t alg, 157 const uint8_t *input, 158 size_t input_length, 159 uint8_t *hash, 160 size_t hash_size, 161 size_t *hash_length); 162 163 psa_status_t psa_driver_wrapper_hash_setup( 164 psa_hash_operation_t *operation, 165 psa_algorithm_t alg); 166 167 psa_status_t psa_driver_wrapper_hash_clone( 168 const psa_hash_operation_t *source_operation, 169 psa_hash_operation_t *target_operation); 170 171 psa_status_t psa_driver_wrapper_hash_update( 172 psa_hash_operation_t *operation, 173 const uint8_t *input, 174 size_t input_length); 175 176 psa_status_t psa_driver_wrapper_hash_finish( 177 psa_hash_operation_t *operation, 178 uint8_t *hash, 179 size_t hash_size, 180 size_t *hash_length); 181 182 psa_status_t psa_driver_wrapper_hash_abort( 183 psa_hash_operation_t *operation); 184 185 /* 186 * AEAD functions 187 */ 188 189 psa_status_t psa_driver_wrapper_aead_encrypt( 190 const psa_key_attributes_t *attributes, 191 const uint8_t *key_buffer, size_t key_buffer_size, 192 psa_algorithm_t alg, 193 const uint8_t *nonce, size_t nonce_length, 194 const uint8_t *additional_data, size_t additional_data_length, 195 const uint8_t *plaintext, size_t plaintext_length, 196 uint8_t *ciphertext, size_t ciphertext_size, size_t *ciphertext_length); 197 198 psa_status_t psa_driver_wrapper_aead_decrypt( 199 const psa_key_attributes_t *attributes, 200 const uint8_t *key_buffer, size_t key_buffer_size, 201 psa_algorithm_t alg, 202 const uint8_t *nonce, size_t nonce_length, 203 const uint8_t *additional_data, size_t additional_data_length, 204 const uint8_t *ciphertext, size_t ciphertext_length, 205 uint8_t *plaintext, size_t plaintext_size, size_t *plaintext_length); 206 207 /* 208 * MAC functions 209 */ 210 psa_status_t psa_driver_wrapper_mac_compute( 211 const psa_key_attributes_t *attributes, 212 const uint8_t *key_buffer, 213 size_t key_buffer_size, 214 psa_algorithm_t alg, 215 const uint8_t *input, 216 size_t input_length, 217 uint8_t *mac, 218 size_t mac_size, 219 size_t *mac_length); 220 221 psa_status_t psa_driver_wrapper_mac_sign_setup( 222 psa_mac_operation_t *operation, 223 const psa_key_attributes_t *attributes, 224 const uint8_t *key_buffer, 225 size_t key_buffer_size, 226 psa_algorithm_t alg); 227 228 psa_status_t psa_driver_wrapper_mac_verify_setup( 229 psa_mac_operation_t *operation, 230 const psa_key_attributes_t *attributes, 231 const uint8_t *key_buffer, 232 size_t key_buffer_size, 233 psa_algorithm_t alg); 234 235 psa_status_t psa_driver_wrapper_mac_update( 236 psa_mac_operation_t *operation, 237 const uint8_t *input, 238 size_t input_length); 239 240 psa_status_t psa_driver_wrapper_mac_sign_finish( 241 psa_mac_operation_t *operation, 242 uint8_t *mac, 243 size_t mac_size, 244 size_t *mac_length); 245 246 psa_status_t psa_driver_wrapper_mac_verify_finish( 247 psa_mac_operation_t *operation, 248 const uint8_t *mac, 249 size_t mac_length); 250 251 psa_status_t psa_driver_wrapper_mac_abort( 252 psa_mac_operation_t *operation); 253 254 #endif /* PSA_CRYPTO_DRIVER_WRAPPERS_H */ 255 256 /* End of automatically generated file. */ 257