xref: /optee_os/ta/pkcs11/src/processing.h (revision 5d5f504fbf3a5910869f31d662b3db4c4d43e8ed)
1 /* SPDX-License-Identifier: BSD-2-Clause */
2 /*
3  * Copyright (c) 2017-2020, Linaro Limited
4  */
5 
6 #ifndef PKCS11_TA_PROCESSING_H
7 #define PKCS11_TA_PROCESSING_H
8 
9 #include <pkcs11_attributes.h>
10 #include <tee_internal_api.h>
11 
12 struct pkcs11_client;
13 struct pkcs11_session;
14 struct pkcs11_object;
15 struct active_processing;
16 
17 /*
18  * Entry points from PKCS11 TA invocation commands
19  */
20 
21 enum pkcs11_rc entry_processing_init(struct pkcs11_client *client,
22 				     uint32_t ptypes, TEE_Param *params,
23 				     enum processing_func function);
24 
25 enum pkcs11_rc entry_processing_step(struct pkcs11_client *client,
26 				     uint32_t ptypes, TEE_Param *params,
27 				     enum processing_func function,
28 				     enum processing_step step);
29 
30 /*
31  * Util
32  */
33 size_t get_object_key_bit_size(struct pkcs11_object *obj);
34 
35 void release_active_processing(struct pkcs11_session *session);
36 
37 /*
38  * Symmetric crypto algorithm specific functions
39  */
40 bool processing_is_tee_symm(uint32_t proc_id);
41 
42 enum pkcs11_rc init_symm_operation(struct pkcs11_session *session,
43 				   enum processing_func function,
44 				   struct pkcs11_attribute_head *proc_params,
45 				   struct pkcs11_object *key);
46 
47 enum pkcs11_rc step_symm_operation(struct pkcs11_session *session,
48 				   enum processing_func function,
49 				   enum processing_step step,
50 				   uint32_t ptypes, TEE_Param *params);
51 
52 enum pkcs11_rc tee_init_ctr_operation(struct active_processing *processing,
53 				      void *proc_params, size_t params_size);
54 #endif /*PKCS11_TA_PROCESSING_H*/
55