xref: /aosp_15_r20/external/mbedtls/include/psa/crypto_driver_common.h (revision 62c56f9862f102b96d72393aff6076c951fb8148)
1*62c56f98SSadaf Ebrahimi /**
2*62c56f98SSadaf Ebrahimi  * \file psa/crypto_driver_common.h
3*62c56f98SSadaf Ebrahimi  * \brief Definitions for all PSA crypto drivers
4*62c56f98SSadaf Ebrahimi  *
5*62c56f98SSadaf Ebrahimi  * This file contains common definitions shared by all PSA crypto drivers.
6*62c56f98SSadaf Ebrahimi  * Do not include it directly: instead, include the header file(s) for
7*62c56f98SSadaf Ebrahimi  * the type(s) of driver that you are implementing. For example, if
8*62c56f98SSadaf Ebrahimi  * you are writing a dynamically registered driver for a secure element,
9*62c56f98SSadaf Ebrahimi  * include `psa/crypto_se_driver.h`.
10*62c56f98SSadaf Ebrahimi  *
11*62c56f98SSadaf Ebrahimi  * This file is part of the PSA Crypto Driver Model, containing functions for
12*62c56f98SSadaf Ebrahimi  * driver developers to implement to enable hardware to be called in a
13*62c56f98SSadaf Ebrahimi  * standardized way by a PSA Cryptographic API implementation. The functions
14*62c56f98SSadaf Ebrahimi  * comprising the driver model, which driver authors implement, are not
15*62c56f98SSadaf Ebrahimi  * intended to be called by application developers.
16*62c56f98SSadaf Ebrahimi  */
17*62c56f98SSadaf Ebrahimi 
18*62c56f98SSadaf Ebrahimi /*
19*62c56f98SSadaf Ebrahimi  *  Copyright The Mbed TLS Contributors
20*62c56f98SSadaf Ebrahimi  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
21*62c56f98SSadaf Ebrahimi  */
22*62c56f98SSadaf Ebrahimi #ifndef PSA_CRYPTO_DRIVER_COMMON_H
23*62c56f98SSadaf Ebrahimi #define PSA_CRYPTO_DRIVER_COMMON_H
24*62c56f98SSadaf Ebrahimi 
25*62c56f98SSadaf Ebrahimi #include <stddef.h>
26*62c56f98SSadaf Ebrahimi #include <stdint.h>
27*62c56f98SSadaf Ebrahimi 
28*62c56f98SSadaf Ebrahimi /* Include type definitions (psa_status_t, psa_algorithm_t,
29*62c56f98SSadaf Ebrahimi  * psa_key_type_t, etc.) and macros to build and analyze values
30*62c56f98SSadaf Ebrahimi  * of these types. */
31*62c56f98SSadaf Ebrahimi #include "crypto_types.h"
32*62c56f98SSadaf Ebrahimi #include "crypto_values.h"
33*62c56f98SSadaf Ebrahimi /* Include size definitions which are used to size some arrays in operation
34*62c56f98SSadaf Ebrahimi  * structures. */
35*62c56f98SSadaf Ebrahimi #include <psa/crypto_sizes.h>
36*62c56f98SSadaf Ebrahimi 
37*62c56f98SSadaf Ebrahimi /** For encrypt-decrypt functions, whether the operation is an encryption
38*62c56f98SSadaf Ebrahimi  * or a decryption. */
39*62c56f98SSadaf Ebrahimi typedef enum {
40*62c56f98SSadaf Ebrahimi     PSA_CRYPTO_DRIVER_DECRYPT,
41*62c56f98SSadaf Ebrahimi     PSA_CRYPTO_DRIVER_ENCRYPT
42*62c56f98SSadaf Ebrahimi } psa_encrypt_or_decrypt_t;
43*62c56f98SSadaf Ebrahimi 
44*62c56f98SSadaf Ebrahimi #endif /* PSA_CRYPTO_DRIVER_COMMON_H */
45