1 /**
2  * \file psa/crypto_driver_common.h
3  * \brief Definitions for all PSA crypto drivers
4  *
5  * This file contains common definitions shared by all PSA crypto drivers.
6  * Do not include it directly: instead, include the header file(s) for
7  * the type(s) of driver that you are implementing. For example, if
8  * you are writing a dynamically registered driver for a secure element,
9  * include `psa/crypto_se_driver.h`.
10  *
11  * This file is part of the PSA Crypto Driver Model, containing functions for
12  * driver developers to implement to enable hardware to be called in a
13  * standardized way by a PSA Cryptographic API implementation. The functions
14  * comprising the driver model, which driver authors implement, are not
15  * intended to be called by application developers.
16  */
17 
18 /*
19  *  Copyright The Mbed TLS Contributors
20  *  SPDX-License-Identifier: Apache-2.0
21  *
22  *  Licensed under the Apache License, Version 2.0 (the "License"); you may
23  *  not use this file except in compliance with the License.
24  *  You may obtain a copy of the License at
25  *
26  *  http://www.apache.org/licenses/LICENSE-2.0
27  *
28  *  Unless required by applicable law or agreed to in writing, software
29  *  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
30  *  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
31  *  See the License for the specific language governing permissions and
32  *  limitations under the License.
33  */
34 #ifndef PSA_CRYPTO_DRIVER_COMMON_H
35 #define PSA_CRYPTO_DRIVER_COMMON_H
36 
37 #include <stddef.h>
38 #include <stdint.h>
39 
40 /* Include type definitions (psa_status_t, psa_algorithm_t,
41  * psa_key_type_t, etc.) and macros to build and analyze values
42  * of these types. */
43 #include "crypto_types.h"
44 #include "crypto_values.h"
45 /* Include size definitions which are used to size some arrays in operation
46  * structures. */
47 #include <psa/crypto_sizes.h>
48 
49 /** For encrypt-decrypt functions, whether the operation is an encryption
50  * or a decryption. */
51 typedef enum {
52     PSA_CRYPTO_DRIVER_DECRYPT,
53     PSA_CRYPTO_DRIVER_ENCRYPT
54 } psa_encrypt_or_decrypt_t;
55 
56 #endif /* PSA_CRYPTO_DRIVER_COMMON_H */
57