xref: /optee_os/core/include/crypto/crypto_se.h (revision ff0c5d42ff81616448dd330c3ae9a7d3e43418e2)
1 /* SPDX-License-Identifier: BSD-2-Clause */
2 /*
3  * Copyright (C) Foundries Ltd. 2021 - All Rights Reserved
4  * Author: Jorge Ramirez <jorge@foundries.io>
5  */
6  /*
7   * This is the Cryptographic Secure Element API, part of the Cryptographic
8   * Provider API.
9   *
10   * These requests shall be handled in the secure element normally placed on
11   * a serial communication bus (SPI, I2C).
12   */
13 #ifndef __CRYPTO_SE_H
14 #define __CRYPTO_SE_H
15 
16 #include <tee_api_types.h>
17 
18 /*
19  * Enable Secure Channel Protocol 03 to communicate with the Secure Element.
20  *
21  * Since SCP03 uses symmetric encryption, this interface also allows the user to
22  * attempt the rotation the keys stored in the Secure Element.
23  *
24  * https://globalplatform.org/wp-content/uploads/2014/07/GPC_2.3_D_SCP03_v1.1.2_PublicRelease.pdf
25  */
26 TEE_Result crypto_se_enable_scp03(bool rotate_keys);
27 #endif
28