132b31808SJens Wiklander /** 232b31808SJens Wiklander * \file psa/crypto_driver_common.h 332b31808SJens Wiklander * \brief Definitions for all PSA crypto drivers 432b31808SJens Wiklander * 532b31808SJens Wiklander * This file contains common definitions shared by all PSA crypto drivers. 632b31808SJens Wiklander * Do not include it directly: instead, include the header file(s) for 732b31808SJens Wiklander * the type(s) of driver that you are implementing. For example, if 832b31808SJens Wiklander * you are writing a dynamically registered driver for a secure element, 932b31808SJens Wiklander * include `psa/crypto_se_driver.h`. 1032b31808SJens Wiklander * 1132b31808SJens Wiklander * This file is part of the PSA Crypto Driver Model, containing functions for 1232b31808SJens Wiklander * driver developers to implement to enable hardware to be called in a 1332b31808SJens Wiklander * standardized way by a PSA Cryptographic API implementation. The functions 1432b31808SJens Wiklander * comprising the driver model, which driver authors implement, are not 1532b31808SJens Wiklander * intended to be called by application developers. 1632b31808SJens Wiklander */ 1732b31808SJens Wiklander 1832b31808SJens Wiklander /* 1932b31808SJens Wiklander * Copyright The Mbed TLS Contributors 20*b0563631STom Van Eyck * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 2132b31808SJens Wiklander */ 2232b31808SJens Wiklander #ifndef PSA_CRYPTO_DRIVER_COMMON_H 2332b31808SJens Wiklander #define PSA_CRYPTO_DRIVER_COMMON_H 2432b31808SJens Wiklander 2532b31808SJens Wiklander #include <stddef.h> 2632b31808SJens Wiklander #include <stdint.h> 2732b31808SJens Wiklander 2832b31808SJens Wiklander /* Include type definitions (psa_status_t, psa_algorithm_t, 2932b31808SJens Wiklander * psa_key_type_t, etc.) and macros to build and analyze values 3032b31808SJens Wiklander * of these types. */ 3132b31808SJens Wiklander #include "crypto_types.h" 3232b31808SJens Wiklander #include "crypto_values.h" 3332b31808SJens Wiklander /* Include size definitions which are used to size some arrays in operation 3432b31808SJens Wiklander * structures. */ 3532b31808SJens Wiklander #include <psa/crypto_sizes.h> 3632b31808SJens Wiklander 3732b31808SJens Wiklander /** For encrypt-decrypt functions, whether the operation is an encryption 3832b31808SJens Wiklander * or a decryption. */ 3932b31808SJens Wiklander typedef enum { 4032b31808SJens Wiklander PSA_CRYPTO_DRIVER_DECRYPT, 4132b31808SJens Wiklander PSA_CRYPTO_DRIVER_ENCRYPT 4232b31808SJens Wiklander } psa_encrypt_or_decrypt_t; 4332b31808SJens Wiklander 4432b31808SJens Wiklander #endif /* PSA_CRYPTO_DRIVER_COMMON_H */ 45