• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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