xref: /rk3399_ARM-atf/include/common/tbbr/cot_def.h (revision c1ec23dd60954582a9b5dd49e85b092e9ece0680)
1dff93c86SJuan Castillo /*
2*c1ec23ddSlaurenw-arm  * Copyright (c) 2015-2023, Arm Limited and Contributors. All rights reserved.
3dff93c86SJuan Castillo  *
482cb2c1aSdp-arm  * SPDX-License-Identifier: BSD-3-Clause
5dff93c86SJuan Castillo  */
6dff93c86SJuan Castillo 
7c3cf06f1SAntonio Nino Diaz #ifndef COT_DEF_H
8c3cf06f1SAntonio Nino Diaz #define COT_DEF_H
9dff93c86SJuan Castillo 
10a9edc32cSGovindraj Raja /*
11a9edc32cSGovindraj Raja  * Guard here with availability of mbedtls config since PLAT=lx2162aqds
12a9edc32cSGovindraj Raja  * uses custom tbbr from 'drivers/nxp/auth/tbbr/tbbr_cot.c'  and also may
13a9edc32cSGovindraj Raja  * build without mbedtls folder only with TRUSTED_BOOT enabled.
14a9edc32cSGovindraj Raja  */
15a9edc32cSGovindraj Raja #ifdef MBEDTLS_CONFIG_FILE
16a8eadc51SGovindraj Raja #include <mbedtls/version.h>
17a9edc32cSGovindraj Raja #endif
18ff67fca5SPankaj Gupta 
19dff93c86SJuan Castillo /* TBBR CoT definitions */
2044f1aa8eSManish Pandey #if defined(SPD_spmd)
2144f1aa8eSManish Pandey #define COT_MAX_VERIFIED_PARAMS		8
2256b741d3Slaurenw-arm #elif defined(ARM_COT_cca)
2356b741d3Slaurenw-arm #define COT_MAX_VERIFIED_PARAMS		8
2444f1aa8eSManish Pandey #else
25dff93c86SJuan Castillo #define COT_MAX_VERIFIED_PARAMS		4
2644f1aa8eSManish Pandey #endif
27dff93c86SJuan Castillo 
28ad43c49eSManish V Badarkhe /*
29ad43c49eSManish V Badarkhe  * Maximum key and hash sizes (in DER format).
30ad43c49eSManish V Badarkhe  *
31ad43c49eSManish V Badarkhe  * Both RSA and ECDSA keys may be used at the same time. In this case, the key
32ad43c49eSManish V Badarkhe  * buffers must be big enough to hold either. As RSA keys are bigger than ECDSA
33ad43c49eSManish V Badarkhe  * ones for all key sizes we support, they impose the minimum size of these
34ad43c49eSManish V Badarkhe  * buffers.
35ad43c49eSManish V Badarkhe  */
36ad43c49eSManish V Badarkhe #if TF_MBEDTLS_USE_RSA
37ad43c49eSManish V Badarkhe #if TF_MBEDTLS_KEY_SIZE == 1024
38ad43c49eSManish V Badarkhe #define PK_DER_LEN                      162
39ad43c49eSManish V Badarkhe #elif TF_MBEDTLS_KEY_SIZE == 2048
40ad43c49eSManish V Badarkhe #define PK_DER_LEN                      294
41ad43c49eSManish V Badarkhe #elif TF_MBEDTLS_KEY_SIZE == 3072
42ad43c49eSManish V Badarkhe #define PK_DER_LEN                      422
43ad43c49eSManish V Badarkhe #elif TF_MBEDTLS_KEY_SIZE == 4096
44ad43c49eSManish V Badarkhe #define PK_DER_LEN                      550
45ad43c49eSManish V Badarkhe #else
46ad43c49eSManish V Badarkhe #error "Invalid value for TF_MBEDTLS_KEY_SIZE"
47ad43c49eSManish V Badarkhe #endif
48ad43c49eSManish V Badarkhe #else /* Only using ECDSA keys. */
49*c1ec23ddSlaurenw-arm #if TF_MBEDTLS_KEY_SIZE == 384
50*c1ec23ddSlaurenw-arm #define PK_DER_LEN                      120
51*c1ec23ddSlaurenw-arm #elif TF_MBEDTLS_KEY_SIZE == 256
521ef303f9SNicolas Toromanoff #define PK_DER_LEN                      92
53*c1ec23ddSlaurenw-arm #else
54*c1ec23ddSlaurenw-arm #error "Invalid value for TF_MBEDTLS_KEY_SIZE"
55*c1ec23ddSlaurenw-arm #endif
56ad43c49eSManish V Badarkhe #endif
57ad43c49eSManish V Badarkhe 
58ad43c49eSManish V Badarkhe #if TF_MBEDTLS_HASH_ALG_ID == TF_MBEDTLS_SHA256
59ad43c49eSManish V Badarkhe #define HASH_DER_LEN                    51
60ad43c49eSManish V Badarkhe #elif TF_MBEDTLS_HASH_ALG_ID == TF_MBEDTLS_SHA384
61ad43c49eSManish V Badarkhe #define HASH_DER_LEN                    67
62ad43c49eSManish V Badarkhe #elif TF_MBEDTLS_HASH_ALG_ID == TF_MBEDTLS_SHA512
63ad43c49eSManish V Badarkhe #define HASH_DER_LEN                    83
64ad43c49eSManish V Badarkhe #else
65ad43c49eSManish V Badarkhe #error "Invalid value for TF_MBEDTLS_HASH_ALG_ID"
66ad43c49eSManish V Badarkhe #endif
67ad43c49eSManish V Badarkhe 
68c3cf06f1SAntonio Nino Diaz #endif /* COT_DEF_H */
69