xref: /optee_os/ta/pkcs11/src/token_capabilities.h (revision 2d0cd82984c733229b9f4d73e4b940845ea9ce01)
18849c126SEtienne Carriere /* SPDX-License-Identifier: BSD-2-Clause */
28849c126SEtienne Carriere /*
38849c126SEtienne Carriere  * Copyright (c) 2017-2020, Linaro Limited
48849c126SEtienne Carriere  */
58849c126SEtienne Carriere 
68849c126SEtienne Carriere #ifndef TOKEN_CAPABILITIES_H
78849c126SEtienne Carriere #define TOKEN_CAPABILITIES_H
88849c126SEtienne Carriere 
9c4108388SJens Wiklander #include <pkcs11_ta.h>
10c4108388SJens Wiklander #include <stdbool.h>
11c4108388SJens Wiklander #include <stdint.h>
12c4108388SJens Wiklander 
138849c126SEtienne Carriere bool mechanism_flags_complies_pkcs11(uint32_t mechanism_type, uint32_t flags);
148849c126SEtienne Carriere 
15512cbf1dSJens Wiklander bool mechanism_is_one_shot_only(uint32_t mechanism_type);
16512cbf1dSJens Wiklander 
178849c126SEtienne Carriere bool mechanism_is_valid(enum pkcs11_mechanism_id id);
188849c126SEtienne Carriere 
198849c126SEtienne Carriere #if CFG_TEE_TA_LOG_LEVEL > 0
208849c126SEtienne Carriere const char *mechanism_string_id(enum pkcs11_mechanism_id id);
218849c126SEtienne Carriere #endif
228849c126SEtienne Carriere 
238849c126SEtienne Carriere uint32_t *tee_malloc_mechanism_list(size_t *out_count);
248849c126SEtienne Carriere 
258849c126SEtienne Carriere uint32_t mechanism_supported_flags(enum pkcs11_mechanism_id id);
268849c126SEtienne Carriere 
27*2d0cd829SRuchika Gupta void pkcs11_mechanism_supported_key_sizes(uint32_t proc_id,
28*2d0cd829SRuchika Gupta 					  uint32_t *min_key_size,
29*2d0cd829SRuchika Gupta 					  uint32_t *max_key_size);
30*2d0cd829SRuchika Gupta 
31*2d0cd829SRuchika Gupta void mechanism_supported_key_sizes_bytes(uint32_t proc_id,
32*2d0cd829SRuchika Gupta 					 uint32_t *min_key_size,
33512cbf1dSJens Wiklander 					 uint32_t *max_key_size);
34512cbf1dSJens Wiklander 
mechanism_is_supported(enum pkcs11_mechanism_id id)358849c126SEtienne Carriere static inline bool mechanism_is_supported(enum pkcs11_mechanism_id id)
368849c126SEtienne Carriere {
378849c126SEtienne Carriere 	return mechanism_supported_flags(id) != 0;
388849c126SEtienne Carriere }
398849c126SEtienne Carriere 
408849c126SEtienne Carriere #endif /*TOKEN_CAPABILITIES_H*/
41