xref: /optee_os/lib/libmbedtls/mbedtls/include/psa/crypto_driver_common.h (revision b0563631928755fe864b97785160fb3088e9efdc)
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