xref: /optee_os/core/drivers/crypto/stm32/common.h (revision 9f34db38245c9b3a4e6e7e63eb78a75e23ab2da3)
1 /* SPDX-License-Identifier: BSD-2-Clause */
2 /*
3  * Copyright (c) 2021, STMicroelectronics - All Rights Reserved
4  */
5 
6 #ifndef __DRIVERS_CRYPTO_STM32_COMMON_H
7 #define __DRIVERS_CRYPTO_STM32_COMMON_H
8 
9 #include <tee_api_types.h>
10 
11 enum stm32_cipher_ip_id {
12 	CRYP_IP,
13 	SAES_IP,
14 };
15 
16 /*
17  * Crypto algorithm common macro used in stm32_saes and stm32_cryp driver
18  */
19 
20 #define INT8_BIT			U(8)
21 #define AES_BLOCK_SIZE_BIT		U(128)
22 #define AES_BLOCK_SIZE			(AES_BLOCK_SIZE_BIT / INT8_BIT)
23 #define AES_BLOCK_NB_U32		(AES_BLOCK_SIZE / sizeof(uint32_t))
24 #define DES_BLOCK_SIZE_BIT		U(64)
25 #define DES_BLOCK_SIZE			(DES_BLOCK_SIZE_BIT / INT8_BIT)
26 #define DES_BLOCK_NB_U32		(DES_BLOCK_SIZE / sizeof(uint32_t))
27 #define MAX_BLOCK_SIZE_BIT		AES_BLOCK_SIZE_BIT
28 #define MAX_BLOCK_SIZE			AES_BLOCK_SIZE
29 #define MAX_BLOCK_NB_U32		AES_BLOCK_NB_U32
30 #define AES_KEYSIZE_128			U(16)
31 #define AES_KEYSIZE_192			U(24)
32 #define AES_KEYSIZE_256			U(32)
33 #define AES_IVSIZE			U(16)
34 
35 TEE_Result stm32_register_authenc(void);
36 TEE_Result stm32_register_cipher(enum stm32_cipher_ip_id);
37 
38 #endif /* __DRIVERS_CRYPTO_STM32_COMMON_H */
39